10 - Códigos Corretores Automáticos de Erro

Documentos relacionados
Códigos de blocos lineares. Outubro de 2017

Códigos convolucionais

Fundamentos de Telecomunicações

EET-61 Introdução a Teoria da Informação

Aula 3- Codificação de Canal. October 18, 2017

Códigos de bloco. Luis Henrique Assumpção Lolis. 1 de novembro de Luis Henrique Assumpção Lolis Códigos de bloco 1

III-1 Códigos detetores e corretores de erros

III-1 Códigos detetores e corretores de erros

Fundamentos de Telecomunicações

PTC TEORIA DAS COMUNICAÇÕES II - 25/08/ PJEJ EXERCÍCIOS RESOLVIDOS

COM29008 LISTA DE EXERCÍCIOS #

Detecção e correcção de erros

III-1 Códigos detetores e corretores de erros

UFSM-CTISM. Comunicação de Dados Aula-17

GABARITO DA OITAVA LISTA DE EXERCÍCIOS DE PTC TEORIA DA INFORMAÇÃO E CODIFICAÇÃO

Estudo sobre decodificação iterativa usando códigos de treliça

Códigos cíclicos - Parte 2

TRANSMISSÃO DE DADOS PROTEGIDOS POR CÓDIGOS CORRETORES DE ERRO

Comunicações Móveis (2016/01) Prof. André Noll Barreto. Prova 2 (25/05/2016)

Teoria da Informação ( ) Exame de Recurso ( ) Resolução. (1 p), (1 p), p = H(0,4;0,4;0,2) = 1,522

III-1 Códigos detectores e correctores de erros

PCS Sistemas Digitais I. Códigos para Detecção e Correção de Erros. Prof. Dr. Marcos A. Simplicio Jr. versão: 3.0 (Jan/2016)

TE111 Comunicação Digital. Quais os Benefícios da Codificação de Canal? Evelio M. G. Fernández. 15 de outubro de 2018

Sistemas de Telecomunicações 1

1 O esquema de Alamouti: Diversidade na transmissão

3 Conceitos básicos de filtragem digital multitaxa

Mensagem descodificada. Mensagem recebida. c + e

5 CÓDIGOS CONVOLUCIONAIS

Teoria da Informação

TÉCNICAS DE CODIFICAÇÃO DE SINAIS

COMUNICAÇÃO DIGITAL INTRODUÇÃO À TEORIA DE INFORMAÇÃO

CODIFICAÇÃO PARA CONTROLO DE ERROS

Códigos de bloco. Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2

Teoria da Informação

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano.

Universidade de Pernambuco Escola Politécnica de Pernambuco

Teoria da Informação ( ) Exame de Recurso ( ) Resolução ( ) ( ) 2log2. log log

Códigos de Permutação para Compressão de Dados e Modulação 13. Codificador de fonte. Decodificador. Figura 1.1: Modelo de um sistema de comunicações.

Transformada de Discreta de Co senos DCT

Aula 22. Conversão Sigma-Delta (continuação)

Nível de Enlace. Nível de Enlace. Serviços. Serviços oferecidos os nível de rede

CÓDIGOS CORRETORES DE ERROS

Aula 27 - Álgebra II. x (m(x)), x 2 + x + (m(x)), x 2 + x (m(x)) operações deste corpo são as seguintes:

Erros e Protocolos de Recuperação Códigos detectores e correctores de erros.

3 Estimação e Compensação de movimento na codificação de vídeo

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede

Códigos cíclicos - Parte 1

1 Técnicas de Seleção de Antenas Transmissoras

Codificação de Huffman

Modulações de Espectro Espalhado

Corrigindo erros por meio de códigos lineares

Conceitos Básicos de Teleprocessamento e Comunicação de Dados

Comunicações Digitais Prof. André Noll Barreto. Prova /2 (01/12/2016)

Problemas de Fundamentos de Telecomunicações 1ª Parte: Codificação de Fonte e Codificação de Canal

Exercícios de Telecomunicações 2

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

Resolução de sistemas de equações lineares: Método de eliminação de Gauss - estratégias de pivotamento

SOMADORES E SUBTRATORES

TE111 Comunicação Digital

TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Análise e Processamento de Bio-Sinais. Mestrado Integrado em Engenharia Biomédica. Sinais e Sistemas. Licenciatura em Engenharia Física

Transmissão de impulsos em banda-base

Transformada Rápida de Fourier (FFT)

O objeto fundamental deste curso são as funções de uma variável real. As funções surgem quando uma quantidade depende de outra.

TP537 Transmissão Digital 1ª Avaliação 27/10/ :00h Prof. Dayan Adionel Guimarães. Aluno(a):

