• Nenhum resultado encontrado

TV Analógica e Digital - 10 - Introdução a Codificação de Canal

N/A
N/A
Protected

Academic year: 2021

Share "TV Analógica e Digital - 10 - Introdução a Codificação de Canal"

Copied!
88
0
0

Texto

(1)

Universidade de Pernambuco

Escola Politécnica de Pernambuco

TV Analógica e Digital

(2)

Motivação

• Crescente demanda por eficientes e confiáveis

sistemas de transmissão de dados digital e sistemas de

armazenagem (Uma das principais preocupações do

pesquisador é o controle de erros para que a

reprodução segura de dados possa ser obtida).

• Desenvolvimentos recentes têm contribuído para

alcançar a confiabilidade necessária para sistemas

digitais de alta velocidade (utilização de códigos de

controlo de erros tornou-se parte integrante da

concepção dos modernos sistemas de comunicação

digitais e computadores).

2

Introdução

(3)

Motivação

Introdução

Fonte de Informação Codificador de Fonte Seqüência de Informação (bits) Codificador de Canal Palavra-código Modulador Demodulador RUÍDO Decodificador de Fonte Decodificador de Canal Palavra recebida Seqüência estimada

(4)

Motivação

• Existem dois tipos diferentes de códigos:

– códigos de bloco

– códigos convolucionais.

• Código de Bloco

• O codificador de um código de bloco divide as seqüências de informações em blocos de mensagem de k bits de informação cada. Um blocos de

mensagem é representada por

chamada mensagem. Há um total de 2k possíveis mensagens diferentes.

O codificador transforma cada mensagem u independente num

de símbolos discretos chamado de palavra-código.

4

Introdução

(5)

Motivação

• Código de Bloco

• Um exemplo de um código de bloco binário com k = 4 e n = 7 é mostrado na tabela ao lado.

Introdução

(6)

Motivação

A relação R = k/n é chamado de taxa do código, e pode ser interpretado como o número de bits de informação que entram no codificador por símbolo transmitido.

Considerando que os n símbolos de saída depende somente da palavra-código correspondente a k mensagens de entrada, o codificador é sem

memória (memory-less), e podem ser implementados por uma

combinações de circuitos lógicos.

• Código Convolucional

Também aceita k blocos de bits de seqüências de informação u e produz uma seqüência codificado (palavra-código) n blocos de símbolos. No entanto, cada bloco codificado depende não apenas blocos de mensagem de k bits correspondente, mas também de m blocos mensagem anteriores. Assim, o codificador tem uma memória de ordem m.

6

Introdução

(7)

Códigos de Bloco Lineares

– Considerações:

• Assume-se que a saída de uma fonte de informação é uma

seqüência de dígitos binários “0” ou “1”.

Introdução a Códigos de Bloco

Fonte de Informação

(“0” ou “1”)

– Definição:

• A seqüência de informação é segmentada em blocos de

mensagens de comprimento fixo (determinado).

(8)

Códigos de Bloco Lineares

• Existem um total de 2k mensagens distintas.

8

Introdução a Códigos de Bloco

– Definição:

• O codificador, de acordo com certas regras, transforma cada mensagem de entrada u em uma n-upla binária v com

n > k.

• Essa n-upla binária v é chamada de palavra-código (ou

vetor código) da mensagem u, correspondendo a 2k

mensagens possíveis, existem 2k palavras-código.

Codificador

v

u

Esse conjunto de 2

k

palavras-código é chamado

(9)

Códigos de Bloco Lineares

• Para um código de bloco ser prático, as 2k palavras-código

precisam ser distintas. Portanto, deve haver uma

correspondência única entre a mensagem u e a palavra-código v.

Introdução a Códigos de Bloco

• Para um código de bloco com 2k palavras-código e

comprimento n, a menos que haja uma estrutura especial, o aparato de codificação seria complexo para um k e n grande,

visto que é preciso armazenar 2k palavras- código de

comprimento n em um dicionário.

Codificador

v

(10)

Códigos de Bloco Lineares

10

Introdução a Códigos de Bloco

– Definição 1.1:

Código de Bloco Linear

• Um código de comprimento n e 2k palavras-código é chamado

de código linear (n, k) se e somente se suas 2k

palavras-código formam um subespaço de k dimensões de um vetor espaço de todas as n -uplas sobre o corpo GF(2).

• De fato, um código de bloco binário é linear se e somente se o adição módulo 2 de duas palavra-código é também uma palavra-código.

Codificador

v

(11)

Códigos de Bloco Lineares

Introdução a Códigos de Bloco

