APARELHO E MÉTODO PARA DECODIFICAR UMA MENSAGEM RECEBIDA
COM INFORMAÇÃO"A PRIORI HISTÓRICO DA INVENÇÃO
1. CAMPO DA INVENÇÃO
A presente revelação é dirigida a um método e aparelho para decodificar uma mensagem recebida com informação a priori. Mais particularmente, a presente revelação é dirigida a decodificar uma mensagem recebida em um canal de controle com base nos atributos de fluxos de mensagem anteriores.
2. DESCRIÇÃO DA TECNOLOGIA RELACIONADA
Atualmente, redes de área ampla sem fio podem incluir redes Global System for Mobile communication (GSM - Sistema Global para Comunicação Móvel), redes Time Division Multiple Access (TDMA - Acesso Múltiplo por Divisão de Tempo), redes Code Division Multiple Access (CDMA - Acesso Múltiplo por Divisão de Código), redes celulares, e muitas outras redes de área ampla sem fio. Essas redes utilizam canais de tráfego para transmitir e receber dados, como os dados de voz de e para o usuário que utiliza um terminal móvel, como um telefone celular. Essas redes também utilizam canais de controle para transmitir e receber sinais de controle. Os canais de controle, que poderão ser associados a um tráfego de usuário específico, ou mais geralmente poderão ser mapeados sobre um recurso de camada física dedicado, poderá ser tipicamente utilizado para transferir informação de controle de uma rede para um terminal móvel ou reportar informação de medição do terminal móvel para a rede. Por exemplo, uma rede GSM pode utilizar um Slow Associated Control Channel (SACCH - Canal de Controle Associado Lento) para transmitir sinais de controle. 0 SACCH tem uma taxa de bit baixa, é associado singularmente com um terminal móvel específico, e é transmitido periodicamente Comtji um tempo relativamente grande entre transmissões. O SACCH pode transmitir informação de controle específica e mensagens relacionadas a protocolos mais elevados, como informação de célula vizinha, para um terminal móvel. A qualidade da conexão, como a qualidade da conexão, do terminal móvel com a rede pode ter por base a qualidade de sinal de um sinal de controle.
Em algumas redes, incluindo redes Global System for Mobile communication (GSM - Sistema Global para a comunicação Móvel), medidas de qualidade de canal de controle, incluindo o bit de canal de controle ou as taxas de erro de bloco de código, são muitas vezes utilizadas para determinar a qualidade fundamental do enlace de comunicação e determinar se o enlace deve ser mantido ou de outra forma terminado com base em um desempenho inadequado.
Infelizmente, como a velocidade de transmissão de informação, o tipo de modulação, e os métodos de codificação de controle de erro aplicáveis respectivamente aos canais de controle e aos canais de tráfego poderão não ser bem casados, a observação do desempenho do canal de controle poderá nem sempre ser uma orientação útil para o desempenho de um canal de tráfego companheiro. Por exemplo, para uma proporção dada de sinal- desejado para a proporção de sinal de interferência mais ruído, o bit de canal de controle ou a taxa de erro de bloco poderá superar significativamente aquela de um canal de tráfego associado. Se, como no caso do canal de tráfego GSM e o canal de controle associado, a métrica de qualidade que controla a manutenção do canal de rádio tem por base a taxa de erro de bloco do canal de controle, o enlace de rádio poderá ser terminado, quer pela rede ou pela estação móvel, embora a taxa de erro de bloco do canal de tráfego satisfaz a qualidade desejada de serviço.
Assim, a qualidade de canal do canal de controle poderá nem sempre refletir com precisão a qualidade de canal de um canal de tráfego. Portanto, se o canal de controle sofre de qualidade de canal ruim, um enlace ou chamada poderá ser terminado, muito embora o terminal móvel esteja recebendo um bom sinal de tráfego e o usuário está recebendo boa comunicação.
Assim, há uma necessidade 'de melhorar a decodificação de uma mensagem recebida em um canal.
SUMÁRIO
Um método e aparelho para melhorar a decodificação de uma mensagem recebida em um canal de controle. A mensagem é recebida em um canal de controle. A mensagem pode ser decodificada com base em informação sobre os bits de uma mensagem decodificada com sucesso. BREVE DESCRIÇÃO DOS DESENHOS
As versões da presente revelação serão descritas com referência às figuras seguintes, em que números iguais designam elementos iguais, e em que:
A Figura 1 é um diagrama 5de blocos exemplar de um sistema de acordo com uma versão.
A Figura 2 é um diagrama de blocos exemplar de um dispositivo de comunicação móvel de acordo com uma versão. A Figura 3 é um fluxograma exemplar que operação de um dispositivo de comunicação móvel com uma versão.
A Figura 4 é um fluxograma exemplar que operação de um dispositivo de cçimunicação móvel com outra versão.
A Figura 5 é um fluxograma exemplar que operação de um dispositivo de comunicação móvel com outra versão. E
A Figura 6 é um fluxograma exemplar que operação de um dispositivo de comunicação móvel com outra versão.
DESCRIÇÃO DETALHADA
Neste documento, termos relacionais como "primeiro", "segundo" e assemelhados, poderão ser utilizados unicamente para distinguir uma entidade ou ação de outra entidade ou ação sem necessariamente exigir ou implicar qualquer relação ou ordem dessa entre essas entidades ou ações. Os termos "compreende", "compreender", ou qualquer outra variação destes, pretendem abranger uma inclusão não- exclusiva, tal que um processo, método, artigo, ou aparelho que compreende uma lista de elementos não inclui apenas esses elementos, mas poderá incluir outros elementos não expressamente listados ou inerentes a esse processo, método, artigo, ou aparelho. Um elemento precedido por "o", "a" ou assemelhado, sem maiores restrições, não exclui a existência de elementos idênticos adicionais no processo, método, artigo, ou aparelho qure. compreende o elemento. Outrossim, o termo "outro" é definido como pelo menos um segundo ou mais. Os termos "incluir", "ter" e assemelhados, conforme aqui utilizados, são definidos como "compreender".
A Figura 1 é um diagrama de blocos exemplar de um sistema 100 de acordo com uma versão. O sistema 100 pode incluir uma rede 110, um terminal 120, e uma estação base 130. A estação base 130 e o terminal 120 podem comunicar-se um com o outro utilizando um cainal de tráfego 140 e um canal de controle 150. Por exemplo, a estação base 130 pode enviar uma mensagem 160 no canal de controle 150 para o terminal 120. O canal de controle pode ser um Slow Associated Control Channel (SACCH - Canal de Controle Associado Lento), um Fast Associated Control Channel (FACCH - Canal de Controle Associado Rápido), ou qualquer outro canal de controle. A mensagem 160 pode incluir bits de informação. Por exemplo, a mensagem 160 pode incluir bits em uma mensagem de camada 2 164, bits em um bloco de camada 1 162, e bits adicionais 166. Ά camada 1 poderá ser uma camada física e a camada 2 poderá ser uma camada de enlace de dados, camada de controle de acesso de meio, ou assemelhados. O terminal 120 poderá ser um dispositivo de comunicação móvel, como um telefone sem fio, um terminal móvel, uma estação móvel, um telefone celular, um assistente digital pessoal, um radiocomunicador, um computador pessoal, um receptor de chamada seletiva, ou qualquer outro dispositivo que é capaz de enviar e de receber sinais de comunicação em uma rede, incluindo a rede sem fio. A rede 110 poderá incluir qualquer tipo de rede que é capaz de enviar e de receber sinais, como os sinais sem fio. Por exemplo, a rede 110 poderá incluir uma rede de telecomunicação sem fio, uma redçyde telefonia celular, uma rede de comunicação por satélite, uma rede de área local sem fio, uma rede Global System for Mobile Communication (GSM - Sistema Global para a Comunicação Móvel), uma rede Time Division Multiple Access (TDMA - Acesso Múltiplo por Divisão de Tempo), uma rede Code Division Multiple Access (CDMA - Acesso Múltiplo por Divisão de Código), e/ou outros sistemas de comunicação assemelhados.
Em operação, o terminal 120;rpode receber uma mensagem 160. O terminal 120 pode tentar decodificar a mensagem 160 com base na informação a respeito dos bits de uma mensagem decodificada com sucesso. A informação pode ser uma mensagem protótipo com base em uma mensagem decodificada anteriormente. A mensagem protótipo pode ser informação de camada superior, como os bits de camada 2 164 de uma mensagem decodificada anteriormente. A mensagem protótipo pode ser 168 bits de camada 2 164 dos 184 bits de um bloco camada 1 162 de uma mensagem recebida anteriormente de 224 bits. Tentar decodificar a mensagem 160 pode incluir substituir pelo menos uma parte de uma saída de um decodificador de correção de erro de encaminhamento no terminal 120 com a mensagem protótipo. Tentar decodificar a mensagem 160 também pode incluir utilizar a mensagem protótipo para reduzir o número de estados possíveis em estágios relevantes durante a decodificação convolucional. Tentar decodificar a mensagem pode adicionalmente incluir utilizar uma parte de uma redundância de código Fire para a correção de erro da mensagem recebida 160.
A informação também poderá ser conhecimento a priori estatístico dos bits de mensagem na mensagem recebida 160 identificada de uma mensagem anterior decodificada com sucesso. O termo "a priori" pode indicar o conhecimento obtido de informação conhecida anteriormente. Por exemplo, mensagens de camada 2 redundantes poderão ser enviadas no canal de controle 150, que poderão ser utilizadas para auxiliar na decodificação de uma mensagem subseqüente, uma mensagem redundante posterior, uma mensagem anteriormente colocada em memória, ou qualquer outra mensagem. Assim, embora nenhuma nova informação de camada 2 possa ser obtida de uma mensagem redundante, outra informação, como a qualidade do canal, poderá ser "determinada. Um cronômetro Radio Link Timeout (RLT) pode contar o número de falhas em receber uma mensagem decodificada corretamente em um canal de controle. Por exemplo, um critério de falha no enlace de rádio pode ter por base o RLT. Se o terminal 120 é incapaz de decodificar uma mensagem SACCH, o RLT pode ser aumentado por 2. Em qualquer caso o RLT não supera um valor limite denominado RADIO_LINK_TIMEOUT. Se o RLT atinge 0 uma falha no enlace de rádio pode ser declarada.
Tentar decodificar a mensagem 160 pode ainda incluir aumentar o cálculo métrico ' durante o processo de decodificação convolucional. 0 conhecimento a priori poderá ser a probabilidade de bits selecionados de uma mensagem serem um ou zero, a probabilidade de um bit de uma mensagem ser um ou zero com base em uma mensagem decodificada corretamente anteriormente, a probabilidade de um bit de uma mensagem ser um ou zero com base em outros bits relacionados, e/ou outro conhecimento a priori útil. 0 terminal 120 pode acrescentar informação sobre os bits de uma mensagem decodificada com sucesso para a lista de atributos de mensagem se a mensagem 160 for decodificada com sucesso. A lista de atributos de mensagem poderá ser populada com base na freqüência de observar uma mensagem boa, com base no conhecimento do papel de uma mensagem na estrutura de um protocolo, com base no conhecimento de que a mensagem é um tipo que é utilizado com freqüência, com base em quão recentemente as mensagens na lista foram recebidas, ou com base em qualquer outro método de popular a lista.
Para elaborar de acordo com outra versão relacionada, o terminal 120 pode utilizar protótipos de mensagem de camada superior para auxiliar uma camada inferior na decodificação da mensagem. Por exemplo, o terminal 120 pode utilizar os protótipos de mensagem de camada 2/3 para auxiliar a decodificação de camada 1 de uma mensagem SACCH. Como a camada mais alta recebe mensagens SACCH decodificadas corretamente que provavelmente têm probabilidade de ser repetidas, ela pode enviar uma cópia da mensagem integral incluindo os cabeçalhos Camada 1, Camada 2 e Camada 3 ou uma parcela da mensagem para a Layer 1 como uma mensagem protótipo. Por exemplo, as mensagens SACCH que têm probabilidade de serem repetidas podem incluir Sys Info 5, Sys Info 6, Sys Info 5bis, Sys Info 5ter, Sys Info 10, informação de medição, ou qualquer outra mensagem de canal de controle. De acordo com um exemplo relacionado, a camada 3 pode observar a chegada de mensagens SACCH camada 3 decodificadas corretamente e informar a camada 1 da freqüência relativa da ocorrência das mensagens protótipos observadas. Camada 1 pode então priorizar o armazenamento de protótipos e a ordem em que a camada 1 faz hipóteses das mensagens protótipos.
A camada mais elevada pode determinar que uma mensagem SACCH foi decodificada corretamente de acordo com uma boa síndrome de código Fire, uma boa métrica de código convolucional combinado com código Fire, ou qualquer outro método para determinar uma mensagem decodificada corretamente. Por exemplo, códigos Fire são uma classe especial de códigos de Verificação de Redundância Cíclica (CRC-cyclic redundancy check) que permitem a correção eficiente de erros de rajada. A distribuição de peso e mesmo a distância mínima para muitos códigos cíclicos, incluindo o Fire Code utilizado para SACCH, poderá não ser prontamente computável. Dada a polinomial geradora de Fire Code g (D) ^g1 (d) g2 (D) = (D23 + l) (D17+D3+l) , dois comentários significativos podem ser feitos sobre a capacidade do código Fire SACCH de detectar erros. 0 primeiro é um código cíclico binário com a polinomial geradora de grau m pode detectar todos os padrões de erro de rajada de comprimento m ou inferior. O segundo é a probabilidade de detecção omitida ou proporção de palavras de η bit válidas para todas as palavras de η bits é 2k"n, em que k é o número de bits de informação e η é o comprimento da palavra de código. Portanto, se o código' Fire SACCH é geralmente utilizado apenas para a detecção de erro, ele pode detectar todos os padrões de erro, por exemplo, até o comprimento de rajada 4 0 e pode ter uma probabilidade de detecção omitida de 2~40.
Assim, quando a camada 1 recebe as 4 rajadas SACCH que compreendem uma mensagem SACCH ela pode primeiro tentar decodificar a mensagem convencionalmente. Se isto falhar, ela pode então substituir uma saída de decisão dura de um decodificador convolucional com os bits da primeira mensagem protótipo que são conhecidos como sendo válidos. Por exemplo, a camada 1 poderá utilizar o cabeçalho Camada 2 e Camada 3 e o conteúdo Camada 3, mas não necessariamente os 2 octetos do cabeçalho Camada 1. O síndrome de código Fire pode então ser verificado. Se foi bem sucedido, a mensagem foi decodificada e os resultados são passados para a camada 2. Se o código Fire falhar, a mensagem protótipo seguinte é verificada, até todos os protótipos terem sido verificados. Se todos os protótipos foram utilizados, o terminal 12 0 pode declarar a mensagem como um bloco SACCH ruim.
Como um exemplo da decodificação convolucional, tipicamente, a decodificação de um código convolucional pode ser efetuada através de uma treliça Viterbi com 2V estados em cada um dos Ninf0 estágios em que ν é o comprimento de restrição do código e Ninfo é o número de informação e símbolos traseiros. 0 processo de decodificação pode envolver um cálculo métrico para cada estado de treliça seguido por uma operação "traceback". 0 cálculo métrico pode ser recursivo e pode ter por base o código convolucional, a palavra de código recebida, e cálculos métricos do estado anterior seguidos de uma operação "traceback". Quando elaborar a hipótese de uma mensagem SACCH camada 2, tipicamente, apenas os 40 símbolos de paridade e 16 símbolos de cabeçalho camada 1 restam para serem decodificados pelo comprimento de restrição código 4. Por implicação, os estados através dos quais a operação "traceback" deve percorrer nos estágios 20 (16+4) a 183 e estágio 227 da treliça Viterbi são conhecidos.
Inversamente, poderá haver dúvida sobre os estados percorridos nos estágios 1 a 15 %:184 a 226. Portanto, para alcançar a decodificação ótima pode ser útil percorrer parte ou a totalidade dos estados conhecidos na treliça durante a operação "traceback". Ademais, dependendo da implementação, também poderá ser útil modificar o cálculo de métrica de estado para utilizar a informação de estados percorridos conhecidos para atingir a decodificação ótima.
Assim, as operações acima podem melhorar a decodificação de uma mensagem SACCH em um terminal 120 e reduzir os timeouts de enlace de rádio sem exigir modificação na rede. O terminal 120 pode utilizar protótipos de mensagem camada 2 para auxiliar na decodificação de camada 1 de uma"mensagem SACCH. 0 terminal 120 também pode montar ou aprender um conjunto de mensagens camada 2 protótipo com base em observar um indicador de qualidade de quadro, como uma boa síndrome de código Fire ou um bom conjunto mais métrica de código Fire convolucional. O terminal 120 também pode utilizar a freqüência relativa de protótipos de mensagem camada 2 "boas" observadas para priorizar o armazenamento de uma mensagem protótipo particular para uso na decodificação e a ordem em que a camada 1 faz hipóteses de cada mensagem camada 2 protótipo. 0 terminal 120 pode adicionalmente substituir pelo menos uma parte da saída de um decodificador de correção de erro de encaminhamento com cada mensagem protótipo por sua vez, e então verificar o código Fire em cada um até a mensagem ser decodificada corretamente, até as mensagens protótipos serem exauridas, ou até um número limite de tentativas for feito.
O processo pode ser aplicável a receber uma mensagem em qualquer rede de comunicação em que mensagens específicas, selecionadas de um conjunto finito de mensagens, são inseridas periodicamente dentro do fluxo de mensagens. O processo também pode ser aplicável a redes de irradiação em que mensagens de cabeçalho, ou mensagens de informação de sistema de período variável de qualquer tipo são transmitidas.
A Figura 2 é um diagrama de blocos exemplar de um dispositivo de comunicação móvel 200, como o terminal 120, de acordo com uma versão. O dispositivo de comunicação móvel 200 pode incluir uma armação 210, uma controladora 220 acoplada à armação 210, circuito de entrada e de saída de áudio 239 acoplado à armação 210, uma tela 240 acoplada à armação 210, um transceptor 250 acoplado à armação 210, um decodif icador 255 acoplado ao transceptor 250, uma interface de usuário 260 acoplada à armação 210, uma memória 270 acoplada à armação 210, uma lista de atributos de mensagem 275 residente na memória 270, e uma antena 280 acoplada à armação 210 e ao transceptor 250. O dispositivo de comunicação móvel 200 também pode incluir um módulo de popular a lista 290. O módulo de popular a lista 290 pode ser acoplado à controladora 220, pode residir dentro da controladora 220, pode residir dentro da memória 270, pode ser um módulo autônomo, pode ser software, pode ser hardware, ou pode ser em qualquer outro formato útil para o módulo em um dispositivo de comunicação móvel 200.
A tela 240 pode ser uma tela de cristal líquido (LCD), uma tela de diodo emissor de luz (LED) , uma tela de plasma, ou qualquer outro meio para exibir a informação. 0 transceptor 250 pode incluir um transmissor e/ou um receptor. O circuito de entrada e de saída de áudio 230 pode incluir um microfone, um alto falante, um transdutor, ou qualquer outro circuito de entrada e de saída de áudio.
A interface de usuário 2 60 pode incluir uma almofada de teclas, botões, uma almofada de toque, um manche (joystick), uma tela adicional, ou qualquer outro dispositivo útil para fornecer uma interface entre o usuário e o dispositivo eletrônico. A memória 270 poderá incluir uma memória de acesso aleatório, uma memória de apenas leitura, uma memória óptica, uma memória de módulo de identidade do assinante (SIM), ou qualquer outra memória que pode ser acoplada a um dispositivo de comunicação móve1.
Em operação, a controladora 220 pode controlar as operações do dispositivo de comunicação móvel 200. A parte receptora do transceptor 250 pode receber uma mensagem em um canal de controle. Por exemplo, o receptor pode receber a mensagem em um canal de controle associado lento. 0 decodificador 255 pode decodificar a mensagem. 0 módulo de popular a lista 2 90 pode acrescentar um atributo de uma mensagem decodificada com sucesso à lista de atributos de mensagem 275 se a mensagem for decodificada com sucesso. 0 decodificador 255 pode tentar decodificar uma mensagem com base em um atributo na lista de atributos de mensagem 275 se houver um erro quando da -,decodificação anterior da mensagem. O atributo pode ser uma mensagem protótipo com base na mensagem decodificada '"com sucesso. A mensagem protótipo pode ser informação de camada superior de uma mensagem decodificada com sucesso. 0 decodificador 255 também pode tentar decodificar a mensagem com base na mensagem que inclui bits substituídos com a mensagem protótipo. A controladora 220 pode adicionalmente utilizar uma parcela de uma redundância de um código Fire para correção de erro da mensagem recebida. O atributo também poderá ser conhecimento estatístico a priori dos bits de mensagem na mensagem recebida identificados de observações anteriores do fluxo de mensagem.
A Figura 3 é um fluxograma exemplar 300 que ilustra a operação do terminal 120 de acordo com outra versão. Na etapa 310, o fluxograma tem início. Na etapa 320, o terminal 120 pode receber uma mensagem no canal de controle 150. O canal de controle poderá ser um canal de controle associado lento. Na etapa 330, o terminal 120 pode tentar decodificar a mensagem. O terminal 120 poderá tentar decodificar a mensagem com base em informação em uma lista de atributos de mensagem se houver um erro na decodificação da mensagem original. Na etapa 340, o terminal 120 pode acrescentar informação a respeito dos bits de uma mensagem decodificada com sucesso à lista de atributos de mensagem se a mensagem for decodificada com sucesso. A lista de atributos de mensagem poderá ser uma lista de protótipos de mensagem. Assim, na etapa 330, o terminal pode tentar decodificar a mensagem subseqüente com base em pelo menos uma mensagem protótipo armazenada na lista de protótipos de mensagem. Outrossim, na etapa 340, o terminal 120 poderá acrescentar uma mensagem protótipo decodificada da mensagem recebida da mensagem decodificada com sucesso à lista de protótipos de mensagem se a mensagem for decodificada com sucesso. Por exemplo, a mensagem protótipo pode ser uma mensagem de camada superior. Assim, na etapa 330, o terminal 12 0 pode detectar ura erro na decodif icação da mensagem subseqüente e, se um erro for detectado, tentar decodificar a mensagem subseqüente com base em pelo menos uma mensagem protótipo armazenada na lista de protótipos de mensagem. Adicionalmente, na etapa 33 0, se um erro for detectado, o terminal 120 pode substituir bits na mensagem subseqüente com uma mensagem protótipo armazenada na lista de protótipos de mensagem e tentar decodificar a mensagem com base na mensagem subseqüente com os bits substituídos.
A Figura 4 é um fluxograma exemplar 4 00 que ilustra a operação do terminal 120 de acordo com outra versão relacionada. Por exemplo, o fluxograma 400 pode ilustrar a operação do terminal 120 após ele receber uma mensagem em quatro rajadas SACCH (Slow Associated Control Channel = Canal de Controle Associado Lento) em um quadro no canal de controle 150. Na etapa 410, o terminal 120 pode inicializar um contador, como o contador índice de protótipo. Na etapa 415, o terminal 12 0 pode equalizar a mensagem para obter uma estimativa dos dados recebidos. Na etapa 420, o terminal 12 0 pode combinar as estimativas da mensagem. Na etapa 425, o terminal 120 pode desentrelaçar as estimativas combinadas para obter um bloco SACCH. Na etapa 43 0, o terminal 12 0 pode tentar decodificar convolucionalmente o bloco SACCH. Na etapa 435, se o contador for maior que zero, indicando que houve um erro ao decodificar inicialmente a mensagem, o terminal 120 pode substituir um campo de mensagem de camada superior na mensagem com uma mensagem protótipo M de uma lista de protótipos de mensagem e pode tentar decodificar convolucionalmente a mensagem modificada. Por exemplo, o terminal 120 pode substituir um campo de mensagem camada 2 na mensagem por uma mensagem protótipo M de uma lista de protótipos de mensagem. Na etapa 440, o terminal 120 pode verificar o código Fire do bloco SACCH. Se a mensagem passar a verificação do código Fire, o terminal 12 0 pode declarar o bloco SACCH "bom" e avançar para o processamento dá camada mais alta. Na etapa 4 45, o terminal 120 pode atualizar um conjunto da mensagem protótipo de camada mais alta S na lista de protótipos de mensagem com uma mensagem protótipo. Se a mensagem falhar na verificação do código Fire, na etapa 450, o terminal 120 pode incrementar o contador. Na etapa 455, o terminal 120 pode determinar se o contador superou um limite. Se o fizer, o terminal 120 pode declarar a mensagem como ruim. 0 limite poderá ser qualquer limite útil. Por exemplo, o limite poderá ser o número de mensagens armazenado na lista de protótipos de mensagem. Se o contador não tiver superado o limite, na etapa 460, o terminal 120 pode selecionar uma mensagem protótipo de camada 2 M.V:da lista de protótipos de mensagem para substituir no campo de mensagem de camada 2 na mensagem e continuar na etapa 435. Por exemplo, o terminal 120 pode selecionar substituir a mensagem protótipo de camada 2 incrementalmente de acordo com o contador.
A Figura 5 é um fluxograma exemplar 500 que ilustra a operação do terminal 120 de acordo com outra versão relacionada. Por exemplo, o fluxograma 500 pode ilustrar a operação do terminal 12 0 após ele receber uma mensagem e utilizar o teste de hipótese de cabeçalho camada 1. Na etapa 510,o terminal 120 pode inicializar um contador, como o contador de índice de protótipo1·. Na etapa 515, o terminal 120 pode equalizar a mensagem para obter uma estimativa dos dados recebidos. Na etapa 520, o terminal 120 pode combinar as estimativas da mensagem. Na etapa 525, o terminal 120 pode desentrelaçar as estimativas combinadas para obter um bloco SACCH. Na etapa 530, o terminal 120 pode tentar decodificar convolucionalmente o_bloco SACCH. Na etapa 535, se o contador for maior que zero,indicando que houve um erro ao decodificar inicialmente·,a mensagem, o terminal 120 pode substituir um campo da mensagem camada 2 na mensagem com uma mensagem protótipo M de uma lista de protótipos de mensagem e pode tentar decodificar a mensagem modificada. Na etapa 540, o terminal 120 pode inicializar um segundo contador. Na etapa 545, o terminal 120 pode verificar o código Fire do bloco SACCH. Se a mensagem passar na verificação do código Fire, o terminal 120 pode avançar para o processamento de camada mais alta. O terminal 120 também pode atualizar uma mensagem protótipo, como a informação de cabeçalho camada 1, estabelecido na etapa 550. A informação de cabeçalho camada 1 poderá ser um campo de nível de energia móvel, um campo de avanço de tempo ou qualquer outra informação de cabeçalho camada 1. Por exemplo, alguns campos poderão não mudar por muito em mensagens subseqüentes. Assim, os valores efetivos juntamente com uma possível falha de valores poderão ser armazenados em qualquer um dos conjuntos de mensagem protótipo ou listas de atributo. Na etapa 555, o terminal 120 pode adicionalmente atualizar um conjunto de mensagem protótipo de camada 2 S na lista de protótipos de mensagem com uma mensagem protótipo se passar a verificação de código Fire. Se a mensagem falhar na verificação de código Fire, na etapa 560, o terminal 120 pode incrementar o segundo contador. Na etapa 565, o terminal 120 pode determinar se o contador superou um limite. O limite poderá ter por base o número de cabeçalhos de protótipos disponível. Se não superou, na etapa 570, o terminal 120 pode selecionar uma mensagem protótipo de cabeçalho do conjunto de mensagens protótipos de cabeçalho Sl para substituir o campo de cabeçalho e pode novamente verificar o código Fire na etapa 545. Selo segundo contador tiver superado o limite, na etapa 575, o terminal 120 pode incrementar o contador. Na etapa 580, o terminal 120 pode determinar se o contador superou um limite. Se o fizer, o terminal 120 pode declarar a mensagem como ruim. Se o contador não superou o limite, na etapa 585, o terminal 120 pode selecionar uma mensagem protótipo de camada mais elevada M da lista de protótipos de mensagem S2 para substituição no campo de mensagem de camada 2 na mensagem e continuar na etapa 535. Por exemplo, o terminal 120 pode selecionar uma mensagem protótipo de camada 2 incrementalmente de acordo com o contador.
A Figura 6 é um fluxograma exemplar 600 que ilustra a operação do terminal 12 0 de acordo com outra versão relacionada. Por exemplo, o fluxograma 600 pode ilustrar a operação do terminal 120 após ele receber uma mensagem e modificar os estados inicial e de terminação da via do decodificador convolucional, cálculo da métrica da via, e processamento "traceback" condicionado em uma mensagem de camada mais alta. Na etapa 610, o terminal 120 pode inicializar um contador, como o contador de índice de protótipos. Na etapa 615, o terminal 120 pode equalizar a mensagem para obter uma estimativa dos dados recebidos. Na etapa 620, o terminal 120 pode combinar as estimativas da mensagem. Na etapa 625, o terminal 120 pode desentrelaçar as estimativas combinadas para obter um bloco SACCH. Na etapa 63 0, o terminal 12 0 pode decodificar convolucionalmente o bloco SACCH utilizando um método de decodificação convencional. Na etapa 635, o terminal 120 pode verificar o código Fire do bloco SACCH. Se a mensagem passar a verificação do código Fire, o terminal 120 pode declarar o bloco SACCH como "bom" e avançar para o processamento de camada mais alta. Na etapa 64 0, o terminal 12 0 pode atualizar um conjunto de mensagem protótipo de camada mais alta S na lista de protótipos de mensagem com uma mensagem protótipo se a mensagem passar a verificação de código Fire. Por exemplo, o terminal 120 pode atualizar um conjunto de mensagens protótipos de camada mais alta S na lista de protótipos de mensagem com uma mensagem protótipo se a mensagem passar a verificação de código Fire. Por exemplo, o terminal 120 pode atualizar um conjunto de mensagens protótipo de camada 2 S na lista de protótipos de mensagem com uma mensagem protótipo. Se a mensagem falhar na verificação de código Fire, na etapa 64 5, o terminal 12 0 pode incrementar o contador. Na etapa 650, o terminal 120 pode declarar o bloco SACCH como ruim. O limite poderá ser qualquer limite útil. Por exemplo, o limite poderá ser o número de mensagens armazenadas na lista de protótipos de mensagem. Se o contador não superou o limite, na etapa 655, o terminal 120 pode selecionar uma mensagem protótipo de camada 2 M da lista de protótipos de mensagem para substituir o campo de mensagem de camada 2 na mensagem. Por exemplo, o terminal 120 pode selecionar uma mensagem protótipo camada 2 de acordo com o contador. Na etapa 660, o terminal pode utilizar um método de treliça modificado e de decodificação de "traceback" no bloco SACCH e retornar à etapa 635. Por exemplo, a construção de treliça modificada pode significar atualizar a métrica de estado de treliça de um decodificador de correção de erro de encaminhamento, como o algoritmo Viterbi, ou outro dispositivo de hipótese de estado finito, para permitir apenas transições de estado, ou hipóteses de símbolo, consistente com a mensagem protótipo M. De modo similar, a decodificação "traceback" pode : significar selecionar a seqüência decodificada de acordo com a métrica do estado de treliça, mas somente permitir as vias consideradas através da treliça de acordo com a mensagem protótipo M.
De acordo com uma versão relacionada alternativa, durante ou após a etapa 600, o terminal pode permitir que um decodif icador Fire corrija uma seqüência de erro de rajada de 17 bits ou menos em um cabeçalho camada 1 ou campo de paridade.
O método desta revelação é preferivelmente implementado em um processador programado. No entanto, as controladoras, fluxogramas e módulos também poderão ser implementados em um computador de finalidade geral ou de finalidade especial, um microprocessador ou microprocessador programados e elementos de circuito integrado periféricos, um circuito integrado ASIC ou outro, um circuito eletrônico de hardware ou circuito lógico como o circuito de elemento discreto, um dispositivo lógico programável como um PLD, PLA, FPGA ou PAL, ou assemelhados. Em geral, qualquer dispositivo em que reside uma máquina de estado finito capaz de implementar os fluxogramas mostrados nas Figuras poderá ser utilizado para implementar as funções de processador desta revelação.
Embora esta revelação tenha sido descrita com versões especificas da mesma, é evidente que muitas alternativas, modificações e variações serão aparentes para aqueles habilitados na tecnologia. Por exemplo, vários componentes das versões poderão ser intercambiadas, acrescentadas, ou substituídas nas outras versões. Outrossim, todos os elementos de cada Figura não são necessariamente para operação das versões reveladas.·*. Por exemplo, alguém de habilidade ordinária na tecnologia das versões reveladas seria possibilitado a fazer e utilizar os ensinamentos da revelação ao simplesmente empregar os elementos das reivindicações independentes. Assim, as versões preferidas da revelação conforme aqui apresentadas pretende-se que sejam ilustrativas e não limitativas. Várias mudanças poderão ser feitas sem desviar do espírito e escopo da revelação.