Redes de Computadores. Prof. André Y. Kusumoto

SÉRIE DE PROBLEMAS: CIRCUITOS SEQUENCIAIS SÍNCRONOS

Marina Andretta. 10 de outubro de Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis.

Método prático para extrair uma base de um conjunto de geradores de um subespaço de R n

HD disco rígido CD drive de compact disc Cache memória cache RAM - memória principal UCP unidade central de processamento

Camada de Enlace de Dados

Codificação de Canal

FACULDADE DE TALENTOS HUMANOS DEPARTAMENTO DE ENGENHARIA ELÉTRICA PROCEDIMENTOS EXPERIMENTAIS DE COMUNICAÇÃO DIGITAL II PARA TELECOMUNICAÇÃO

SUMÁRIO FUNDAMENTOS E VISÃO GERAL 19 CAPÍTULO 1 PROCESSOS ALEATÓRIOS 49

Transcrição:

- Códigos Corretores Automáticos de Erro. - Introdução O sistema mostrado na figura. ilustra a transmissão e a recepção de sinais que utilizam a codificação e a decodificação para aumentar a qualidade do envio de dados. Canal discreto Codificador do canal Modulador Forma de onda do canal Detector Decodificador do canal Fonte (discreta) Ruído Usuário Figura. Comunicação digital com codificação das seqüências transmitidas. O codificador do canal no transmissor recebe os bits contendo a mensagem e adiciona redundância de acordo com uma regra pré-estabelecida, a codificação do código corretor. Na decodificação, a redundância é eplorada de forma a decidir quais bits de mensagem foram de fato transmitidos. A grande vantagem da codificação e decodificação do canal é minimizar o efeito do ruído, ou seja, diminuir o número de erros entre a entrada do codificador (a fonte de dados) e a saída do decodificador (entrega ao usuário). Para um dado esquema de modulação, a adição de redundância nas mensagens codificadas requer aumento da largura de banda. Além do mais, a utilização de códigos corretores de erro torna o sistema mais compleo, principalmente nas operações de decodificação no receptor. Assim, o desafio ao utilizar códigos corretores de erro é atingir um de erro aceitável levando em consideração fatores como a largura de banda e a compleidade do sistema. Quando temos como interesse principal a eficiência da largura de banda, o método mais efetivo de implementarmos a codificação é combinando-a com a modulação como mostrado na Figura.. 83

Codificador/Modulador Forma de onda do canal Detector/Decodificador Fonte (discreta) Ruído Usuário Figura. Modulação e codificação combinadas. Eistem diversos códigos corretores de erros classificados em códigos de bloco e códigos convolucionais. A característica determinante desta classificação é a presença ou não de memória nos codificadores dos dois tipos de códigos.. Codificação Linear em Blocos ( Linear Block Codes ) O codificador recebe blocos de k bits e adiciona a estes blocos de símbolos, n-k bits, formando então um novo código contendo n bits. Dessa forma geramos uma codificação linear em blocos (n, k), n > k. A fonte produz símbolos à taa de R S bit rate e o codificador, à taa de R n k = RS bit rate, a qual é chamada de taa do canal. Formação do Código Linear (n, k) Seja m, m, m,, m k- um bloco de k bits arbitrários de informação, ou seja, podemos ter k possíveis mensagens de k símbolos. Seja b, b,, b n-k- bits de paridade para formação do código de n bits totais. Arrumemos estes bits da seguinte forma: b b b b n-k- m m m m k- (.) formando a palavra código ou seja:... n-. i b i = m i =,,, n - k - i = n - k, n - k +, L, n - i+ k - n (.) 84

Os n-k bits de paridade são somas lineares dos k bits de informação dado por: b i = p i m p i m p i m p i.k- m k- (.3) i =,,,, n-k- soma módulo onde p ij se bi depend de m = se não depende Definindo em termos de vetores, tem-se: j m = [ m, m,..., m ] k - (.4) b = [ b, b,, b ] n - k - (.5) onde = [,,..., ] m, b e são vetores linhas. n - (.6) onde Pode-se então representar b como combinação linear de m como: b = m P (.7) coeficient e dosbits p p P = M p,k- b p p p M,k- b L L L L p p p n-k-, n-k-, M n-k-,k- b n-k- m m M m k- (.8) 85

Logo: = b, m (.9) [ m P, m] m[ P, Ik ] = = (.) onde P é uma matriz k por (n-k) I = k... : :......... matriz unitária de ordem k (.) Define-se a matriz geradora k n, como: ou seja, = [ P, ] G = I k (.) m. G m tem k possíveis mensagens é uma palavra código - Propriedade de fechamento A soma de duas palavras código é outra palavra código j m G m j G m m j G i i i = = (.3) 86

