Código descrambler-scrambler detector e
corretor de erros e seu uso em equipamentos
Vectura
Victor Alfonso Valenzuela Diaz*, Isabela Vasconcelos de Carvalho Motta
Este artigo descreve um novo código corretor de erros baseado em uma estrutura descramblerscrambler. Descreve também sua modelagem em termos de grafos-fatores. Esse código corresponde a
uma evolução do código descrambler-scrambler que foi anteriormente desenvolvido para os
equipamentos Vectura1. São inicialmente descritos os conceitos básicos e a motivação do uso de códigos
corretores e detectores de forma geral e, em particular, na transmissão interna de equipamentos.
Posteriormente, são descritos o tipo de código detector de erro e o novo código corretor de erros.
Finalmente, é feita a análise do uso da técnica de grafos-fatores para modelar esse código. Durante a
apresentação dos códigos detector e corretor, é analisada a eficiência destes utilizando uma abordagem
baseada nas características das sequências pseudoaleatórias de máximo comprimento.
Palavras-chave: Código detector de erro. Código corretor de erros. Grafos-fatores. Scrambler.
Descrambler.
Introdução
Os sistemas de transmissão digital, apesar de
apresentarem maior imunidade a ruídos do que
os
sistemas
analógicos,
frequentemente
precisam conviver com taxas de erros de
transmissão não nulas. Nesses sistemas de
transmissão ruidosos, o uso de códigos
detectores e corretores de erro pode ser a
melhor solução para obter taxas de erro baixas a
custos adequados. O código detector de erros
descrambler-scrambler foi concebido inicialmente
para ser usado na transmissão interna de sinais
entre processadores da plataforma Trópico
(VALENZUELA, 1987). Posteriormente, passou a
ser usado também em equipamentos da
plataforma Vectura. Hoje, esses equipamentos
possuem uma arquitetura com controle
distribuído baseada em uma rede composta de
vários processadores e tratam mais de 45
bilhões de minutos de chamadas por mês,
exigindo requisitos de altíssima qualidade na sua
rede de processadores interna. Além de revisitar
esse código, é também apresentada uma
metodologia de análise de probabilidade de falha,
ou seja, de não detecção de erros.
Posteriormente foi desenvolvido o código corretor
de erros descrambler-scrambler, que é também
apresentado neste artigo.
1 Código detector de erro descramblerscrambler
Os códigos detectores e corretores de erro aqui
tratados se aplicam a sinais digitais que, em
geral, possuem taxas de bits constantes. De fato,
pode-se abstrair a representação física (elétrica,
por exemplo, e inclusive temporal) desses sinais
e considerá-los simplesmente sequências de bits
“1s” e “0s”. Uma característica importante do
código é que não há exigência de que todas as
mensagens originais possuam um mesmo
tamanho.
O código detector descrambler-scrambler foi
desenvolvido para ter uma implementação
extremamente simples (e confiável). Por esse
motivo optou-se inicialmente por um código
detector e não corretor de erros.
1.1 Sequências de comprimento máximo
O código detector de erro descrambler-scrambler
tem seu conceito básico relacionado com as
sequências de comprimento máximo (Maximum
Length Sequences – MLS). MLS são sequências
periódicas que pertencem à classe de
sequências binárias pseudoaleatórias.
As sequências MLS são geralmente geradas a
partir de shift-registers com realimentações
lineares
(PETERSON;
WELDON,
1961).
Considere um shift-register, ou registrador de
deslocamento, que possui uma entrada e d = 7
saídas e as saídas 3 e 7 realimentadas através
de “ou-exclusivo” na sua entrada.
O operador “ou-exclusivo” de k entradas tem sua
saída igual a 1, se o número de entradas em “1”
for ímpar, e tem sua saída igual a zero, se esse
número de entradas em “1” for par. Se as
realimentações (ou taps) do registrador forem
escolhidas adequadamente, a sequência gerada
será uma sequência de comprimento máximo
*Autor a quem a correspondência deve ser dirigida: [email protected]
1 Os equipamentos Vectura são desenvolvidos no escopo do Projeto CONVERTE – Apoio da FINEP com recursos do FUNTTEL.
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura
register do mesmo tamanho e com as
mesmas realimentações que a primeira), mas
deslocada de i bits da primeira, com i sendo
não múltiplo do período da sequência. A soma
em “ou-exclusivo” das duas sequências é
igual à mesma sequência MLS, mas com um
atraso j, em que j é diferente de zero e
diferente de i. A Figura 1 mostra esse
comportamento. Considerou-se a primeira
sequência com defasagem 0.
(MLS). Isso significa que será uma sequência
periódica que se repete a cada 2 d - 1 períodos de
bit, onde "d" é o número de posições do
registrador.
Dessa forma, pode-se escrever:
S.∆0 = S.∆3 ⊕ S.∆7
Fazem parte dessa expressão o operador de
atraso ∆, as funções produto (por exemplo em S.
∆0) e a soma módulo 2 (“ou-exclusivo”). Nessa
matemática, as variáveis (valores de S) podem
assumir unicamente os valores 0 e 1
(correspondentes ao Campo de Galois GF (2)).
Os sistemas desenvolvidos dentro dessa
matemática são lineares (ZUFFO, 1974).
Pode ser mostrado (GOLOMB, 1967) que, para
que a sequência gerada pelo registrador seja
uma
MLS,
as
realimentações
devem
corresponder a um polinômio primitivo em GF
(2).
As
sequências
MLS
possuem
várias
propriedades interessantes. Entre elas, as
seguintes são importantes neste trabalho:
• O número de bits “1” em um período (de 2d -1
bits) é igual a um mais o número de bits “0”.
Ou seja, temos 2d -1 bits “1” e “2d-1 -1” bits “0”.
Dependendo do conteúdo inicial do
registrador, a sequência é iniciada em um
ponto diferente, mas sempre é gerada a
mesma sequência de período “2d-1” bits. Uma
particularidade é quando o registrador tem
conteúdo inicial com todos os bits iguais a
zero. Nesse caso, o registrador não sai desse
estado e a sequência gerada é uma
sequência de zeros.
•
Considere uma sequência MLS e outra
sequência MLS igual (gerada por um shift-
Defasagem j da terciera seqüência MLS
•
•
Como pode ser visto na Figura 1, a
defasagem da terceira MLS se distribui de
forma esparsa. Em uma aproximação
pseudoestatística pode ser considerado que a
defasagem j da MLS, resultante da soma de
MLSs com defasagens 0 e i, se distribui de
forma aleatória e uniforme, entre 1 e 2d -1.
•
Por extensão, a soma de 3 ou mais versões
da mesma MLS, defasadas entre si, é igual à
mesma MLS com uma outra defasagem.
1.2 Scrambler-descrambler
Em função de suas propriedades de
pseudoaleatoriedade, as sequências MLS
possuem varias aplicações. Uma variação
dessas sequências, em que a máquina de estado
passa a receber sinais de entrada externos, é o
do embaralhador (scrambler) e desembaralhador
(descrambler) de sinais. Como no caso das
sequências MLS, esses circuitos utilizam
também registradores com realimentações
lineares realizadas a partir de “ou-exclusivos”.
Em algumas aplicações, é conveniente que os
sinais transmitidos não possuam sequências
grandes de bits “1” ou bits “0”. Nesses casos,
podem ser usadas configuração scrambler do
120
100
80
60
40
20
0
0
20
40
60
80
100
120
Defasagem i da segunda seqüência MLS
Figura 1 Defasagem da MLS resultante da soma de duas MLSs defasadas de i
50
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura
SB = SA ⊕ ST. ∆3 ⊕ ST. ∆7 ⊕ ST. ∆3 ⊕ ST. ∆7
palavra de "d" bits, mas sempre deve ser usada a
mesma palavra. O tamanho e conteúdo dessa
palavra independem da quantidade “b” de bits da
sequência original. Sem perda de generalidade,
vamos considerar que essa palavra seja igual a
todos os bits iguais a “1”. Após o acréscimo
desses "d" bits, o sinal é aplicado ao codificador
(descrambler), conforme Figura 3. No início de
cada mensagem, os shift-registers do codificador
e do decodificador devem ser levados à mesma
condição inicial. Por convenção, definiu-se que
essa condição é a palavra com todos os bits
iguais a “0”.
No exemplo da Figura 3, as equações
polinomiais que representam esse circuito são:
ou seja,
ST = SA ⊕ SA. ∆3 ⊕ SA. ∆7
SB = SA
SB = ST ⊕ SB. ∆3 ⊕ SB. ∆7
lado da transmissão e descrambler no lado da
recepção, conforme Figura 2.
Tanto o descrambler como o scrambler utilizam
shift-registers com realimentações lineares. No
entanto, nessa configuração, os dois circuitos
possuem sinais de entrada: SA no caso do
scrambler e ST no caso do descrambler.
Pode ser verificado no exemplo da Figura 2 que:
ST = SA ⊕ ST. ∆3 ⊕ ST. ∆7
SB = ST ⊕ ST. ∆3 ⊕ ST. ∆7
CLK
Scrambler
SB = SA ⊕ SA. ∆3 ⊕ SA. ∆7 ⊕ SB. ∆3 ⊕ SB. ∆7
ou seja,
SB. (1 ⊕ ∆3 ⊕ ∆7) = SA. (1 ⊕ ∆3 ⊕ ∆7)
SA
e, portanto,
SB = SA
CLK
Descrambler
SB
Figura 2 Configuração scrambler-descrambler
1.3 O código descrambler-scrambler
O código descrambler-scrambler (VALENZUELA,
1987) é um código polinomial no qual o sinal
original (source sequence) é fornecido ao
codificador em blocos. Esse código permite que
cada bloco tenha um comprimento diferente,
sendo necessário para isso que o decodificador
saiba em que ponto inicia e em que ponto
termina cada bloco. Para efeito de análise,
considere-se um comprimento genérico de “b”
bits.
Nesse código, no codificador, que passa a ser o
descrambler, é acrescentada uma palavrapadrão de “d” bits fixos imediatamente após os
“b” bits. Esses "d" bits podem ser qualquer
Isso significa que, assim como no caso
scrambler-descrambler, a saída SB é igual à
entrada SA, o que também vale para qualquer
outro polinômio P (∆), desde que usado tanto no
codificador como no decodificador. O sinal ST
também apresenta um embaralhamento, porém
menor do que no caso scrambler-descrambler.
De fato, cada bit do sinal SA afeta o sinal ST,
unicamente, cada vez que passa por uma das
realimentações do registrador. Isso não é
problema, pois o objetivo do código não é obter o
embaralhamento do sinal transmitido. No caso
em que o scrambler é usado na transmissão, o
sinal ST é mais embaralhado, pois a informação
dos bits do sinal SA, como faz parte da
realimentação, fica em “loop eterno” no
registrador. Exatamente por causa dessa
propriedade, nesse código o scrambler é usado
no decodificador. No caso de ocorrência de um
ou mais erros de bit na transmissão, esses bits
errados entram no loop de realimentações do
shift-register e se propagam até o final do bloco,
ou seja, até os últimos "d" bits. Se é encontrada
uma palavra diferente da palavra original de
verificação (que por convenção é “todos os bits
iguais a 1”), o erro é detectado. O fato de o
polinômio usado ser primitivo, além de implicar
em um efeito melhor de propagação do erro,
diminui as probabilidades de não detecção,
conforme indicado mais adiante.
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
51
Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura
Descrambler (Codificador)
SF
Insere “d”
bits fixos no
fim de cada
bloco
SA
ST
Scrambler (Decodificador)
SS
Retira “d” bits
fixos no fim de
cada bloco
Detecta e informa
ocorrência de
erros
SB
Informa mensagem com erro
Figura 3 Codificador e decodificador descrambler-scrambler
1.4 Análise no caso de presença de erro de
transmissão
Para avaliar a eficiência desse código, é
importante calcular a probabilidade de não
detecção dos erros. Pode ser facilmente provado
que, na ausência de erros, existe uma relação
biunívoca entre o conjunto de possíveis
mensagens em SA e o conjunto de possíveis
mensagens em ST. Isso significa que, tomando
m como o número de bits na mensagem
codificada (m = b + d) para cada uma das 2 m-d
possíveis mensagens em SA, existe uma e
somente uma mensagem em ST, e vice-versa.
Na presença de erros, o sinal recebido de SR é
diferente de STE e tem-se, na entrada do
decodificador, uma sequência “ST com erros”
denominada STE.
Um erro não será detectado unicamente se a
mensagem com erro em STE corresponder a
uma das mensagens permitidas em ST e,
portanto, for esperada em SR. Nesse caso, a
mensagem (após decodificação) corresponderá
a uma mensagem permitida em SB, mas não a
uma mensagem correta. Então, se todos os tipos
de erro têm a mesma probabilidade, a
probabilidade condicional de um erro não ser
detectado, dado que houve erro, é (onde os
termos -1 no numerador e denominador
correspondem à exclusão da mensagem
52
correta):
P (erro não detectado/erro existe) =
(2m-d- 1) /(2m
≅ 2-d - 2-m ≅ 2-d para m >> d.
Portanto, nesse caso, a probabilidade de haver
um erro não detectado diminui exponencialmente
com o aumento de "d" e é praticamente
independente de m, desde que m>>d. É
interessante estabelecer, para cada quantidade
de bits errados por mensagem, a probabilidade
do erro não ser detectado.
A Figura 4 mostra um modelo em que o processo
de ocorrência de erros é representado por uma
sequência de erro SE somada (em “ouexclusivo”) com a sequência ST. Nos períodos
de bit em que SE = 1, o bit correspondente de ST
é invertido, provocando o erro. Essa soma com o
sinal SE corresponde ao modelo do canal de
transmissão. Note que está se abstraindo o
atraso de transmissão e pressupondo que no
lado da recepção há uma infraestrutura de timing
que permite trabalhar em sincronismo com o lado
de transmissão. O canal é considerado do tipo
sem memória, dado que a distribuição de
probabilidades atribuídas para o erro em cada bit
é considerada independente do histórico de
símbolos transmitidos anterior e posteriormente.
Denominando-se o sinal na saída do
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura
decodificador de SB, no caso de ausência de
erro, e SBE, no caso de presença de erro,
obtêm-se as expressões:
Na ausência de erro: SB = ST ⊕ SB. P (∆)
Na presença de erro: SBE = STE ⊕ SBE. P (∆)
em que P (∆) é o polinômio gerador. Somando as
duas expressões tem-se:
SB ⊕ SBE = (ST ⊕ STE) ⊕ (SB ⊕ SBE). P (∆)
Denomina-se SB ⊕ SBE = SER. SER é, portanto,
a sequência de erros observada na saída do
decodificador. Ou seja, SER é uma sequência
que possui bits “1” nos intervalos de bit, onde SB
apresenta erros, ou seja, onde é diferente de SA.
Como STE = ST ⊕ SE, então SER = SE ⊕ SER.
P (∆).
Descrambler (Codificador)
SA
lineares, pode ser analisado o comportamento
separado do scrambler contendo as sequências
ST e SE como entradas de dois circuitos iguais,
conforme Figura 5.
Note que se trata de uma representação teórica,
pois na prática não se conhece SE e sim,
unicamente, sua soma com ST (sinal STE). No
entanto, isso nos permite fazer, em termos de
comportamento da taxa de erros, uma análise
separada para os sinais de erro. Em
correspondência a cada mensagem enviada pelo
codificador (bloco de m = b+d bits), pode-se
considerar que há mensagens do mesmo
tamanho em SE e SER. Nos casos sem erro, as
duas mensagens SE e SER têm todos os seus
bits iguais a zero.
Mensagens
com
erro
não
detectado
correspondem a mensagens SE que não têm
todos os seus bits iguais a zero, mas que
provocam mensagens em SER com seus últimos
"d" bits iguais a zero.
1.4.1
ST
SE
Canal de
transmissão
SR = STE
Scrambler (Decodificador)
SB
Figura 4 Representação de canal de transmissão
ruidoso
Essa relação entre SER e SE é a mesma
relação existente entre SB e ST. Isso significa
que, se a sequência SER for aplicada ao
descrambler, sua sequência de saída deverá ser
SE, e se a sequência SE for aplicada ao
scrambler, a sequência de saída deverá ser SER.
Essa conclusão é muito interessante, mostrando
que, em uma relação efeito-causa (em
contraposição a causa-efeito), a partir do sinal
SER, pode ser obtido o sinal SE (que provocou o
sinal SER).
A sequência STE, na entrada do scrambler
(decodificador) é igual à soma das duas
sequências ST e SE. Por se tratar de circuitos
Erros simples não detectados
Todos os erros simples (ou seja, com um único
bit = 1 na mensagem em SE) são detectados por
esse código. Isso pode ser provado considerando
a relação SER = SE ⊕ SER. P (∆) da seguinte
forma: dado que o conteúdo inicial do registro é,
por convenção, formado por todos os bits iguais
a “0”, enquanto a sequência SE não apresenta
seu único bit “1”, seu conteúdo permanecerá com
todos os bits iguais a zero, porque nessa
situação o scrambler se comporta como um
gerador de sequência MLS em seu estado de
fuga “todos os bits iguais a zero”.
No instante em que o único bit “1” da mensagem
SE ocorre, o registrador passa ao estado em que
sua primeira entrada é 1 e todas as outras 0.
Desse ponto em diante, a sequência SE volta a
zero e o scrambler passa a se comportar como
um gerador de sequência MLS que nunca volta
ao estado “tudo 0”. Isso significa que no instante
de detecção, no fim da mensagem, o registro
terá um conteúdo diferente da palavra-padrão
esperada.
1.4.2
Erros duplos
A análise de erro duplo pode ser realizada
considerando as propriedades de separação
linear (como a ilustrada na Figura 5). A
sequência SE, que nesse caso possui dois bits
“1” em sua mensagem, pode ser considerada a
soma (em “ou-exclusivo”) de duas sequências
SE1 e SE2, cada uma com um único bit “1”, e
pode ser usado um raciocínio semelhante ao da
análise de erro simples.
A única situação em que a palavra de "d" bits no
fim da mensagem transmitida pode ser
mascarada, implicando em um erro não
detectado, é com conteúdos dos registros
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
53
Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura
relativos a SE1 e a SE2 iguais nos últimos "d"
bits da mensagem, pois somente assim sua
soma se anulará. Isso significa que as
sequências MLS ativadas pelos bits “1” em SE1 e
SE2 devem estar em fase, o que somente pode
ocorrer se a distância entre esses bits “1” em
SE1 e SE2 for um múltiplo do período p = 2 d -1
bits da MLS. Pode ser verificado que o número
N2 de erros duplos que não podem ser
detectados é (considerando I = Int [m/p]):
Para m ≤ 2d -1 N2 = 0;
Para m > 2d -1 N2 =
 I + 1
I 
 + [( I + 1). p − m].  =
( m − I . p )
 2 
2
=
I [2.m − ( I + 1). p]
2
ST
SB
SE
SBE
SER
Figura 5 Separação linear
Supondo-se, como exemplo, que as mensagens
usadas em um dado sistema têm comprimento
máximo de b = 512 bytes, ou seja 4.096 bits, se
for usada uma palavra de verificação de d = 16
bits tem-se:
m = b+d = 4.096+16 = 4.112 < 65.535 = 216 -1
Ou seja, não haverá mensagens com erro duplo
não detectadas.
No entanto, se o registrador tiver d = 7 bits,
usando a expressão para m > 2d -1, obtêm-se
que o número de mensagens com dois erros não
detectados é 64.240 mensagens com dois erros
não detectadas. De acordo com a (função)
Combinação {4.103;2} = 8.415.253 erros duplos
possíveis, não será detectado um de cada
8.415.253 / 64.240 = 130,997 erros duplos. Note
que esse valor se aproxima de um a cada 2d.
Considerando que todos os possíveis erros
duplos têm a mesma probabilidade, tem-se:
Prob (erro duplo não detectado/ocorreu erro
duplo) =
=
I [2.m − ( I + 1). p]
m.(m-1)
1.4.3
Erros de distância maior que dois
Para o caso de mais de dois erros em uma
mensagem, a quantidade de erros não
detectados depende do polinômio primitivo usado
nas realimentações dos shift-registers. Como
indicado anteriormente, a soma de duas versões
da mesma sequência MLS defasadas de i bits,
sendo i não múltiplo do período da sequência, é
igual a uma terceira versão da mesma MLS, que
não se encontra em fase com nenhuma das duas
anteriores. O mesmo vale para a soma de mais
de duas sequências MLS.
Eventualmente, as fases podem ir se compondo
de forma que a soma de todas as MLS, menos a
última, seja uma MLS que esteja exatamente em
fase com essa última. Nesse caso, a soma final
será uma sequência que terá todos os bits iguais
a zero a partir do início da última MLS.
Exatamente, esse é o caso em que a ocorrência
de mais de dois erros na mensagem provoca a
não identificação de erros realizada com base
nos "d" últimos bits da mesma.
Quando o número de erros na mensagem é
maior ou igual a 3, torna-se difícil fazer uma
determinação analítica da quantidade de erros
não detectados. Em vez disso, para verificar
como é esse comportamento, exercitaram-se
exaustivamente
(considerando
todas
as
situações possíveis) alguns casos de código
descrambler-scrambler.
Para facilitar esses cálculos, utilizaram-se mais
uma vez as propriedades lineares. Conforme a
relação SE = SER ⊕ SER. P (∆), a partir do sinal
SER (efeito) pode ser gerado o sinal SE (causa),
que provocou o sinal SER.
Com o objetivo de gerar todas as possíveis
mensagens de erro em SER não detectadas,
para um decodificador com mensagens de m =
22 bits relativos a b = 15 de sequência original
mais d = 7 de palavra-padrão (todos os bits
iguais a zero), foram geradas todas as possíveis
mensagens em SER que possuem 15 bits
(exceto a mensagem todos os bits iguais a zero –
pois ela corresponde ao caso sem erro) e
finalizam com 7 zeros (e, portanto, não são
detectadas). O fato de a mensagem SER ter
todos os últimos 7 bits iguais a zero, significa que
o decodificador interpretará ausência de erro,
enquanto o erro de fato existe, pois pelo menos
um dos 15 bits da sequência original é diferente
de zero. São, portanto, os casos em que se tem
interesse. Esses cálculos foram realizados
usando computador, tendo sido analisados os
casos de dois polinômios, 1 ⊕ ∆6 ⊕ ∆7 e 1 ⊕ ∆3 ⊕
∆7, conforme Figura 6, que mostra a
probabilidade condicional para cada uma das
distâncias de erro. A linha pontilhada
corresponde ao código com polinômio 1 ⊕ ∆3 ⊕
∆7. É possível constatar que as distribuições de
que se aproxima de 2-d quando m cresce.
54
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura
0,02000
Prob (não detecta/caso há)
erros)
0,01600
0,01200
0,00800
0,00400
0,00000
0
5
10
15
20
Número de bits
Figura 6 Probabilidade condicional de não detecção em função do número de erros
probabilidades são levemente diferentes entre
esses dois polinômios.
Pode ser constatado que não há erros simples
(distância 1) não detectados. Também não há
erros duplos não detectados, pois m = 22 < 2d -1
= 127. De um total de 4.194.303 erros possíveis,
32.767 não são detectados.
Para valores entre 6 e 18 erros por mensagens,
essas probabilidades se aproximam bastante de
2-7 @ 0,008. Como pode ser visto, o pior dos
casos é aproximadamente o dobro desse valor.
Os códigos descrambler-scrambler podem ser
classificados como códigos lineares polinomiais
que se aplicam a mensagens originais, de
tamanho que pode ser fixo ou variável.
Consequentemente, o tamanho das palavras
código, ou seja, das palavras resultantes da
codificação, pode ser fixo ou variável. Esses
códigos apresentam distância mínima de
Hamming igual a 2 entre todas as palavrascódigo, significando que é possível detectar
todos os erros simples. Se as mensagens
originais são mantidas com tamanho menor que
2d-1, a distância mínima é igual a 3, significando
que é possível detectar todos os erros duplos.
Um diferencial significativo desse código é que,
mesmo nos casos em que o erro é mascarado,
partes da mensagem propriamente dita (trecho
de “b” bits) são substancialmente alteradas, pois
são somadas a sequências MLS. Isso significa
que verificações de consistência realizadas em
camadas mais altas do controle da comunicação
poderão, com uma probabilidade muito maior,
detectar inconsistências e, portanto, invalidar
essa mensagem. Esse recurso também é
utilizado nos equipamentos Trópico e Vectura.
2
Correção de erros baseada no código
descrambler-scrambler
O uso do código descrambler-scrambler como
corretor de erros é baseado na capacidade de as
sequências MLS poderem ser reconstituídas
exatamente tanto “para trás” quanto “para frente”,
a partir de qualquer palavra de "d" bits seguidos
da sequência (“d” sendo o grau do polinômio
gerador).
A análise do código como corretor se baseia
também nas propriedades de linearidade das
máquinas de estado implementadas por shiftregisters realimentados e, principalmente, na
separação linear de sequências.
A correção de erros usa como base o processo
de detecção. Além de identificar se a palavra
recebida é diferente da palavra-padrão (todos os
bits iguais a 1), o decodificador também detecta
qual é exatamente a palavra de erro.
Suponha que se utilize um código com d = 7 e
que uma mensagem recebida em SBE tenha em
seus últimos “d” bits uma palavra de verificação
igual a 1011001.
No caso de ausência de erros, essa sequência
deveria ser 1111111. Ou seja, a palavra de erro é
0100110, que possui bits “1” nas posições com
erro.
Faz-se inicialmente a análise para erro simples,
conforme Figura 7, ou seja, considerando-se que
o sinal SER teve um único bit “1” em sua
mensagem, que provocou um único bit errado no
sinal STE. Consequentemente, no instante de
ocorrência desse pulso, e em uma análise de
separação linear, o shift-register ao carregar
esse bit “1” passa para o estado 1000000 e a
partir daí passa a gerar a sequência MLS relativa
ao sinal SER.
Com base na palavra de erro de 7 bits extraída
no fim da transmissão, é possível não somente
reconstruir a sequência SER “para trás” como
também identificar exatamente o ponto em que o
erro ocorreu.
Se fosse um código CRC, em que os primeiros
“b” bits transportam a mensagem original sem
alteração, com base nessa palavra de erro, seria
possível identificar o instante de erro e corrigir
exatamente o bit correspondente na mensagem
recebida.
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
55
Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura
No código descrambler-scrambler, como os bits
da mensagem original também são alterados
pelo erro, não somente o bit correspondente ao
instante de erro deve ser corrigido, como todos
os bits a partir dele. Ou seja, é preciso voltar ao
sinal SBE, “limpando” todo o trecho de bits
errados entre o fim da mensagem e o instante do
erro, conforme Figura 7, que mostra o conceito
de “espelho” próprio desse novo código corretor.
A partir do instante de detecção do erro, os sinais
SER e SBE passam a ser tratados “em espelho”,
ou seja, de trás para frente, e o sinal SBE é limpo
até o ponto de erro relativo ao estado 0000001
no shift-register. Para isso, cada mensagem SBE
precisa ser armazenada na recepção até que
esse tratamento seja realizado.
Nesse ponto, lançou-se mão de mais uma
propriedade interessante das sequências MLS.
Se o shift-register com realimentações dadas por
um polinômio gera uma sequência MLS, um
shift-register com as realimentações dadas por
um “polinômio simétrico” gera a sequência ao
contrário, ou seja, de “trás para frente”, como
desejado. Esse recurso tem algumas aplicações
práticas (XIANG et al., 2003).
Exemplificando, se o shift-register com
realimentações dadas pelo polinômio x0 + x3 + x7
gera uma sequência MLS, o shift-register com
realimentações x (7-0) + x (7-3) + x (7-7) = x0 + x4 +
x7 gera a sequência espelho.
Uma propriedade extremamente interessante
desse código corretor é que, assim como o
código detector, ele pode ser usado para
mensagens de tamanho variável.
Uma condição para o funcionamento desse
código corretor é a de que o tamanho máximo
das mensagens transmitidas, incluindo a palavrapadrão de verificação de "d" bits inserida no fim
da mensagem, seja menor do que 2d -1, ou seja,
menor do que o período da sequência MLS
correspondente. De fato, se essa condição não
fosse atendida, poderia haver ambiguidade na
identificação do ponto em que ocorreu o erro.
A decodificação que utiliza um “gerador de MLS
espelho” apresenta as seguintes características:
• A mensagem recebida em SBE deve ser
carregada inteira em um buffer ou memória.
• Identifica a palavra de erro.
• Carrega essa palavra de erro de forma
invertida no gerador de MLS espelho.
• Gera a MLS espelho, correspondente ao sinal
SER espelho, a partir desse gerador, até
encontrar a palavra de "d" bits correspondente
a um bit “1” mais “d-1” bits zero. Nesse ponto
é interrompido o processo de correção.
Período m
d
SE
MLS
SER
1000000
0100110
Espelho
trecho de trecho
SBE que
precisa
ser limpo
de SBE
que precisa
ser
SBE
li
d
MLS espelho (de limpeza)
SER espelho
SBE espelho
0000001
0110010
100110
1001101
1
trecho
SBEespelha
ser
trecho
de SBE espelho
a ser limpo
d
li
d
SB espelho
“fim”
“fim”da
da mensagem
mensagem espelho
lh
“inicio”
da mensagem
“início” da
mensagem
espelho
lh
Figura 7 Processo de limpeza em espelho
56
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura
•
Enquanto tal ponto não for encontrado, a
sequência SBE deverá ser somada em “ouexclusivo”, bit a bit, de trás para frente, com a
sequência SER espelho.
A Figura 8 oferece um exemplo de
implementação do código corretor.
SA = 011100 1111
ST = 010011 0100
Representa
o
erro no 3 bit
SE = 001000 000
Canal de Transmissão
SR = STE = 011011 0100
Scrambler (Decodificador)
1010
SBE = 010011 1010
1010
No início do
espelhamento
SRE espelho =
1010 11100
SBE espelho = 0101 110010
Corrige
até aqui
SB espelho =
1111 001110
SB 011100 1111
Figura 8 Implementação de código corretor de
erros
Considere uma mensagem com b = 6 bits e d = 4
bits de palavra-padrão de verificação, totalizando
m = 10 bits de mensagem e com o polinômio
primitivo correspondente igual a 1+x1+x4.
Considere ainda, shift-register de codificação
(descrambler) e de decodificação (scrambler),
ambos com conteúdo inicial 0000. Considere
uma mensagem original transmitida igual a
011100, sendo acrescido 1111 nos quatro
últimos bits correspondentes à palavra-padrão de
verificação. De acordo com o polinômio gerador,
é gerada no descrambler a mensagem 010011
0100 no sinal ST. Suponha-se que o sinal SE
apresente um erro, ou seja, um bit “1” no terceiro
intervalo de bit, significando que o terceiro bit de
ST é invertido, teremos, em função do polinômio
gerador, que STE = 011011 0100. No scrambler
do decodificador é gerada em correspondência a
mensagem SBE = 010011 1010. A partir do
terceiro bit dessa mensagem os bits são
somados com a sequência SER. Até esse ponto,
a sequência SER não é conhecida.
Na recepção, um shift-register espelho gera a
mensagem SER espelho. Para isso, a palavra de
erro resultante do “ou-exclusivo” dos últimos 4
bits de SBE com a palavra-padrão 1111 é
carregada no registro espelho, mas invertida,
pois deve-se gerar a sequência para trás (1010).
O
shift-register
espelho
tem
como
realimentações o polinômio simétrico 1+x3+x4 e,
portanto, gera a MLS para trás, correspondendo
ao espelho de SER: 1010 111100. Quando o
padrão 100 é detectado em SER espelho
significa que foi encontrado o ponto de erro, que
corresponde ao oitavo bit (ou terceiro de frente
para trás). Até esse oitavo bit a sequência SER
espelho é somada com a sequência SBE
espelho, gerando a sequência SB espelho 1111
001110. A partir do oitavo bit, a sequência SB
espelho é mantida igual a SBE espelho.
Finalmente SBE espelho é “desinvertida” e os
bits 1111 de verificação são retirados, resultando
na sequência original 011100.
Erros múltiplos, com mais de um erro por
mensagem podem, com probabilidade dada pelo
código detector, ser detectados, mas não podem
ser corrigidos. De fato, numa análise de
separação linear semelhante à realizada para o
detector de erros, cada um dos dois ou mais
pulsos de SE desencadeia em SER uma
sequência MLS iniciada na palavra de “d-1” bits
“0” seguidos de um bit “1” no registrador do
decodificador (scrambler). A sequência resultante
da soma dessas MLS, conforme visto
anteriormente, é a própria MLS deslocada de
outro valor. Quando essa MLS atinge o final da
mensagem, o registrador apresentará uma
palavra a partir da qual não se consegue
reconstituir a SER espelho.
No caso de erros múltiplos, há situações em que
o erro pode ser detectado e outras em que o erro
não é detectado.
Nos casos em que o erro múltiplo não é
detectado no código detector, o erro também não
será detectado no código corretor pois a palavra
de verificação não é alterada. Cabe em seguida
analisar a probabilidade de, havendo alteração
na palavra de verificação, essa palavra ser
corrigida erroneamente, ou seja, não detectada.
Isso ocorre quando o decodificador faz o
processo de limpeza pensando que está
corrigindo um erro simples, mas essa correção
está errada.
O erro múltiplo será detectado como tal e,
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
57
Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura
portanto, não será corrigido, quando, a partir da
palavra de erro no registrador é gerada a SER
espelho e não se encontra a palavra “1” seguida
de “d-1” zeros até o fim da mensagem em SEB
espelho.
De acordo com a análise feita com base na
Figura 1, a MLS resultante da soma de mais de
um pulso de erro tem uma fase distribuída de
forma pseudoaleatória. Isso significa que o ponto
de marcação de erro correspondente a palavra
de um bit “1” seguida de “d-1” bits “0” pode se
encontrar a uma distância (em períodos de bit)
entre “1” e “2d -1” períodos. Quando essa
distância é maior do que m, essa palavra não é
encontrada e a condição de erro pode ser
deduzida. Podemos concluir que a probabilidade
de não detecção deve ser aproximadamente de
b/2d.
Suponha, por exemplo, que b = 1.024 e d = 16,
ou seja, 2d = 65.536. Nesse caso a probabilidade
de não detecção de erros múltiplos seria de
aproximadamente 1.024 / 65.536 = 1 / 64.
A probabilidade de não detecção pode ser
diminuída aumentando o tamanho da palavra de
verificação. No mesmo caso, por exemplo, para
b = 1.024 e d = 32, a probabilidade de não
detecção seria aproximadamente 1.024 /
4.294.967.296 = 2,38 x 10-7.
Outra opção ao processo de espelhamento para
implementar esse código é usar uma tabela que,
a partir da palavra de erro detectada, indique em
que posição ocorreu o erro. A palavra extraída do
registrador de deslocamento (scrambler) pode
ser usada como endereço dessa tabela (por
exemplo, uma memória ROM) que fornecerá
exatamente a posição da mensagem m na qual o
erro deve ter ocorrido e a partir da qual a limpeza
da sequência SBE deve ser realizada. A partir
desse ponto, e agora de forma não espelhada, a
sequência SBE deve ser gerada com a MLS a
partir da palavra com “d-1” zeros e “1”. Quando
o ponto indicado pela tabela está a uma distância
maior do que o comprimento da mensagem m, a
condição de erro pode ser identificada.
Outro artifício para realizar mais rapidamente o
processo de limpeza, que poderá ser usado tanto
no caso do espelhamento como no caso do uso
de tabela, é o de conversão do tratamento
(máquinas de estado) de serial para paralelo,
conforme Valenzuela (1994). Nesse caso, a
limpeza pode ser feita, por exemplo, de byte em
byte em vez de bit em bit.
O código corretor de erros descramblerscrambler é um código polinomial de distância
mínima de Hamming igual a 3 entre todas as
palavras-código, pois consegue detectar todos os
erros simples. Assim como no caso do código
detector, um diferencial significativo desse código
é que, mesmo nos casos em que o erro é
mascarado e, portanto, não é corrigido ou é
58
corrigido erroneamente, partes da mensagem
propriamente dita (trecho de “b” bits) são
substancialmente alteradas, pois são somadas
com sequências MLS. Isso significa que
verificações de consistência realizadas em
camadas mais altas do controle da comunicação
poderão, com uma probabilidade muito maior,
detectar inconsistências e, portanto, invalidar
essa mensagem.
3
Caracterização dos códigos descramblerscrambler por meio de grafos-fatores
Os grafos-fatores correspondem a uma técnica
que pode ser usada para representar sistemas
codificados
por
meio
de
modelagens
comportamental e probabilística.
Para aplicar esse método aos códigos
descrambler-scrambler, é construído em primeiro
lugar o grafo-fator do codificador, posteriormente
o do decodificador, e finalmente os dois são
relacionados pelo modelo estatístico do canal de
transmissão. Na mensagem, ou “bloco” de m =
b+d bits, os m bits da mensagem original são
considerados “variáveis”. É utilizado também o
conceito de bits de “controle” que representam as
equações de paridade. No caso dos códigos
descrambler-scrambler, todos os bits da
mensagem transmitida são considerados bits de
controle e não somente os bits de verificação.
Na construção de um grafo, em um dos lados
são colocados os nós de variáveis, habitualmente
representados por círculos e, no outro, são
colocados os nós de controle, ou de paridade,
habitualmente representados por quadrados. O
número de linhas que confluem em um dado nó
chama-se grau do nó e o número total de linhas
do grafo é igual ao número de “1” da matriz de
teste de paridade (ou matriz H – a ser definida)
do código. Cada nó de variável está associado a
um bit de mensagem e cada nó de paridade está
associado a uma equação de paridade. No caso
dos códigos descrambler-scrambler, essas
equações estão relacionadas com os polinômios
das sequências MLS utilizadas.
Para encontrar o modelo de grafo-fator do código
descrambler-scrambler (MACKAY, 2003), utilizase uma matriz m x m, cujas linhas são bases
vetoriais para o código em questão. Essa matriz
é denominada matriz de teste de paridade.
Através de operações elementares “ou-exclusivo”
podemos descobrir a matriz de teste de paridade
do código descrambler-scrambler.
Para ilustrar esse método foi usado um caso
prático, considerando o código descramblerscrambler com configuração de geração do
seguinte polinômio (Figura 8):
ST = SA ⊕ SA. ∆1 ⊕ SA. ∆4
Assim, podemos representar os estados do
registrador, conforme Tabela 1.
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura
Tabela 1 Representação de estados do codificador
B1
B2
B3
B4
B5
B6
B7
B8
B9
B10
P1
0
B1
B2
B3
B4
B5
B6
B7
B8
B9
P2
0
0
B1
B2
B3
B4
B5
B6
B7
B8
P3
0
0
0
B1
B2
B3
B4
B5
B6
B7
P4
0
0
0
0
B1
B2
B3
B4
B5
B6
ST
B1
B1+B2
B2+B3
B3+B4 B1+B4+ B2+B5+ B3+B6+ B4+B7+ B5+B8+ B6+B9
B5
B6
B7
B8
B9
+B10
Observa-se que o estado inicial do registrador é
0000. O conteúdo do registrador após a
introdução do i-ésimo bit da sequência de
informação no codificador caracteriza o estado
da mensagem ST, em um dado instante.
Sabe-se que os bits de paridade inseridos no
código
descrambler-scrambler
são,
por
convenção, todos iguais a 1. Fazendo ST7, ST8,
ST9 e ST10 igual a 1, pode-se simplificar o
resultado obtido.
Assim, das expressões da última linha da Tabela
1 pode-se escrever:
ST1 = B1
ST2 = B1+B2
ST3 = B2+B3
ST4 = B3+B4
ST5 = B1+B4+B5
ST6 = B2+B5+B6
ST7 = B3+B6+B7
ST8 = B4
ST9 = B5
ST10 = B6
Apesar de B7 ser igual a 1, em ST7 ele se
mantém na equação porque não se cancela.
Dessa forma, tem-se a matriz HC de teste de
paridade do codificador da Figura 9.
A matriz encontrada é de “baixa densidade”, isto
é, a matriz apresenta mais ocorrências de “0” do
que de “1”, o que é interessante, pois implica um
algoritmo menos complexo.
Observa-se que a análise para detecção de erro
do código descrambler-scrambler não se resume
apenas aos 4 últimos bits da palavra e toda a
palavra-código é modificada.
Dessa forma, o grafo-fator associado ao código
descrambler-scrambler deverá ser a
representação de toda a palavra-código,
conforme Figura 10, que representa o lado do
codificador em que se tem 10 bits de variáveis e
10 bits de controle.
Figura 9 Matriz de teste de paridade do codificador
Figura 10 Fator de grafo do codificador
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
59
Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura
Tabela 2 Representação de estados do codificador
R1
R2
R3
R4
R5
R6
P1
0
R1
R1+R2
R1+R2+R3
R1+R2+R R2+R3+R R1+R3+R
3+R4
4+R5
4+R5+R6
R2+R4+R
5+R6+R7
R1+R3+R5+ R1+R2+R4+R6
R6+R7+R8
+R7+R8+R9
P2
0
0
R1
R1+R2
R1+R2+R R1+R2+R R2+R3+R
3
3+R4
4+R5
R1+R3+R
4+R5+R6
R2+R4+R5+ R1+R3+R5+R6
R6+R7
+R7+R8
P3
0
0
0
R1
R1+R2
R1+R2+R R1+R2+R
3
3+R4
R2+R3+R
4+R5
R1+R3+R4+ R2+R4+R5+R6
R5+R6
+R7
P4
0
0
0
0
R1
R1+R2+R
3
R1+R2+R
3+R4
R2+R3+R4+ R1+R3+R4+R5
R5
+R6
SB
R1
R1+R2
R1+R2+R3
R1+R2+R3+ R2+R3+R R1+R3+R R2+R4+R
R4
4+R5
4+R5+R6 5+R6+R7
R1+R3+R
5+R6+R7
+R8
R1+R2+R4+
R2+R3+R5+R7
R6+R7+R8+
+R8+R9+R10
R9
R1+R2
Os nós de variáveis estão conectados aos nós
de teste de paridade de controle se o elemento
(i,j) da matriz H for igual a 1. Esses nós de
controle são representados por quadrados e
correspondem às operações “ou-exclusivo”, de
acordo com o polinômio da sequência MLS
usada no código.
Da mesma forma que o codificador, o
decodificador do código descrambler-scrambler
pode ser representado como um grafo bipartido.
Seguindo o mesmo procedimento e assumindo
um registrador com a mesma configuração do
R7
R8
R9
R10
registrador do codificador, a Tabela 2 mostra as
relações envolvidas.
A última linha representa as relações entre os
bits de controle e os de variáveis (entrada do
decodificador). Tem-se, na Figura 11, a matriz
HD de teste de paridade do decodificador.
A Figura 12 ilustra o grafo-fator do decodificador.
É bem mais complexo do que o do codificador
devido à maior quantidade de “1” na matriz HD.
O método dos grafos-fatores pode ser usado
para analisar o comportamento estatístico dos
códigos. Análises de probabilidade de não
detecção ou não correção podem ser realizadas.
Figura 11 Matriz de teste de paridade do decodificador
Figura 12 Fator de grafo do decodificador
60
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura
O meio de transmissão, por exemplo, o canal de
sinalização da Plataforma Trópico ou Vectura,
pode ser caracterizado como um processo
estocástico, ao qual são associados:
• um alfabeto de entrada A = {a1, a2, a3,....,
an};
• um alfabeto de saída B = {b1, b2, b3,...., bn};
• uma distribuição de probabilidade P (A/B),
que relaciona os símbolos que saem do canal
em função dos símbolos que entram.
Pode-se classificar o canal como do tipo sem
memória, considerando que a distribuição de
probabilidades atribuídas para esse canal é
independente do histórico de símbolos
transmitidos, ou seja, as probabilidades
atribuídas ao canal, p (bj/ai), i=1,2,..n e j=1,2,...n,
são independentes dos símbolos anteriores e
posteriores transmitidos. Um canal simples, cujo
modelo é largamente empregado, é o canal
binário simétrico, descrito pelo diagrama abaixo.
Considerando a probabilidade de um símbolo da
entrada (0 ou 1) ser transmitido sem erro para a
saída e “1-s” é a probabilidade de o símbolo ser
transmitido com erro tem-se: p (0/0) =p (1/1) =s e
p (0/1) =p (1/0) =1-s.
Sendo um produto de fatores, essa probabilidade
condicional conjunta também poderá ser
representada por um grafo-fator e cada nó de
paridade representa a função probabilidade
condicional a priori p (bj/ai). Se os valores b
recebidos na saída do canal não são, de fato,
variáveis, mas sim constantes, cada nó de
paridade desse grafo apenas depende de uma
única variável ai. Dessa forma, podemos
representar o canal de sinalização de acordo
com a Figura 13, na qual cada relação de bit de
entrada para bit de saída tem associada uma
probabilidade P (b/a).
Agrupando o grafo-fator do codificador e do
decodificador em série com o fator de grafo do
canal binário simétrico e sem memória, obtém-se
o grafo-fator global do código descramblerscrambler da Figura 14.
Dessa forma, conforme proposto inicialmente, foi
exemplificado como pode ser obtido o modelo
global baseado em grafo do código descramblerscrambler. Em um trabalho futuro, poderá ser
avaliada a viabilidade do uso desse modelo na
análise probabilística da eficiência do código em
questão.
Conclusão e trabalhos futuros
Foram apresentados neste artigo o código
detector de erros descrambler-scrambler, sua
utilização
na
comunicação
interna
de
equipamentos Vectura e sua evolução para
código corretor de erros. Foi apresentado
também como esse código pode ser modelado
usando análise de grafos-fatores.
P(bi/ai)
ai
Figura 13 Fator de grafo do canal
Codificador
Canal
Decodificador
Figura 14 Fator de grafo global do código descrambler-scrambler
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
61
Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura
A grande simplicidade de implementação e a
possibilidade de ser usado em sistemas de
transmissão que envolvem mensagens de
diferentes
comprimentos
motivaram
o
desenvolvimento
desse
código
nos
equipamentos Trópico e Vectura, que incluem
centrais telefônicas, softswitches usados em
redes NGN e pontos de transferência e
tratamento de sinalização "intrusivos". Apesar de
serem projetados para não apresentar erros de
transmissão, esses equipamentos podem ser
submetidos a condições bastante adversas em
termos de ruídos elétricos, que podem levar a
probabilidades não nulas de erros de
transmissão. O uso comercial de equipamentos
com o recurso de detecção de erros tem se
mostrado eficiente nesses casos. Além disso, é
apresentado um código corretor de erros que,
baseado na mesma topologia descramblerscrambler, também pode ser usado em sistemas
com diferentes comprimentos de mensagens.
São destacadas características que diferenciam
esses códigos.
Como próximo passo, essa modelagem poderá
ser usada para fazer uma melhor avaliação do
desempenho desse código. Também poderá
realizar as implementações sugeridas de tabela
de identificação do ponto de ocorrência do erro
em função da palavra final de erro e de
aceleração do processo de decodificação usando
paralelização de máquinas de estado, como
sugerido em Valenzuela (1994).
Agradecimentos
A elaboração deste artigo foi feita dentro do
Projeto CONVERTE, realizado com apoio da
FINEP e recursos do FUNTTEL. Os autores
registram aqui seu reconhecimento a todos
aqueles envolvidos na viabilização deste projeto
e agradecem particularmente as revisões
realizadas por Angelo Antônio Mantovani e
Edson Porto Fassoni.
Referências
GOLOMB, S. W. Shift Register Sequences,
Editora Holden-Day, 1967.
MACKAY, D. J. C. Information Theory,
Inference, and Learning Algorithms Cambridge University Press 2003.
PETERSON, W.; WELDON E.
Correcting Codes, MIT Press, 1961.
J.
Error
VALENZUELA, V. Error Detecting code for a
Digital Transmission System Based on a
descrambler-scrambler
Configuration
–
Campinas, 1987, International Symposium on
Information and Coding Theory.
VALENZUELA, V. Serial to Parallel Conversion
of State Machines using Multi-Jump FlipFlops, Rio de Janeiro, 1994 International
Telecommunications Symposium.
XIANG, N. et al. Time-reversal maximum-length
sequence pairs for simultaneous acoustical dual
source measurements. Acoustical Society of
America Journal, Vol. 113, Issue 4, April 2003.
ZUFFO, J. A. Subsistemas Digitais e Circuitos
de Pulso, Editora USP, 1974.
Abstract
This article describes a new error correcting code based on a descrambler-scrambler structure. It
describes also its modeling in terms of factor graphs. This code corresponds to an evolution of the
descrambler-scrambler error detecting code previously developed for the Vectura equipment. For this
purpose the basic concepts are initially described as well as the motivation of these codes, particularly in
the Vectura equipment internal processor network. Furthermore, the error detecting code utilized in such
network and a new error correcting code are described. Finally, an analysis is made of the use of factor
graphs to model such code. With the presentation of the error detection and error correction codes, their
efficiency is analyzed using an approach based on the characteristics of the maximum length pseudo
random sequences.
Key words: Error detecting code. Error correcting error. Factor graphs. Descrambler-scrambler.
62
Cad. CPqD Tecnologia, Campinas, v. 5, n. 1, p. 49-62, jan./jun. 2009
Download

Código descrambler-scrambler detector e corretor de erros