• O código de bloco dado na Tabela 1.1 é um código linear (7, 4). Qualquer um pode, facilmente, checar que a adição

de quaisquer duas palavras-código

nesse código é também uma palavra-código.

(12)

Códigos de Bloco Lineares

12

Matriz Geradora (G)

• Como um código linear (n, k) C é um subespaço de k dimensões

de um vetor espaço Vn de todas as n-uplas binárias, é possível

encontrar k palavras-código linearmente independente,

em C tal que cada palavra-código v em C é uma combinação linear de todas essas k palavra-código, isto é

em que ui= 0 ou 1 para 0  i < k. Fazendo um arranjo dessas k

palavras-código linearmente independentes em linhas de uma matriz k × n como segue:

(13)

Códigos de Bloco Lineares

Matriz Geradora (G)

em que , para

Se \ é a mensagem a ser codificada, a

(14)

Códigos de Bloco Lineares

14

Matriz Geradora (G)

– Conclusões:

• As linhas de G geram o código linear (n, k) C. Por esta razão, a matriz G é chamada de uma matriz geradora de C. • Quaisquer k palavras-código linearmente independente de

um código linear (n, k) podem ser usadas para formar a matriz geradora do código. Um código linear (n, k) é completamente especificado pelas k linhas da matriz geradora G.

• O codificador só precisa armazenar as k linhas de G e formar a combinação linear dessas k linhas baseadas na mensagem de entrada

(15)

Códigos de Bloco Lineares

Matriz Geradora (G)

Exemplo 1. O código linear (7, 4) dado na Tabela 1 tem a seguinte

matriz como geradora, Tabela 1. Código de Bloco Linear com k = 4 e n = 7.

Se u = (1 1 0 1) é a mensagem a ser codificada, sua palavra-código, seria

(16)

Códigos de Bloco Lineares

16

Códigos de Bloco Linear Sistemático

 Código de bloco linear sistemático:

• Uma palavra-código é dividida em duas partes, a parte de

mensagem e a parte da redundância de checagem.

• A parte da mensagem consiste em k dígitos de informação inalterados (ou mensagem) e a parte da redundância de

checagem consistem de n−k dígitos de paridade (parity-check

digits), os quais são somas lineares dos dígitos de informação.

Um código de bloco linear com essa estrutura é referido como um código de bloco sistemático.

(17)

Códigos de Bloco Lineares

Códigos de Bloco Linear Sistemático

O código (7, 4) dado na Tabela 1 é um

código de bloco sistemático, os quatro dígitos mais a direita de cada palavra-código são

idênticos aos dígitos de informação correspondentes.

(18)

Códigos de Bloco Lineares

18

Códigos de Bloco Linear Sistemático

• Um código linear sistemático (n, k) é especificado completamente por uma matriz Gk×n da seguinte forma:

em que pi j = 0 ou 1. Faça com que Ikdenote a matriz identidade k × k.

Então G = [P Ik]. Faça ser a mensagem a

(19)

Códigos de Bloco Lineares

Códigos de Bloco Linear Sistemático

• As componentes de v são

k dígitos mais a direita da palavra-código v são idênticos aos dígitos

de informação u0, u1, . . . , uk−1 a serem codificados, e

para 0  j < n−k, mostra que os n−k dígitos redundantes mais a

esquerda são a somas linear dos dígitos de informação.

As n−k equações são chamadas de equações de

(20)

Códigos de Bloco Lineares

20

Códigos de Bloco Linear Sistemático

Faça com que u = (u0, u1, u2, u3) seja a mensagem a ser codificada e v = (v0,

v1, v2, v3, v4, v5, v6) ser a palavra-código correspondente. Então

Pela multiplicação da matriz, obtém-se os seguintes dígitos da palavra-código v :

(21)

Códigos de Bloco Lineares

Matriz Paridade (H)

Há outra matriz útil associada com cada código de bloco linear. Para qualquer matriz G, k × n, com k linhas linearmente independentes, existe uma matriz H, (n−k) × n, com n−k linhas linearmente independentes tal que qualquer vetor no espaço vetorial de G é ortogonal as linhas de H e qualquer vetor que é ortogonal as linhas de

H esta no espaço vetorial de G.

Por isso, pode-se descrever o código linear (n, k) gerado por G de uma forma alternativa como segue:

• Uma n -tupla v é uma palavra-código no código gerado por G se e somente se

(22)

Códigos de Bloco Lineares

22

Matriz Paridade (H)

As 2n-kcombinações lineares das linhas da matriz H formam um código

linear dual (n, n − k) Cd.