m i m j representa uma nova mensagem Definição: Matriz de check de paridade, H H [ I, P ] (n - k) n = n-k (.4) P é a matriz transporta de P e I n-k é uma matri unitária de ordem n-k. em-se que: P é matriz j, n-k; P é n-k k H G = G = n-k,n-k P [ I, P ] n-k I [ P, ] k, n-k Ik n-k,k H G = I P + P k n-k,k I k,k H G = P + P = matriz nula = n-k,k H G = (.5) Equivalentemente, G H = k,n-k. Como H m G =, tem-se H = m G H = =,n-k (.6) Síndrome: s A matriz G é usada no transmissor para gerar o vetor que é a palavra código transmitida. A matriz H é usada no receptor para decodificar o sinal recebido da seguinte 87

forma: suponha que recebamos (vetor erro) g que é igual ao (palavra código) mais um erro e y = e e = [ e e L e ] n (.7) (.8) onde e i se eiste um erro na i - ésima posição = se não eiste erro A síndrome s é calculada como: s = y. H = + e. H = H e H (.9) s = e H (.) Propriedades da síndrome a.) s = e. H s : A síndrome só depende do vetor erro. a.) Para um determinado erro fio, mesma e = e e, todas as k palavras códigos, a síndrome é a i =,, i L, k - (.) 88

e H = e. H i H = e H (.) Os possíveis vetores e i, i =,,,, k- que produzem a mesma síndrome, são chamados de coset. Como tem n elementos, teremos n palavras possíveis, ou seja, n k = n-k possíveis cosets. 3 a.) A síndrome dos erros s é a soma de todas as colunas da matriz H correspondendo às posições H = h s = e H h... h n = [ e e e ] n h h h n (.3) (.4) e = n s ei hi i = h i é a i-ésima linha da matriz H. (.5) 4 a.) Utilizando-se a síndrome s, um código linear (n, k) pode corrigir até t erros na palavra código, desde que satisfaça ao limite de Hamming, dado por n-k t i= C i n (.6) 89

Nesse limite, quando há igualdade, o código é chamado de perfeito. Para se mostrar em limite, vê-se que eistem n-k bits redundantes. Logo esses bits podem apontar até n-k erros (síndromes). Como nosso código tem n bits e queremos corrigir até t erros, ou seja, para se identificar que não há erro precisamos de C n = palavra + identificar erro precisa-se de de C n = n palavras + identificar erros precisa-se n(-) C n = palavras, etc... até identificar t erros, precisamos C n. Logo: C t nk n + C n +... + C n (.7) Das propriedades de s, segue-se o seguinte algoritmo de decodificação:. Do sinal recebido onde y (palavra código), calcula-se a síndrome s, s = y H (.8). Para um determinado erro fio, mesma e, todas as k palavras códigos, a síndrome é a e = e i =,, i L, k - e H = e. H i H = e H 9

Os possíveis vetores e i, i =,,,, k- que produzem a mesma síndrome, são chamados de coset. Como tem n elementos, teremos n palavras possíveis, ou seja, n k = n-k possíveis cosets. 3. A síndrome dos erros s é a soma de todas as colunas da matriz H correspondendo às posições H = h h L hn s = e H = [ e e L e ] n h h M hn = n s ei hi i = e h i é a i-ésima linha da matriz H. 4 a.) Utilizando-se a síndrome s, um código linear (n, k) pode corrigir até t erros na palavra código, desde que satisfaça ao limite de Hamming, dado por 9

n-k t i= C i n Nesse limite, quando há igualdade, o código é chamado de perfeito. Para se mostrar em limite, vê-se que eistem n-k bits redundantes. Logo esses bits podem apontar até n-k erros (síndromes). Como nosso código tem n bits e queremos corrigir até t erros, ou seja, para se identificar que não há erro precisamos de C n = palavra + identificar erro precisa-se de de C n = n palavras + identificar erros precisa-se n(-) C n = palavras, etc... até identificar t erros, precisamos C n. Logo: C t nk n + Cn + L + Cn Das propriedades de s, segue-se o seguinte algoritmo de decodificação:. Do sinal recebido y (palavra código), calcula-se a síndrome s; s = y H. Da síndrome síndrome. s, escolhe-se o erro e que tem a maior probabilidade de produzir tal 3. Como y = ˆ e, onde ˆ é a palavra código estimada (estimativa da que foi transmitida). 9

