A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Apresentações semelhantes


Apresentação em tema: "TÉCNICAS DE CODIFICAÇÃO DE SINAIS"— Transcrição da apresentação:

1 TÉCNICAS DE CODIFICAÇÃO DE SINAIS
CÓDIGOS CÍCLICOS Evelio M. G. Fernández

2 Códigos Cíclicos: Definição
Um código de bloco linear é um código cíclico se cada deslocamento cíclico das palavras-código é também uma palavra-código. Vantagens: Descrição algébrica elegante c(x) = m(x)g(x), g(x)  polinômio gerador c(x)h(x) = 0 mod (xn  1)  h(x) polinômio de verificação de paridade c(β1) = 0, ..., c(βt) = 0, onde βi  GF(pm) Codificação e cálculo de síndromes utilizando registradores de deslocamento Correção de surtos de erros Correção de erros aleatórios através da solução de equações de polinômios

3 Deslocamentos Cíclicos de n-uplas e Polinômios

4 Deslocamentos Cíclicos de n-uplas e Polinômios

5 Corpos Finitos Um corpo finito com q elementos é chamado de GF(q) (Galois Field) GF(p) = inteiros com aritmética módulo um número primo, p GF(pm) = polinômios sobre GF(p) com aritmética módulo um polinômio primo de grau m (extension field) Todo corpo finito é o espaço vetorial de m-uplas sobre o corpo GF(p) de inteiros com aritmética módulo um número primo p. Portanto, GF(q) = GF(pm)

6 Corpos Finitos Teorema: A característica, λ, de um corpo finito é um número primo Teorema: Seja a um elemento diferente de zero em GF(q). Então, a(q1) = 1 Teorema: Seja a um elemento diferente de zero em GF(q). Seja n a ordem de a. Então, n divide q1 Resultado: Se a ordem de a for q1, então a é um elemento primitivo de GF(q)

7 Aritmética de Corpos Finitos
Polinômios com uma variável X e coeficientes em um corpo F (denotados por F[x]), são expressões da forma O grau de f(X) é a maior potência de X (com coeficiente de X ≠ 0) Polinômio mônico: O coeficiente da maior potência de X é 1  Todos os polinômios diferentes de zero sobre GF(2) são mônicos Para qualquer dividendo f(X)  F[x] e divisor diferente de zero, g(X)  F[x] existirão um par de polinômios únicos q(X), cociente e r(X), resto, tal que

8 Aritmética de Corpos Finitos
Definição: Seja p(X) um polinômio de grau m sobre GF(2). Se p(X) não for divisível por nenhum polinômio sobre GF(2) de grau m – 1 ou menos, então p(X) é irredutível sobre GF(2). Resultado: Qualquer polinômio irredutível sobre GF(2) de grau m divide

9 Aritmética de Corpos Finitos
Definição: Seja p(X) um polinômio irredutível de grau m sobre GF(2); então, p(X) divide Xn + 1 para n = 2m – 1. Se este valor de n for o menor inteiro positivo para o qual p(X) divide xn + 1, então p(X) é um polinômio primitivo de grau m sobre GF(2)

10 Soma Módulo-8 Produto Módulo-8
+ 1 2 3 4 5 6 7 1 2 3 4 5 6 7

11 Soma Módulo-2 (Bit-a-Bit)
000 001 010 011 100 101 110 111

12 Operação de “Multiplicação” das 3-uplas
001 010 011 100 101 110 111

13 Representação

14 Construção de GF(2m) Definição: Um elemento de GF(2m) de ordem 2m – 1 é um elemento primitivo.  se  é um elemento primitivo em GF(2m), então as potências distintas de  geram todos os elementos (diferentes de zero) de GF(2m). Definição: Um polinômio irredutível, p(x), de grau m sobre GF(2) é um polinômio primitivo se tiver como raiz um elemento primitivo de GF(2m)

15 Propriedades de GF(2m) Teorema: Seja f(X) um polinômio com coeficientes em GF(2). Seja  um elemento de GF(2m). Se  é uma raiz de f(X), então para qualquer l ≥ 0 , é também uma raiz de f(X) O elemento é chamado de conjugado de .

16 Propriedades de GF(2m) Teorema: Os 2m – 1 elementos diferentes de zero de GF(2m) compõem todas as raízes de  O elemento 0 de GF(2m) é a raiz de X. Portanto, Corolário: Os elementos de GF(2m) compõem todas as raízes de  β pode ser uma raiz de um polinômio sobre GF(2) de grau menor que 2m

17 Propriedades de GF(2m) Definição: Seja  um elemento de GF(2m). O polinômio minimal, (X), de  é o polinômio de menor grau com coeficientes em GF(2) tal que () = 0. Teorema: Sejam (X) o polinômio minimal de um elemento  em GF(2m) e e o menor inteiro tal que . Então:

18 Polinômio Gerador Seja C um código cíclico (n, k) sobre GF(q)
Existe um polinômio mônico g(x), chamado de polinômio gerador, tal que uma n-upla c(x) é uma palavra-código se e somente se g(x) for um divisor de c(x). O polinômio gerador é único. O grau do polinômio gerador é n  k. g(x) é o polinômio código de menor grau entre todos os polinômios código. O polinômio gerador é um divisor de xn  1.

19 Polinômio Gerador

20 Matriz Geradora não Sistemática
Código cíclico C: (n, k) gerado por g(x) de grau r = n  k

21 Código Cíclico Sistemático

22 Procedimento para Codificação Sistemática