• Esse código é o espaço nulo do código linear (n, k) C gerado pela matriz G (i.e., para qualquer v Î C e qualquer w Î Cd, v · w = 0). Cd é chamado de código dual de C. Conseqüentemente, uma matriz de paridade para um código linear C é uma matriz geradora para seu código dual Cd .

(23)

Códigos de Bloco Lineares

Matriz Paridade (H)

Se a matriz geradora de um código linear (n, k) esta na forma sistemática da, a matriz de paridade deve ter a seguinte forma:

(24)

Códigos de Bloco Lineares

24

Matriz Paridade (H)

Faça hj ser a j-ésima linha de H. Pode-se checar facilmente que o

produto interno da i-ésima linha de G e a j-ésima linha de H é para 0  i < k e 0j < n − k.

Isso implica que

As equações de paridade também podem ser obtidas pela matriz de

paridade H. Faça ser a mensagem a ser

codificada. Em uma forma sistemática a palavra-código correspondente seria

(25)

Códigos de Bloco Lineares

Matriz Paridade (H)

Sabe-se que a matriz geradora do Exemplo 1 é

logo

Exemplo 3. Encontrar a matriz de paridade do código dado no

(26)

Códigos de Bloco Lineares

26

Matriz Geradora (G)

– Resumo:

• Para qualquer código de bloco linear (n, k) C, há uma matriz

G, k × n, cujo espaço vetorial dá C.

• Há uma matriz H, (n, n – k) × n, tal que uma n-tupla v é uma

palavra-código em C se e somente se v · HT = 0. Se G é da

forma

então H deve ter a forma

(27)

Códigos de Bloco Lineares

Considere um código linear (n, k) com a matriz geradora G e a matriz de paridade H. Seja v = (v0, v1, . . . , vn – 1) a palavra-código transmitida por um canal ruidoso. Seja r = (r0, r1, . . . , rn – 1) o vetor recebido na saída do canal. Por causa do canal ruidoso, r deve ser diferente de v. O vetor soma

é uma n-upla em que ei = 1 para rivi e ei = 0 para ri = vi.

Essa n-upla é chamada de vetor erro ou erro padrão. Os 1's em

e

são os erros de transmissão causados pelo canal ruidoso.

(28)

Códigos de Bloco Lineares

O vetor recebido r é o vetor soma da palavra-código transmitida e o vetor erro, isto é,

É evidente, que o receptor desconhece v ou e. Ao receber r, o decodificador deve determinar primeiro se r contém erros de transmissão.

• Se a presença de erros é detectada, o decodificador fará ações para localizar e corrigir os erros então (FEC- forward error

correction ) ou requisitará uma retransmissão de v (ARQ

-automatic repeat request ).

28

Síndrome e Detecção de Erro

(29)

Códigos de Bloco Lineares

Quando r é recebido, o decodificador calcula a seguinte (n − k)-upla:

a qual é chamada de síndrome de r. Então:

• s = 0 se e somente se r é uma palavra-código,

• s ≠ 0 se e somente se r não é uma palavra-código.

Conseqüentemente, quando s ≠ 0, sabe-se que r não é uma palavra-código e a presença de erros é detectada. Quando s = 0, r é uma palavra-código e o receptor aceita r como a palavra-código transmitida.

(30)

Códigos de Bloco Lineares

É possível que erros em certos vetores erros não sejam detectáveis (i.e. , r contem erros, mas s = r · HT = 0) ?

Isso acontece quando o comportamento do erro padrão e é idêntico ao de uma palavra código não nula. Nesse evento, r é a soma de duas palavras-código que é uma palavra-código, e

conseqüentemen-te r · HT = 0. Erros padrões desse tipo são chamados de erros padrão

indetectáveis.

• Uma vez que há 2k−1 palavras-código não nulas (diferentes de

zero), há 2k−1 erros padrão indetectáveis. Quando um erro padrão

indetectável ocorre, o decodificador faz uma decodificação do

erro.

30

Síndrome e Detecção de Erro

(31)

Códigos de Bloco Lineares

É possível que erros em certos vetores erros não sejam detectáveis (i.e. , r contem erros, mas s = r · HT = 0) ?

Isso acontece quando o comportamento do erro padrão e é idêntico ao de uma palavra código não nula. Nesse evento, r é a soma de duas palavras-código que é uma palavra-código, e

conseqüentemen-te r · HT = 0. Erros padrões desse tipo são chamados de erros padrão

indetectáveis.

• Uma vez que há 2k−1 palavras-código não nulas (diferentes de

zero), há 2k−1 erros padrão indetectáveis. Quando um erro padrão