Logo a saída será ˆ = y e () Considerações sobre distância mínima A distância entre duas palavras códigos posição (bits) diferentes entre posições (no caso n posições). e y. É claro que e y, d, y, é dada pelo número de e y têm o mesmo número de Outra definição: peso de Hamming w( ) : é igual ao número de elementos diferentes de zero. Equivalentemente, w() = d(, ). Eemplo.: [ ] y [ ] = = d(, y) = 5 w(y) = d(y, ) = 4 w() = d(, ) = 3 = [ ] ] Dada todas as possíveis palavras códigos, a distância mínima é a menor distância obtida entre quaisquer duas palavras códigos. d min = w i - j = w i j (.9) 93

Como, pela propriedade de fechamento, para se achar d min basta achar a menor w i j é outra palavra código, então i =,, L desde que i. Como H =, segue que, tem que ter S em posições tais que as linhas de H somam zero. Como o número de S significa a distância de Hamming, logo a distância mínima de um código linear (n, k) é o menor número de linhas de H que somem zero. t +, isto é, Se desejamos corrigir até t erros, a distância mínima tem que ser maior ou igual a d min t = (.3) Eemplo.: Seja as possíveis palavras códigos e ( ) ( = = ) d, = 3 Se recebermos y ( ) ou y ( ) = = emos: d, y = d, y = 3 94

95 y, d 3 y, d = = Se recebermos: ) ( y ) ( y ) ( y 8 4 3 = = = ) ( y ) ( y ) ( y 8 7 6 = = = emos: y, d y, d y, d 5 4 3 = = = y, d y, d y, d 5 3 3 = = = y, d y, d y, d 5 4 3 = = = y, d y, d y, d 5 7 3 = = = Vemos então que a distância tem muito maior probabilidade de acontecimento do que a distância. Então podemos corrigir até um erro com uma determinada probabilidade. Para isso, a distância mínima foi 3. Se o receptor obtém um valor de y, conforme mostrado na figura.3, qual o valor de a ser escolhido?

Figura.3 Possibilidades de duas palavras códigos i e j e uma palavra código y recebida. No terceiro caso, o y recebido tem distância idêntica para e. Qual escolher? i j onde t é um inteiro. t = ( d -) min (.3) O conjunto completo de palavras-código, conhecido também simplesmente como o código, é gerado de acordo com a equação de definição. Neste código teremos k seqüências de mensagem possíveis gerando que temos disponíveis cada elemento do conjunto de k palavras possíveis. É importante notar n palavras-código num bloco de n bits, mas a questão é que k mensagens só pode gerar k palavras. 96

k CODIFICA k Conjunto de seqüências possíveis para mensagens de k bits = m G Conjunto de palavras associadas às mensagens Figura.4 Relação de uma mensagem de informação para uma palavra codificada. Então, na codificação, ou seja, antes dos bits serem transmitidos pelo canal, temos k seqüências de bits possíveis de serem enviadas. Será o erro na transmissão que fará com que essas seqüências não pertençam mais a esse grupo e ficará a cargo do receptor recuperar a mensagem devolvendo-a ao conjunto de k palavras, com ou sem erro. A relação, obviamente, deve ser de um para um: uma palavra corresponde a somente uma mensagem. n k k Codificação realizada. ransmissão pelo canal Conjunto de todas as seqüências possíveis para blocos de n bits ENVIO NO CANAL Eemplo: k n k Os erros que ocorrem no envio fazem palavras codificadas irem para fora do conjunto mapeado Conjunto de seqüências qu correspondem a uma mens transmitida Figura.5 Como ocorre o erro na perspectiva dos códigos de bloco lineares. 97

98 Eemplo.3: Código de Hamming É uma família de códigos tal que: comprimento de código: n = m - número de bits de mensagem: k = n m número de bits de paridade: m = n k onde m 3. O código de Hamming com n = 7 e k = 4, correspondendo a m = 3 é um código linear (7, 4). A matriz geradora G é dada por: (.3) A matriz H correspondente é: (.33) I k P G = k - I n P H =

Com k = 4 temos 4 = 6 possíveis palavras códigos abela. Mensagens e palavras códigos Mensagem Palavra Peso Mensagem Palavra código Peso código 3 3 4 4 3 3 4 3 4 4 3 3 4 4 7 d min = 3, logo corrige até um erro abela. Síndromes relacionadas aos códigos da tabela. ipo de erro Padrão de erro Síndrome correspondente sem erro erro no. bit erro no. bit erro no 3. bit erro no 4. bit erro no 5. bit erro no 6. bit erro no 7. bit Como n - k = 3 temos 3 possíveis síndromes 99

.3 - Códigos Cíclicos Os códigos ciclicos são uma subclasse dos códigos lineares tal que apresentam uma propriedade cíclica da forma. Seja (... n- ) uma palavra código de um código linear (n, k), então ( n-,,,, n- ) também é uma palavra código. Da mesma forma serão palavras códigos ( n-, n-,,,, n-3 ) ( n-3, n-, n-,,,,, n-4 ), etc. etc., ( ). Estes códigos sugerem o tratamento por polinomios de grau (n-), da forma: (D) = + D + D + + n- D n- onde D é um real qualquer. (D) é chamado de polinômio de palavra código. (D) = a + a b + a D (D) = b + b D + b D (D) (D) = a b + (a b )D + (a b ) D (D). (D) = a.b + a.b D + a.b D + + a b D 4 Se (D) tem grau n-, então (D) = + D + D + + n- D n- D(D) = D + D + D 3 + + n- D n = n- + D + D + + n- D n- Propriedade cíclica: multiplicação por D cria um deslocamento no tempo de bit, com a restrição que D n = para que n- D n = n-, logo será o primeiro elemento do polinômio (elemento independente de potência de D). (D) = + D + D + 3 D 3 D(D) módulo (D n -) = D + D + D 3 + 3 D 4 mod(d 4 -) = D 4 + D 3 + D + D D 4 - D 4 + D 3 + D + D + 3

Logo: D(D) mod(d 4 -) = 3 + D + D + D 3 ambém, D (D) mod(d 4 -) = + 3 D + D + D 3 porque: 3 D 5 + D 4 + D 3 + D D 4 - - 3 D 5 + 3 D 3 D + D 4 + D 3 + D + 3 D - D 4 + D 3 + D + 3 D +.3. Polinômio gerador O polinômio palavra código () de grau n- de um código linear (n,k), contém um polinômio de grau mínimo (n-k) como um de seus fatores. Este polinômio mínimo é simbolizado como g(d) e chamado de polinômio gerador. Este polinômio tem grau igual ao número de bits de paridade, e é equivalente a matriz geradora G. Propriedades de g(d): ) O polinômio gerador de um código cíclico (n, k) é o único polinômio palavra código de grau n-k Para se provar, assume-se que possa eistir outro polinômio de grau n-k. Somando-se estes dois criaríamos outros polinômios que também seria palavra código. Porém a soma dos polinômios, criaria um outro de grau menor. Logo, o polinômio g(d) é único. Daí, vemos que para um polinômio ter ordem n-k, ele terá que ter obrigatoriamente o termo independente de D e o termo em D n-k, ou seja:

g(d) = + n-k- n n-k gi D + D i = (.34) onde g i assume valores ou, a serem determinados. ) Qualquer múltiplo de g(d) é um polinômio palavra código (D) = a(d) g(d) mod(d n -) onde a(d) é um polinômio qualquer. Pela propriedade cíclica e pela propriedade de fechamento, vemos que a(d) g(d) tem grau n- e que é palavra código, então (D) = g(d).a(d). A sequência de informação é dada por (m m m k- ) e a palavra código (D) conterá mais n-k bits de paridade formando então a seguinte sequência b b... b n-k- m m... mk- n-k bits de paridade k bits de informação ou seja, (D) = b + b D + + m k- D n- Com m(d) = m + m D + + m k- D k- tem-se que m(d). D n-k = m D n-k + + m k- D n- Dividindo-se m(d) D n-k po g(d), tem-se: D -k m(d) g(d) n + = a(d) b(d) g(d) onde a(d) é quociente e b(d), o resto da divisão acima. Ou ainda: D n-k m(d) = a(d). g(d) + b(d) onde a(d) = a + a D = + a k- D k- já que a(d) multiplicado por g(d) (que tem ordem n-k), terá que ser de ordem n-.

Como b(d) é o resto da divisão, poderá ter no máimo grau n-k-, b(d) = b + b D + b D +... + b D n-k- n-k- Podemos escrever também: b(d) + D n-k m(d) = a(d). g(d) logo (D) = b(d) +D n-k m(d). Em resumo, eistem três procedimentos para se obter uma estrutura sistemática de um código cíclico linear (n,k): a. Multiplique m(d) por D n-k b. Divida m(d) D n-k por g(d), obtendo b(d) c. Some b(d) a m(d) D n-k obtendo o polinômio palavra código (D). 7.3. Polinômio de cheque de paridade h(d) Da relação H G = ou G H =, tem-se: h(d) g(d) mod(d n -) = já que g(d) é equivalente a G e h(d) é equivalente a H, matrizes geradoras e de cheque de paridade, respectivamente. Da propriedade, qualquer múltiplo de g(d) de um código cíclico (n, k) é um polinômio palavra código. Então eiste a seguinte relação: h(d) (D) mod(d n -) = propriedade: Como em aritmética módulo, -D n, é idêntico a +D n, deduz-se a seguinte 3