23 Polinômio de Verificação de Paridade

24 Codificador de um Código Cíclico (n, k)
b0 b1 b2 bn-k-1 bn-k-2

25 Codificador do Código Cíclico (7, 4)

26 Circuito de Cálculo das Síndromes
sn-k-1 r(x)

27 Cálculo de Síndromes Código (7, 4)

28 Capacidade de Detecção de Erros
Um código cíclico (n, k) é capaz de detectar qualquer surto de erros de comprimento n  k ou menor, incluindo surtos do tipo end-around. A fração de surtos não detectáveis de comprimento n  k +1 é 2  (n  k  1) Para l > n  k +1, a fração de surtos não detectáveis de comprimento l é 2  (n  k)

29 Decodificação de Códigos Cíclicos

30 Decodificação de Códigos Cíclicos
Passo 1: Calcular a síndrome de r(x) e armazenar r(x) no registrador Passo 2: Determinar padrão de erro. A saída do detector é 1 se e somente se a síndrome no registrador corresponde a um padrão de erro corrigível contendo um erro na posição xn  1 Passo 3: O buffer e o registrador de síndrome são deslocados uma posição à direita. A saída do detector faz a correção do primeiro símbolo (se en  1 = 1) e também é realimentada no registrador de síndrome. Nova síndrome corresponde à r(x) deslocado Passo 4: Detectar se xn  2 (agora na última posição) é um símbolo errado. Repetir passos 2 e 3. O segundo símbolo é corrigido da mesma forma que o anterior. Passo 5: Decodificar o vetor recebido símbolo a símbolo da forma descrita anteriormente

31 Decodificador de Meggitt para o Código Cíclico (7, 4)

32 Processo de Correção de Erros

33 Códigos Cíclicos Binários vistos a partir de GF(2m)
Teorema: Seja g(x) o polinômio gerador de um código cíclico binário de comprimento n = 2m  1 com zeros 1,..., r em GF(2m). O polinômio c(x) sobre GF(2) é um polinômio código se e somente se c(1) = c(2) = ··· = c(r) = 0 onde c(i) é avaliado em GF(2m)

34 BCH bound Se um código cíclico linear é construído de forma que:
Cada palavra-código tem n bits;  é um elemento de ordem n em GF(2m); O polinômio gerador do código, g(x), inclui, entre suas raízes, ( - 1) potências consecutivas de . Então, É garantido que o código tem distância mínima igual a  ou maior.

35 Construção de Códigos BCH
Para cada raiz r incluída em g(x), existe um polinômio minimal f(r)(x) que tem r como raiz [i.e., f(r)(r) = 0] e com coeficientes em GF(2). O polinômio gerador, com coeficientes binários, que contém todas as raízes necessárias pode ser obtido como sendo o mínimo comum múltiplo (LCM) de todos os polinômios minimais correspondentes às raízes utilizadas: g(x) = LCM{f(b+1)(x), f(b+2)(x), ..., f(b+-1)(x)}

36 Tipos de Códigos BCH Se  é um elemento primitivo de GF(2m), o código BCH resultante é chamado de código BCH primitivo e as suas palavras-código têm comprimento 2m – 1 bits. Se  não é um elemento primitivo de GF(2m), o código BCH resultante é chamado de código BCH não primitivo e as suas palavras-código têm comprimento igual à ordem de . Se b = 0, a primeira das ( - 1) potências de  será 1 = ,  código BCH no sentido estrito. Se b  0,  código BCH no sentido amplo.

37 Códigos BCH Binários Primitivos
Para qualquer m  3 e t  2m  1, existe um código BCH com os seguinte parâmetros: n = 2m  1, n  k  mt, dmin  2t + 1 O polinômio gerador do código, g(x), é o polinômio de menor grau sobre GF(2) contendo como raízes, onde α é um elemento primitivo de GF(2m)

38 Elementos de GF(24)

39 Decodificação de Códigos BCH
Computar as síndromes S = (S1, S2, ..., S2t) a partir de r(x) Determinar σ(x) a partir de S1, S2, ..., S2t Determinar as localizações dos erros, 1, 2, ..., υ encontrando as raízes de σ(x) e corrigir os erros em r(x)

40 Códigos BCH Primitivos sobre GF(q)
Seja α um elemento primitivo em GF(qm ). O polinômio gerador, g(x), de um código BCH q-ário primitivo corretor de t erros é o polinômio de menor grau sobre GF(q) contendo como raízes. Seja i(x) o polinômio minimal de αi, 1  i  2t. Então, g(x) = LCM{1(x), 2(x), ..., 2t(x)}

41 Códigos de Reed-Solomon
Um código de Reed-Solomon (ou código RS) é um código BCH primitivo (não binário) de comprimento n = q – 1 sobre GF(q). O polinômio gerador desse código tem a forma onde  é um elemento primitivo de GF(q), d é a distância mínima do código e gi  GF(q)

42 Desempenho de Códigos RS sobre GF(26) com n = 31, considerando modulação 32-FSK

43 Desempenho de Códigos RS sobre GF(26) com n = 31, considerando modulação 32-FSK

44 Desempenho de Códigos RS com R = 7/8

45 Desempenho de Códigos RS com n = 64

46 Desempenho de Códigos RS com n = 31 e Modulação BPSK

47 Decodificador de Códigos BCH q-ários

48 Desempenho de Códigos de Reed-Solomon


Carregar ppt "TÉCNICAS DE CODIFICAÇÃO DE SINAIS"

Apresentações semelhantes


Anúncios Google