indetectável ocorre, o decodificador faz uma decodificação do

erro.

(32)

Códigos de Bloco Lineares

32

Exemplo 4. Considere que o código linear (7, 4) cuja matriz de

paridade é

Faça r = (r0, r1, r2, r3, r4, r5, r6) o vetor recebido. Então a síndrome é dada por

(33)

Códigos de Bloco Lineares

Os dígitos da síndrome são

O circuito da síndrome para esse código é mostrado na Figura

(34)

Códigos de Bloco Lineares

A síndrome s calculada a partir do vetor recebido r de fato depende somente do comportamento do erro e, e não da palavra-código transmitida v. Desde que r seja o vetor soma de v e e, segue

•No entanto, v · HT = 0. Conseqüentemente, se obtém a seguinte

relação entre a síndrome e o erro padrão:

Os dígitos da síndrome são simplesmente combinações lineares dos dígitos de erro.

A idéia de usar a síndrome para a correção de erros pode ser esclarecida por um exemplo.

34

Síndrome e Detecção de Erro

(35)

Códigos de Bloco Lineares

Exemplo 5. Novamente, considera-se o código (7, 4) cuja matriz de

paridade é dada

Seja v = (1 0 0 1 0 1 1) ser a palavra-código a ser transmitida e r = (1 0 0 1 0 0 1) ser o vetor recebido. Ao receber r, o receptor calcula a síndrome:

Depois, o receptor determina o verdadeiro vetor erro e = (e0, e1, e2, e3, e4,

e5, e6), o qual resulta na síndrome acima. A partir de

(36)

Códigos de Bloco Lineares

36

A partir de

os dígitos de erro estão relacionados aos da síndrome pelas seguintes equações lineares:

Existem 24 = 16 erros padrão que satisfazem as equações acima. Eles

são

(37)

Códigos de Bloco Lineares

O vetor erro e = (0 0 0 0 0 1 0) tem o menor número de componentes diferentes de zero. Se o canal é um BSC, e = (0 0 0 0 0 1 0) é o vetor erro mais provável que satisfaz a equação acima. Tomando o vetor r = (1 0 0 1 0 0 1) como o vetor erro verdadeiro, o receptor decodifica o vetor recebido r = (1 0 0 1 0 0 1) na seguinte palavra-código:

Vê-se que v é a verdadeira palavra código. Conseqüentemente, o re-ceptor fez uma correta decodificação.

(38)

Códigos de Bloco Lineares

Este parâmetro determina a detecção de erros aleatórios e a

capaci-dade de correção de erros aleatórios de um código.

Faça v = (v0, v1, . . . , vn−1) ser uma n-upla binária. O peso de Hamming (ou simplesmente peso) de v, denotado por ω(v). É definido como o número de componentes não nulas de v.

Por exemplo, o peso de Hamming de v = (1 0 0 1 0 1 1) é 4.

Faça v e w ser duas n-uplas. A distância de Hamming (ou Simples-mente distância) entre v e w, denotada por d(v, w), é definida como o número de lugares em que diferem.

Por exemplo, a distância de Hamming entre

v = (1 0 0 1 0 1 1) w = (0 1 0 0 0 1 1)

é 3; elas diferem no zero, primeiro, e no terceiro lugar.

38

Distância Mínima de um Código de Bloco

(39)

Códigos de Bloco Lineares

Decorre da definição da distância de Hamming e a definição da adição módulo 2 que a distância de Hamming entre duas n-upIas, v e w, é igual ao peso de Hamming da soma de v e w, isto é,

Por exemplo, a distância de Hamming entre v = (1 0 0 1 0 1 1) e w = (1 1 1 0 0 1 0) é de 4 e o peso de v + w = (0 1 1 1 0 0 1) também é 4.

(40)

Códigos de Bloco Lineares

40

Código de Hamming

A matriz de paridade H desse código consiste de todas as m-uplas não nulas como suas colunas. Na forma sistemática, as colunas de H são ordenadas da seguinte forma:

em que Im é uma matriz identidade m × n e a submatriz Q consiste de

2m − m − 1 colunas as quais são as m-tuplas de peso 2, ou maior. Por exemplo, seja m = 3. A matriz paridade do código de Hamming de

comprimento 7 pode ser colocada da seguinte forma

(41)

Códigos de Bloco Lineares

Arranjo Padrão e Decodificação por Síndrome

Um esquema para decodificação de códigos de bloco linear será apresentado.

Inicialmente: Faça C ser um código linear (n, k). Seja

ser o vetor código de C.

Não importa que vetor código seja transmitido pelo canal ruidoso, o