3 a. propriedade: Os polinômios g(d) e h(d) são fatores do polinômio +D n, h(d) g(d) = + D n (.35) Esta propriedade é quem fornece a base para obtenção de g(d) e h(d). Se n é grande, haverão diversos fatores de +D n de grau n-k. odos os fatores de +D n de grau n-k podem ser usados como funções geradoras g(d) de um código cíclico linear (n,k). O mesmo se aplica a h(d) de grau k. Eemplo.4: Revisão dos códigos de Hamming Suponha que desejamos gerar um código cíclico (7,4). n=7, k=4, n-k=3. Fatorando +D 7 em polinômios irredutíveis: + D 7 = (+D) ( + D + D 3 ) ( + D + D 3 ) O polinômio é dito irredutível quando é fatorado em polinômios cujos coeficientes são binários ( ou ). Um polinômio irredutível é dito primitivo de ordem m quando o menor n positivo inteiro para o qual este polinômio divide +D m -. Neste caso, +D +D 3 e +D+D 3 são primitivos. 4

5 Usemos, neste eemplo, g(d) = + D + D 3 Logo h(d) = (+D) (+D +D 3 ) = + D + D + D 4 Da propriedade, g(d) e múltiplos de g(d) representam palavras código, logo g(d) = + D + D 3 Dg(D) = D + D + D 4 Linhas de G que é k n D g(d) = D + D 3 + D 5 D 3 g(d) = D 3 + D 4 + D 6 Então: = G Colocando-se as quatro últimas colunas como matriz identidade: Para se achar H tira-se a matriz P de G e como H = [I n-k, P ], tem-se: = G

