500 likes | 738 Views
TÉCNICAS DE CODIFICAÇÃO DE SINAIS. CÓDIGOS CÍCLICOS Evelio M. G. Fernández - 2010. 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
E N D
TÉCNICAS DE CODIFICAÇÃO DE SINAIS CÓDIGOS CÍCLICOS Evelio M. G. Fernández - 2010
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
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)
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(q1) = 1 • Teorema: Seja a um elemento diferente de zero em GF(q). Seja n a ordem de a. Então, n divide q1 • Resultado: Se a ordem de a for q1, então a é um elemento primitivo de GF(q)
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
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
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)
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)
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 .
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
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:
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.
Matriz Geradora não Sistemática • Código cíclico C: (n, k) gerado por g(x) de grau r = n k
bn-k-1 b2 b1 bn-k-2 b0 Codificador de um Código Cíclico (n, k)
r(x) sn-k-1 s0 s1 Circuito de Cálculo das Síndromes
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)
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
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,..., rem 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)
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.
Construção de Códigos BCH • Para cada raiz rincluí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)}
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.
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)
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)
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)}
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)
Desempenho de Códigos RS sobre GF(26) comn = 31, considerando modulação 32-FSK
Desempenho de Códigos RS sobre GF(26) comn = 31, considerando modulação 32-FSK