vetor recebido r deve ser qualquer uma das 2n n-uplas sobre corpo

binário GF(2). Qualquer esquema de decodificação usado no

receptor é uma regra para dividir (particionar) os 2n possíveis

vetores recebidos em 2k subconjuntos disjuntos:

(42)

Códigos de Bloco Lineares

42

Arranjo Padrão e Decodificação por Síndrome

Conseqüentemente, cada subconjunto Di tem uma correspondência

biunívoca a um vetor vi. Caso o vetor recebido r seja encontrado

no subconjunto Di, r é decodificado em vi. A correta decodificação

é feita se e somente se o vetor recebido r está no subconjunto Di

que corresponde ao verdadeiro vetor código transmitido.

(43)

Códigos de Bloco Lineares

Exemplo 6. Considere o código linear (6, 3) gerado pela seguinte matriz:

O arranjo padrão do código é

(44)

Códigos de Bloco Lineares

44

Arranjo Padrão e Decodificação por Síndrome

Algoritmo de decodificação

O esquema de decodificação descrito acima é chamado de

(45)

Códigos de Bloco Lineares

Exemplo 7. Considere o código

linear (7, 4) dado na Tabela 1. A matriz de paridade, como dada

Capacidade de Detecção e Correção

Tabela de decodificação para o código linear (7, 4) dado na Tabela 1.

(46)

Códigos de Bloco Lineares

46

O circuito da síndrome para esse código é exibido na Figura. A tabela de decodificação é dada pela Tabela. A partir dessa tabela forma-se a tabela verdade

Capacidade de Detecção e Correção

Tabela verdade para os dígitos de erro dos erros padrão corrigíveis do código linear (7, 4) dado na Tabela 1.1.

(47)

Códigos de Bloco Lineares

A construção da Matriz Verdade é simples, basta associar os pos-síveis erros com as linhas da matriz HT. Para provar esse fato,

lembre-se de que

Logo, para o exemplo podemos calcular para síndrome possível, associada a ao erro, assim:

(48)

Códigos de Bloco Lineares

48

Capacidade de Detecção e Correção

(49)

Códigos de Bloco Lineares

Capacidade de Detecção e Correção

Logo, no caso em que o código corrige só um erro, obter a matriz verdade é muito simples. Contudo, quando é capaz de corrigir mais erros é necessário um cuidado maior.

(50)

Códigos de Bloco Lineares

50 Circuito de decodificação para o código (7, 4) dado na Tabela 1.

(51)

Códigos de Bloco Lineares

Código de Hamming

Códigos de Hamming são a primeira classe de códigos lineares desenvolvidos para correção de erros.

Para qualquer inteiro positivo m ≥ 3, existe um código de Hamming com os seguintes parâmetros:

– Comprimento do código: n = 2m − 1;

– Número de símbolos de informação: k = 2m − m − 1; – Número de símbolos de paridade: n − k = m;

(52)

Códigos de Bloco Lineares

52

Matriz Geradora (G)

Exemplo 1. Suponha na Transmissão de TV Digital esta usando o

código linear (7, 4) dado na Tabela 1 tem a seguinte matriz como geradora,

Tabela 1. Código de Bloco Linear com k = 4 e n = 7.

Deseja-se transmitir a seuqencia u = (1 1 0 1) é a mensagem a ser codificada, sua

(53)

Códigos de Bloco Lineares

Códigos de Bloco Linear Sistemático

Faça com que u = (u0, u1, u2, u3) seja a mensagem a ser codificada e v = (v0,

v1, v2, v3, v4, v5, v6) ser a palavra-código correspondente. Então

Pela multiplicação da matriz, obtém-se os seguintes dígitos da palavra-código v :

(54)

Códigos de Bloco Lineares

54

Matriz Paridade (H)

Sabe-se que a matriz geradora do Exemplo 1 é

logo

Na recepção é necessário encontrar a matriz de paridade do código

(55)

Códigos de Bloco Lineares

Na recepção, para o código linear (7, 4) cuja matriz de paridade é

É necessário o calculo da síndrome para sabermos se existe erro ou não na palavra-código recebida. Dessa forma é necessário calcular a síndrome.

(56)

Códigos de Bloco Lineares

56

Faça r = (r0, r1, r2, r3, r4, r5, r6) o vetor recebido. Então a síndrome é dada por

Síndrome e Detecção de Erro

Os dígitos da síndrome são

(57)

Códigos de Bloco Lineares

O circuito da síndrome para esse código é mostrado na Figura

(58)

Códigos de Bloco Lineares

58