H =.3.5 Codificador/Decodificador de Códigos Cíclicos A implementação desses códigos pode ser feita através de filtros FIR (Finite Impulse Response) não recursivos. síndrome): As figuras.5 e.6 mostram o codificador e o decodificador (calculador de Message bits Figura.5 Codificador de código bor bloco usando o polinômio g(d) = + g D + g D +... + g n-k- D n-k- + g n-k D n-k Code word 6

Figura.6 Cálculo da síndrome do código por bloco usando g(d) = + g D + g D +... + g n-k- D n-k- + g n-k D n-k b memória para armazenar bit que é enviado para frente por controle do clock (não mostrado na figura) Memória = shift register = flip-flop = delay element g i - conecção direta = multplicadores - sem conecção somador módulo + D n. Os valores de g i são tirados do polinômio g(d) = + g D + g D + + g n-k- D n-k- 7

Figura.7 Decodificador (calculador da síndrome) de g(d) = + D + D 3 Observação: Função do gate é deiar ou não os bits passarem Eemplo.5: Codificador para o código (7,4) g(d) = +D+D Figura.8 - Codificador do eemplo.5 Eemplo 4: Codificador para o código (7,4) g(d) = +D+D 8

. Suponha que os bits de mensagem sejam. Então a palavra código deverá ser Vejamos como funciona. Os bits entram da direita para a esquerda e a tabela abaio mostra as entradas e o conteúdo de cada registro (numerador em ordem crescente da esquerda para a direita). abela.3 Deslocamento (Shift) Entrada Conteúdo dos registros Saída 3 4 9

.4 Códigos Convolucionais.4. - Introdução Nos códigos lineares por blocos, o osificador espera k bits e gera, a partir destes k bits, uma palavra código de n bits (n > k). Eistem aplicações, onde os bits não chegam em blocos e dessa forma há necessidade de se ter buffers e esses buffers podem ser indesejáveis tendo em vista o formato e/ou rapidez de transmissão. Nestes casos, eiste uma outra maneira de se fazer códigos controladores de erro. ais códigos são chamados de códigos convolucionais. O codificador convolucional opera em cada bit (ou bits) entrante e gera a palavra código a partir desse bit. O codificador de um código convolucional com taa n medida em bits por símbolo, é um filtro digital que consiste de M-memórias (M shift registers) com n conecções de somadores módulo-, e um multipleador que serializa as n saídas dos somadores. Uma mensagem de L bits produz uma saída codificada de n(l+m) bits. A taa de código (code rate) é r n bits/símbolo. r n L = bits/símbolo. Como L >> M tem-se ( L + n) Eiste um parâmetro chamado de comprimento de restrição (constraint lenght) dos códigos convolucionais epresso em termos dos bits de mensagens. É definido como o número de deslocamento (shifts) sobre o qual sem bit pode influenciar os códigos de saída. Num codificador com M estágios de saída. Num (shift-registers), K = M+ shifts são necessários para bit entrar e sair do codificador. Então, o comprimento de restrição é igual a K. As Figuras.9 e. mostram dois codificadores para códigos convolucionais.

oda a teoria de códigos convolucionais mostrada nesse item usa como base o codificador da figura.9. Figura.9 Constante de restrição k = 3; taa = Figura. Constante de restrição k =, taa = 3

.4. Método do domínio do tempo Códigos convolucionais de taa n têm comportamento no domínio do tempo definido em termos de um conjunto de n amostras da respista impulsional. No caso da figura 9 tem-se um filtro FIR de comprimento n = 3 amostras. Denotamos as amostras da saída do braço superior de () () () (), g, g, gm g L. () () () (), g, g, gm () () Nesse caso tem-se: g [,,] g = [,,] g L e a do braço inferior de =. Esses vetores são chamados de sequências geradoras do código. Seja uma sequência de mensagem que entra no codificador. O codificador gera duas sequências de saída (na figura 9 chamadas por () e teremos: ( ). A saída será a convolução da entrada com a resposta impulsional. Logo ( ) = = m m, m Sendo, teremos: [ m, m, m ] m =, () () () ( [,,, ] ) () () () = [,,,,. ] [, ] M i () () i = g m i- l = g * m i = () l = M l ( ) ( ) i = gl m i- l = g * m i = l = () Após a convolução as duas sequências são combinadas pelo multipleador de saída dando: =,,,,,, () () () () () () [,,, ] i

sequência esta que é transmitida através do canal de comunicação. Eemplo: Na figura.9, se a sequência de entrada por (m m m m 3 m 4 ) = (), determine () = g () = g ( ), ( ) e. () () * m * m = [,,,,,].4.3 () Método do domínio da frequência O processo de codificação segundo os códigos convolucionais é uma filtragem linear cujo filtro tem resposta finita ao impulso (Finite Impulse Response: FIR). A convolução da entrada com a resposta impulsional é uma multiplicação no domínio da frequência para os filtros lineares e invariantes ao deslocamento, o que é o caso dos codificadores convolucionais (domínio é o campo dos binários e ). Definam-se os polinômios geradores como sendo: () () () () g (D) = g + g D + g D + L + g () M D M e () () () () g (D) = g + g D + g D + L + g () M D M onde g () i e g () i resposta impulsional do filtro. i =, L, M foram definidos anteriormente, como as amostras da 3

digitais. A variável D i tem o mesmo significado que o atraso Z -i na representação dos filtros O coeficiente g i de D i, como nos filtros digitais, pode ser escrito diretamente da estrutura do filtro (codificador convolucional) sendo g i = se não eiste coneão do atraso (shift-register) e ao somador módulo- e g i =, se eistir tal coneão. Defina-se o polinômio da mensagem como sendo m(d) = m + m D + m D + m k D k. Dessa forma, podemos escrever que () (D) = g () (D). m(d) () (D) = g () (D). m(d) e daí podemos saber os coeficientes de () () e e. Eemplo 8 (pág. 398) No codificador da figura 8.(a), entra a mensagem m = [ ], determine () (), e. Então: m(d) = + D 3 + D 4 () () [ ] g (D) = + D D g = + 4

() () [ ] g (D) = D g = + () 3 4 (D) = (+ D + D ) (+ D + D ) = + D + D + D + D 3 6 () 3 4 (D) = (+ D + D ) (+ D ) = + D + D + D + D + D 3 4 5 6 Logo () = () [ ] = [ ] = [,,,,,,].4.4 Arvore de código (code tree) A árvore de códigos é feita supondo-se que a cada instante entra o dígito (convencionado como sendo os ramos para cima ou superiores) ou entra o dígito (convencionado como sendo os ramos para baio ou inferiores). Para o codificador da figura.9, obtem-se a seguinte árvore de códigos: 5

A árvore de códigos é feita supondo-se que a cada instante ou entra o dígito (convencionado como representando a escolha dos ramos para cima ou superiores) ou entra o dígito (convencionado como representando a escolha dos ramos para baio ou inferiores). Para o codificador da figura 8.(a), obtém-se a árvore de códigod ao lado. Eemplo: Eemplo: Se a entrada for m = [ ], a saída, de acordo com a árvore será: = [,,,]. Verifica-se que a árvore é repetitiva após o terceiro ramo. Isso porque o filtro da figura 9 tem três amostras como resposta impulsional. Após o terceiro ramo, denota-se os nós de a, b, c e d. Esses nós são os possíveis estados do processo aleatório que será desenvolvido pela possível entrada aleatória. Figura. Árvore de códigos para o codificador da figura.9. 6

.4.5 reliça (trellis) Do diagrama anterior (árvore de códigos), é possível obter-se outra forma mais compacta de representar a árvore, em função dos possíveis estados do sistema. Para o codificador da figura.9, a treliça fica conforme figura a seguir, onde a linha sólida representa a entrada do dígito ; e uma linha pontilhada representa a entrada do dígito. Figura. reliça para o código convolucional da figura.9 o Dessa treliça, vê-se que se a entrada (mensagem) for a sequência, a sequência de saída será: (,,,, ), o que concorda com os resultados anteriores. o A treliça é mais instrutiva do que a árvore, porque traz eplicitamente o fato de que o codificador convolucional é uma máquina de estado finito. Define-se estado do codificador como sendo os mais recentes (k-) bits de mensagem movidos para dentro dos shift registers. 7

A porção da treliça entre j e j + (j ) é mostrada na figura.3 a a b b c c d d Figura.3 Porção da treliça da Figura. abela.3 Estados do codificador da figura. Estado Descrição Binária a b c d 8

.4.5 Decodificação por Máima Probabilidade (Máima Verossimilhança) dos Códigos Con6olucionais A mensagem m entra no codificador e produz o vetor de saída. ransmite-se e o receptor recebe y (que deve ser bem parecido com introduzidos no canal de comunicações pelo ruído)., a menos dos erros mˆ. Dado y, o receptor tem que fazer uma estimativa de m, o qual é simbolizada por Essa estimativa é feita pela função de máima probabilidade, ou melhor, o logaritmo dessa função. Dentre todas, a que for máima, será a escolhida. Suponha agora, um canal simétrico e binário. -p p p -p Figura.4 Representação de um canal simétrico binário 9

Para bit: p ( y / ) i i p se yi i = - p se yi = i (.35) Para N bits, a função de probabilidade será: N p y / = i= p ( y / ) i i (.36) log Então: p y / = ln p y / = c ( ) e ln p = N i= y i / i (.37) Suponha que o código y e estão em desacordo em d posições (funções incorretas) e tenha N-d corretas. d é chamado de distância de Hamming. Logo: ln p y / = d ln p + ( N - d) ln( - p) p = d ln + N ln(- p) - p (.38) A máima probabilidade será dada quando praticamente só depende de d. p ln - p d for máima, que

Regra para decodificação de um código convolucional num canal simétrico binário: Escolha a estimativa de ˆ que minimiza a distância de Hamming. será: min[d]. Pois p é em geral bem menor que, logo p d ln - p má com p <<.4.7 Algoritmo de Viterbi - hard decision A equivalência entre a máima probabilidade e a decodificação de mínima distância para um canal BSC (canal simétrico binário) implica que devemos decodificar o código convolucional, escolhendo o caminho na árvore de códigos que difere da sequência recebida no menor número de posições. Com a árvore de códigos é equivalente à treliça, podemos fazer o mesmo pelos caminhos da treliça que produzem a menor distância de Hamming. Isto é eatamente o que o algoritmo de Viterbi faz. Algoritmo: Passo : Começando no nível j = M compute a métrica (distância para o caminho único na entrada do codificador. Armazene o caminho (sobrevivente) e sua métrica para cada estudo. Passo : Incrementando j de, compute a métrica para todos os caminhos entrando em cada estado, somando a métrica dos braços entrantes com a métrica dos sobreviventes dos tempos anteriores. Para cada estado, identifique o caminho com a menor métrica, como o sobrevivente do passo. Armazene o sobrevivente e sua métrica.

Passo 3: Sej j < L + M volte ao passo ou pare. Eemplo.5 Suponha que a sequência recebida seja... e a sequência enviada tenha sido.... Ou seja, eistem dois erros na sequência recebida, devido a ruído no canal. Este erro duplo é corrigido com o algoritmo de Viterbi, onde o codificador é o da figura.9 Figura.5 Decodificação de Viterbi do eemplo.5 Então, decodificando como:,,,,.

Eemplo.6 Envia-se... (tudo zero) e recebe-se (...), ou seja, temos 3 erros. Usando-se o algoritmo de Viterbi (para o codificador da figura 9) obtém-se: Figura.6 Decodificação de Viterbi do eemplo.6 O algoritmo falha na decodificação da sequência recebida contendo 3 erros. 3

4

5

Apêndice B 6

7

8

9

3

3

3

33

34

35