O vetor erro e = (0 0 0 0 0 1 0) tem o menor número de componentes diferentes de zero. Se o canal é um BSC, e = (0 0 0 0 0 1 0) é o vetor erro mais provável que satisfaz a equação acima. Tomando o vetor r = (1 0 0 1 0 0 1) como o vetor erro verdadeiro, o receptor decodifica o vetor recebido r = (1 0 0 1 0 0 1) na seguinte palavra-código:

Vê-se que v é a verdadeira palavra código. Conseqüentemente, o re-ceptor fez uma correta decodificação.

Contudo é necessário definir uma implementação para o calcula da síndrome.

(59)

Códigos de Bloco Lineares

Considere o código linear (6, 3) gerado pela seguinte matriz:

O arranjo padrão do código é

(60)

Códigos de Bloco Lineares

60

A construção da Matriz Verdade é simples, basta associar os pos-síveis erros com as linhas da matriz HT. Para provar esse fato,

lembre-se de que

Logo, para o exemplo podemos calcular para síndrome possível, associada a ao erro, assim:

(61)

Códigos de Bloco Lineares

Capacidade de Detecção e Correção

(62)

Códigos de Bloco Lineares

62

Capacidade de Detecção e Correção

Logo, no caso em que o código corrige só um erro, obter a matriz verdade é muito simples. Contudo, quando é capaz de corrigir mais erros é necessário um cuidado maior.

(63)

Códigos de Bloco Lineares

Circuito de

decodificação para o código (7, 4) dado na Tabela 1.

(64)

Códigos Cíclicos

64

Os códigos cíclicos formam uma importante subclasse de códigos lineares. Estes códigos são atrativos por duas razões:

• primeiro, a codificação e o cálculo da síndrome são facilmente

implementadas usando registradores de deslocamento com

realimentação (ou circuito seqüencial linear);

• segundo, como eles têm considerável estrutura algébrica inerente, é possível encontrar vários métodos práticos para decodificá-los.

Os códigos cíclicos foram primeiro estudados por Prange, em 1957. Daí então, progressos no estudos dos códigos cíclicos para ambas correções de erros aleatórios e correções de erros em surto tem sido feito por muito teóricos de codificação algébrica.

(65)

Códigos Cíclicos

Se as componentes de uma n-upla v = (v0, v1, . . . , vn – 1) são

deslocadas ciclicamente uma coordenada (posição) para direita,

obtém-se uma outra n-upla

que é chamada um deslocamento cíclico de v. Se as componentes de v são deslocadas i coordenadas para a direita, a n-upla resultante será

Pode-se observar que deslocando cíclico de v em i coordenadas para a direita é equivalente à deslocar ciclicamente v em n − i coordenadas para a esquerda.

(66)

Códigos Cíclicos

66

Um código linear (n, k) C é chamado código cíclico se todo

deslocamento cíclico de uma palavra do código C é também uma palavra do código.

O código linear (7, 4) dado na Tabela 1 é um código cíclico. Os códigos cíclicos formam uma importante subclasse dos códigos lineares e

possuem muitas propriedades algébricas que simplificama

implementação da codificação e decodificação.

Para desenvolver as propriedades algébricas de um código cíclico, trata-se as palavras código v = (v0, v1, . . . , vn – 1) como os coeficientes de um polinômio, como segue:

(67)

Códigos Cíclicos

Definição

(68)

Códigos Cíclicos

68

O polinômio X 7 + 1 pode ser fatorado como segue:

Há dois fatores de grau 3; cada um gera um código cíclico (7, 4). O código cíclico (7, 4) gerado por g(X) = X 3 + X + 1 tem distância mínima

igual a 3 e é um código corretor de erros simples. Cada polinômio

código é o produto de um polinômio mensagem de grau menor ou

igual a 3 e o polinômio gerador g (X) = 1 + X + X3.

Por exemplo, seja u = (1 0 1 0) a mensagem a ser codificada. O

polinômio mensagem correspondente é u(X) = 1 + X 2. Multiplicando

u(X) por g(X) resulta no seguinte polinômio código:

ou a palavra código (1 1 1 0 0 1).

(69)

Códigos Cíclicos

Considere um código cíclico (n, k) C com polinômio gerador

Se as k n-uplas correspondendo a estes k polinômios código são

usadas como as linhas de uma matriz k × n, obtém-se a seguinte matriz geradora para C:

(70)

Códigos Cíclicos

70

Em geral, G não está na forma sistemática. Contudo, pode-se colocál-a ncolocál-a formcolocál-a sistemáticcolocál-a c Por exemplo, o código cíclico (7, 4) dcolocál-ado ncolocál-a

Tabela 4.1, com polinômio gerador g(X) = X 3 + X + 1, tem a seguinte

matriz como uma matriz geradora:

(71)

Códigos Convolucionais

Introdução

• A Codificação dos Códigos Convolucionais pode ser estudados de várias pontos de vista diferentes, em que serão apresentadas três definições:

– Matriz Polinomial; – Matriz Escalar;

– Registrador de Deslocamento.

• Outras duas definições serão apresentados – Diagrama de Estado;

– Treliça.

(72)

Códigos Convolucionais

72

Descrição pela Matriz Polinomial

• Código de Bloco Linear (n, k) pode ser caracterizada por uma matriz geradora G = (gij), k x n, sobre o corpo finito GF(q), em que q é uma potência de um número primo, e.g., q = 23.

• Um código convolucional (CC) é caracterizado por uma matriz geradora G, k x n, contudo defere em que para os códigos

convolucionais os elementos gij são polinômios sobre GF(q), em

particular, sobre GF(2).

Exemplo: CC1(2,1)

2

1

,

2

1

x

x

x

(73)

Códigos Convolucionais

Descrição pela Matriz Polinomial

Definições:

i. Memória

ii. Comprimento de Restrição

iii. Taxa

)]

(

grau

max[

g

ij

M

1

M

K

n

k

R

/

(74)

Códigos Convolucionais

74

Descrição pela Matriz Polinomial

Exemplo: CC1(2,1)

M = 2, K = 3 e R = 1/2

Exemplo: CC2(3,2)

M = 1, K = 2 e R = 2/3

x

x

1

0

1

0

1

G

2

1

,

2

1

x

x

x

G

Códigos de Bloco

são um caso

particular dos

códigos

convolucionais?

(75)

Códigos Convolucionais

Descrição pela Matriz Polinomial

Codificação:

Informação: I = (I

0

(x), I

1

(x), ..., I

k-1

(x)) - k-upla

Palavra-código: C = (C

0

(x), C

1

(x), ..., C

n-1

(x)) - n-upla

Definição:

Exemplo: CC1(2,1)

Informação: I = (x3+x+1) - 1-upla

G

I

C

2

1

,

2

1

x

x

x

G

(76)

Códigos Convolucionais

76

Descrição pela Matriz Polinomial

Exemplo: CC2(3,2)

Informação: I = (x2+x, x3+1) - 2-upla

G

I

C

x

x

1

0

1

0

1

G

Palavra-código: C = (x2+x, x3+1, x4+x3) - 3-upla

(77)

Códigos Convolucionais

Descrição pela Matriz Escalar

A representação escalar é mais natural.

Seja C = (C0(x), C1(x), ..., Cn-1(x)) - n-upla, assim cada polinômio, j-ésimo polinômio, é da forma

E a representação escalar da palavra-código C pode ser da forma

Exemplo: CC1(2,1) Informação: I = (x3+x+1) - 1-upla Palavra-código: C = (x5+x2+x+1, x5+x4+1) - 2-upla

 

2

2 1 0

C

x

C

x

C

x

C

j j j j

00

,

10

,

,

1,0

,

01

,

,

1,1

,

C

C

C

n

C

C

n

C

(78)

Códigos Convolucionais

78

Descrição pela Matriz Escalar

Pode-se definir a Matriz Geradora Escalar, da mesma forma que a palavra-código

1

1

1

0

1

1

1

1

1

0

1

1

1

1

1

0

1

1

1

1

1

0

1

1

1

1

1

0

1

1

G

110111

1

,

1

2 2

G

G

x

x

x

x = n Exemplo: CC1(2,1) Bloco Básico

(79)

Códigos Convolucionais

Descrição pela Matriz Escalar

Por questões práticas, o grau do polinômio informação é I limitado, dessa forma, defini-se

em que i = 0,1, ..., K – 1. L é o L-ésimo truncamento. Assim, o grau do polinômio código é limitado da seguinte forma

(

)

1

grau

I

i

x

L

(

)

1

(80)

Códigos Convolucionais

80

Descrição pela Matriz Escalar

Pode-se definir a Matriz Geradora Escalar, da mesma forma que a palavra-código

1

1

1

0

1

1

0

0

0

0

0

0

0

0

1

1

1

0

1

1

0

0

0

0

0

0

0

0

1

1

1

0

1

1

0

0

0

0

0

0

0

0

1

1

1

0

1

1

G

110111

1

,

1

2 2

G

G

x

x

x

Exemplo: CC1(2,1) Bloco Básico L = 4 KL x n(M+L) = 4 x 12

(81)

Códigos Convolucionais

Descrição pela Matriz Escalar

Pode-se definir a Matriz Geradora Escalar, da mesma forma que a palavra-código                    0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 G                1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 1 G G x x Exemplo: CC2(3,2) Bloco Básico

(82)

Códigos Convolucionais

82

Descrição por Registradores de Deslocamento

Suponha que se deseja construir um codificador para o CC1, que aceite a informação I = (I0(x), I1(x), ..., Ik-1(x)) como entrada e produzirá a palavra-código: C = (C0(x), C1(x), ..., Cn-1(x)) = (C00, C10, C01, C11, ...) como saída, em I e C que são relacionadas da forma

e

00 01 0

(

x

)

C

C

C

)

(

)

1

(

x

2

I

x

)

)(

1

(

2

0

1

x

I

I

x

10 11 1

(

x

)

C

C

C

)

(

)

1

(

x

2

x

I

x

)

)(

1

(

2

0

1

x

x

I

I

x

(83)

Códigos Convolucionais

Descrição por Registradores de Deslocamento

A multiplicação pode ser realizada através de Registradores de deslocamento, para o código CC1, da seguinte forma:

Multiplicando por x2 + 1 e multiplicando por x2 + x + 1 saída entrada x 1 x2 saída entrada 2 1 1 2 0 ) ( ) (         j j j j j j j I I I x C I I x C j = 0, 1, ...

(84)

Códigos Convolucionais

84

Descrição por Registradores de Deslocamento

Logo, para obter a palavra-código Ci pela convolução da entrada I,

para o CC1, faça entrada Ij – 1 Ij Ij – 2 2 1 1 2 0 ) ( ) (         j j j j j j j I I I x C I I x C j = 0, 1, ... saída saída

00 01 0

C

C

C

10 11 1

C

C

C

Memória do Código (M)

I

j – 1

e I

j – 2

(85)

Códigos Convolucionais

Diagrama de Estados

Logo, entrada Ij – 1 Ij Ij – 2 saída saída 11 10 01 00 0 / 00 1 / 11 Ij Ij-1 Ij-2 C0j C1j 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 2 1 1 2 0 ) ( ) (         j j j j j j j I I I x C I I x C j = 0, 1, ... 0 / 01 1 / 10 1 / 00 0 / 10 0 / 11

(86)

Códigos Convolucionais

86

Diagrama de Estados

Diagrama em Treliça 11 10 01 00 0 / 00 1 / 11 0 / 01 1 / 10 1 / 00 1 / 01 0 / 10 0 / 11 a b c d

(87)

Códigos Convolucionais

Diagrama de Estados

Diagrama em Treliça 11 10 01 00 0 / 00 1 / 11 0 / 01 1 / 10 1 / 00 1 / 01 0 / 10 0 / 11 a b c d

(88)

Códigos Convolucionais

88

Diagrama de Estados

Diagrama em Treliça 11 10 01 00 0 / 00 1 / 11 0 / 01 1 / 10 1 / 00 1 / 01 0 / 10 0 / 11 a b c d

Referências

Documentos relacionados

Da Silva et al (2020) estudaram a variabilidade espacial do fator k em áreas comerciais de cana-de-açúcar, causadas pelas estruturas multivariadas de perdas de carbono em

Cláudia Alexandra Gomes Martins Pinto ADMITIDO(A) Cláudia Sofia Barbosa da Costa Ribeiro ADMITIDO(A) Constança dos Santos Elias Pereira Graça ADMITIDO(A). Cristiana da Silva Aveiro

Mais do que propor uma metodologia para a musicalização de adultos, esse trabalho deve fazer o leitor refletir sobre a prática do ensino musical atual vigente.. O que

As Despesas Gerais e Administrativas (G&amp;A) foram reduzidas em 50 bps como percentual da receita líquida no 3T12, na comparação com o 3T11, em virtude de alavancagem

Este trabalho é resultado de uma pesquisa quantitativa sobre a audiência realizada em 1999 envolvendo professores e alunos do Núcleo de Pesquisa de Comunicação da Universidade

Depois da ação do último jogador, os jogadores devem novamente jogar ou descartar cartas na ordem de ORGANIZAÇÃO (a ordem pode alterar-se caso algum jogador ganhe ou

O Patrimônio Histórico, concebido aqui como uma relação entre memória social (CARLAN, 2008, p.82) e soma dos bens culturais, agrega conjuntos de informações,

Apenas o suficiente para sentir a pontada que ainda estava bem viva depois de oito anos, aquela que serve para m e lem brar de que tenho outras coisas a fazer além de