Codificação de Canal



Documentos relacionados
III-2 Cyclic Redundancy Check

Processamento e Comunicação Multimédia

16.36: Engenharia de Sistemas de Comunicação Aula 14: Códigos cíclicos e detecção de erros

III-1 Códigos detetores e corretores de erros

Estudo da Constelação 16-QAM

III-1 Códigos detetores e corretores de erros

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

Tecnologias de Redes Informáticas (6620)

III-1 Códigos detetores e corretores de erros

Ex 4.3 O anel é construído pelos polinômios S 1 1 S 2. x S 3. x 1 S 4. x 2 S 5. x 2 1 S 6. x 2 x S 7. x 2 x 1 S 8. x 3 S 9

1 - Cite o nome dos principais campos de um quadro Ethernet, explicando qual a funcionalidade de cada campo.

Códigos de Detecção e Correcção de Erros

Camada de Ligação de Dados

Aula 04. Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace

Universidade de Pernambuco Escola Politécnica de Pernambuco

Prof. Aleksander S. Paterno

Fabio Bento

Detecção e correcção de erros

Introdução. Algumas terminologias. Camada de Enlace de Dados. Prof. Leandro Pykosz

Em um sistema de numeração de base b qualquer, um número positivo é representado pelo polinômio:

Capítulo 2. Numéricos e Códigos Pearson Prentice Hall. Todos os direitos reservados.

Controle de Erro em Redes de Computadores

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

Introdução à Transmissão Digital. Funções básicas de processamento de sinal num sistema de comunicações digitais.

MÉTODOS DISCRETOS EM TELEMÁTICA

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Sistemas de Telecomunicações 1

PARTE 1 (CONTROLE DE FLUXO)

DESENVOLVIMENTO DE UM KIT DIDÁTICO PARA APRENDIZAGEM DA TÉCNICA DE CODIFICAÇÃO REED SOLOMON. Samir Shehady 1 ; Arnaldo Megrich 2

Organização e Arquitetura de Computadores I

O protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura.

1 Problemas de transmissão

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO

Genericamente qualquer sistema de numeração pode ser caracterizado por:

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

Capítulo 2. Elementos de um Sistema de Telecomunicações Digital

Tratamento de erros. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Abril de 2006

FERRAMENTA DIDÁTICA PARA DISCIPLINA DE ELETRÔNICA DIGITAL

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores

Códigos cíclicos - Parte 2

Circuitos Digitais Cap. 5

CODIFICAÇÃO PARA CONTROLO DE ERROS

RAID 1. RAID 0 2. RAID 1

1 Modulação digital Noções básicas

Aritmética Binária e. Bernardo Nunes Gonçalves

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Acrescenta um bit 1 ou um bit 0 às mensagem para que o número total de bits 1 seja par

Circuitos Digitais 144L

Circuitos Combinacionais. Sistemas digitais

Códigos de blocos lineares. Outubro de 2017

Códigos NMDS sob a Métrica Poset

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

1 Transmissão digital em banda base

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

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Seja o código de Hamming Binário C com m = 4. Pede-se:

REDES DE COMPUTADORES. Detecção e Correção de Erros

Fundamentos de Telecomunicações

III-1 Códigos detectores e correctores de erros

Porta Série. Trabalhos Práticos AM 2007/2008. Porta Série. Objectivos

EA960 Redundância e Confiabilidade: RAID

Introdução à Engenharia de

Aula 7. Codificadores e Decodificadores. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Plano de Ensino Sistemas de Comunicação III - UNIPAMPA 1 PLANO DE ENSINO

Comunicação de dados. Introdução

2- Conceitos Básicos de Telecomunicações

Sinal analógico x sinal digital. Sinal analógico. Exemplos de variações nas grandezas básicas. Grandezas básicas em sinais periódicos

ELE32 Introdução a Comunicações Codificação de Canal. ITA 2º. Semestre de 2017

Exemplo de Subtração Binária

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA ELETRÔNICA DIGITAL - ET75C - Profª Elisabete N Moraes

Sistemas de Numeração. Introdução ao Computador 2010/1 Renan Manola

Redes e Telecomunicações

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar

Quadro de consulta (solicitação do mestre)

Hardware de Computadores

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA POLITÉCNICA DEPARTAMENTO DE ELETRÔNICA E DE COMPUTAÇÃO

AVALIAÇÃO À DISTÂNCIA 1 GABARITO

Tópicos Especiais em Informática

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos

Capítulo III Circuitos Digitais Combinacionais

CAPÍTULO 6 ARITMÉTICA DIGITAL

JOÃO PAULO TRIERVEILER MARTINS TURBO DECODIFICADORES DE BLOCO DE BAIXA POTÊNCIA PARA COMUNICAÇÃO DIGITAL SEM FIO

PROJETO DE REDES

COMPUTAÇÕES NUMÉRICAS. 1.0 Representação

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13

Código descrambler-scrambler detector e corretor de erros e seu uso em equipamentos Vectura

1. Sistemas de numeração

Fundamentos de Redes de Computadores

Redes de Computadores

Redes Industriais ModBus RTU

Capítulo. Comunicação de Dados Capítulo 9

Exercícios do livro: Tecnologias Informáticas Porto Editora

Comunicação de Dados. Aula 4 Conversão de Sinais Analógicos em digitais e tipos de transmissão

Capítulo UM Bases Numéricas

RAID. Propõe o aumento da confiabilidade e desempenho do armazenamento em disco. RAID (Redundant Array of Independent Disks )

DO ANALÓGICO AO DIGITAL: CONCEITOS E

Eletrônica Digital para Instrumentação. Herman Lima Jr.

Transmissão e comunicação de dados. Renato Machado

ELE32 Introdução a Comunicações Codificação de Canal Códigos cíclicos. ITA 2º. Semestre de 2017

Transcrição:

Laboratório de Processamento de Sinais Laboratório de Sistemas Embarcados Universidade Federal do Pará 26 de janeiro de 2012

Sumário 1 Introdução a 2 Códigos de Blocos Lineares 3 Códigos Cíclicos

Introdução a Sumário 1 Introdução a 2 Códigos de Blocos Lineares 3 Códigos Cíclicos

Introdução a Os canais de comunicação estão sujeitos a diversos ruídos e interferências que corrompem a informação transmitida; A codificação de canal permite a detecção e correção de erros introduzidos pelo canal;

Introdução a Teoria dos Códigos A teoria dos códigos surgiu para desenvolver métodos parar detectar e corrigir os erros introduzidos pelo canal; Teve início em 1948 com Shannon [1]; Os códigos além de oferecerem confiabilidade aos canais de comunicação e computadores são usados em diversas aplicações: comunicações móveis, nos aparelhos de armazenamento de dados (CDs, DVDs), no processamento digital de imagens, comunicação via satélite e etc.

Introdução a Técnicas de Controle de Erro Correção direta de erros (FEC): baseada nos códigos corretores de erros, que utilizam a redundância na palavra-código transmitida tanto para detecção como para correção de erros durante uma transmissão; Solicitação de repetição automática (ARQ - Automatic Request for Retransmission): utiliza a redundância na palavra-código apenas para detecção de erros. Depois de detectado o erro, o receptor solicita a retransmissão da palavra-código que foi corrompida. Códigos Corretores de Erros: Códigos de blocos: processam a informação bloco a bloco. Códigos convolucionais: possuem memória.

Introdução a Conceitos Básicos Uma mensagem ou informação geralmente é transmitida na forma de dígitos binários ou bits, ou seja, 0s e 1s; Chama-se de palavra uma sequência de bits; Um código binário, por exemplo, é um conjunto de palavras; As palavras-código são as palavras pertencentes a esse códigos binários. Um código é dito linear se duas palavras-código quaisquer do código puderem ser somadas em aritmética módulo 2 para produzir uma terceira palavra-código [2];

Códigos de Blocos Lineares Sumário 1 Introdução a 2 Códigos de Blocos Lineares 3 Códigos Cíclicos

Códigos de Blocos Lineares Códigos de Blocos Lineares Os códigos de blocos são um conjunto de 2 k palavras-código distintas, especificados como códigos (n,k): k é o número de bits de informação n é o tamanho da palavra-código R = n k é o número de bits de redundância ou paridade A codificação é realizada através da adição de uma redundância (ou paridade), garantindo que no decodificador a mensagem possa ser recuperada; Códigos sistemáticos: os bits de informação são transmitidos de forma inalterada, e os bits de paridade aparecem no final da palavra codificada.

Códigos de Blocos Lineares Matriz Geradora Cada código de bloco linear tem uma matriz geradora G de onde se obtém as várias palavras do código; Para um código linear sistemático (n, k), a matriz geradora G é composta de duas sub-matrizes, uma matriz identidade k k, indicada por I k e uma sub-matriz de paridade k (n k), indicada por P, tal que [3]: G = [ I k P ] G = g 0 g 1. g k 1 1 0 0... 0 p 00 p 01... p 0,n k 1 0 1 0... 0 p 10 p 11... p 1,n k 1 = 0 0 1... 0 p 20 p 21... p 2,n k 1........................ 0 0 0... 1 p k 1,0 p k 1,1... p k 1,n k 1

Códigos de Blocos Lineares Codificação Na codificação, considerando u = (u 0,u 1,...,u k 1 ), uma mensagem a ser codificada, a palavra-código resultante v pode ser expressa da seguinte forma [4]: v = u G = (u 0,u 1,...,u k 1 ) g 0 g 1. g k 1 = u0g0 +u1g1 +...+u k 1g k 1. Exemplo: Considere um código linear (7,4), com a seguinte matriz geradora, g 0 1 0 0 0 1 1 0 G = g 1 g 2 = 0 1 0 0 0 1 1 0 0 1 0 1 1 1. g 3 0 0 0 1 1 0 1 E a informação a ser codificada como sendo u = (1101), então v seria, v = 1 g 0+1 g 1+0 g 2+1 g 3 = (1000110)+(0100011)+(0001101) = (1101000).

Códigos de Blocos Lineares Matriz de Verificação de Paridade Para cada matriz G de k n, existe uma matriz (n k) k denominada de matriz H ou matriz de verificação de paridade; v só é uma palavra-código de um código gerado por G, se e somente se, v H T = 0 [4] A matriz H é composta de duas sub-matrizes, uma matriz identidade (n k) (n k), indicada por I n k, e a transposta da matriz de coeficientes P, indicada por P T, tal que H = [ I n k P T] 1 0 0... 0 p 00 p 10... p k 1,0 0 1 0... 0 p 01 p 11... p k 1,1 H = 0 0 1... 0 p 02 p 12... p k 1,2........................ 0 0 0... 1 p 0,n k 1 p 1,n k 1... p k 1,n k 1

Códigos de Blocos Lineares Capacidade de Correção de Erros de um Código Linear A distância de Hamming entre dois vetores, d(u, v), é definida como sendo o número de posições em que eles diferem, ou seja, considerando dois vetores u = (10101) e v = (01101), a distância de Hamming entre eles é d(u,v) = 2; A distância mínima de Hamming de um código linear, d min, é a menor distância de Hamming encontrada entre todos os pares de palavras de um código; Se um código corrige até t erros por palavra, então a capacidade de correção de um código é definida por[4]: t = d min 1 2

Códigos de Blocos Lineares Síndromes A síndrome é usada para definir se a palavra recebida possui erros ou não; Considerando u a palavra transmitida e e o vetor de erros, então r, a palavra recebida, é a soma vetorial de u e e: r = u+e. Para recuperar a palavra transmitida u, o decodificador calcula então a síndrome da palavra recebida. A síndrome é um vetor de (n k) componentes, definido por: s = r H T. Se s = 0, então r é uma palavra-código e portanto assume-se que não ocorreram erros na transmissão, no entanto, se s 0, então r não é palavra-código e erros ocorreram;

Códigos de Blocos Lineares Síndromes Considerando uma matriz H de um código linear (7,4) como sendo: 1 0 1 1 1 0 0 H = 1 1 1 0 0 1 0 0 1 1 1 0 0 1 Supondo que a palavra recebida foi r = (1111111). A síndrome então seria: 1 1 0 0 1 1 1 1 1 s = (1111111) 1 0 1 = (000). 1 0 0 0 1 0 0 0 1 Nesse caso, como a síndrome é nula, a palavra recebida é palavra-código e assume-se que não ocorreram erros na transmissão.

Códigos de Blocos Lineares Decodificação por síndromes A decodificação é realizada a partir da identificação do padrão de erros mais provável por meio do cálculo da síndrome de erros [4]: s = e H T. A síndrome do erro é igual a síndrome da palavra recebida; Para decodificação: A partir da capacidade de correção de erros do código, determina-se a síndrome para todos os padrões de erros corrigíveis; Calcula-se a síndrome da palavra recebida r; Localizar que padrão de erro e i corresponde a síndrome calculada. Corrigir a palavra recebida r, fazendo: c = r+e i.

Códigos de Blocos Lineares Códigos de Hamming Os códigos de Hamming são a primeira classe de códigos para correção de erros, podendo corrigir um erro por palavra-código; A distância minima de Hamming é igual a 3, e os seus parâmetros para um código de blocos (n, k) para qualquer inteiro m 3, são definidos como [5]: Tamanho do bloco: n = 2 m 1 Número de símbolos de infromação: k = 2 m m 1 Número de símbolos de paridade: n k = m Capacidade de correção: t = 1 A codificação e a decodificação são feitas seguindo o processo de codificação dos códigos lineares;

Códigos de Blocos Lineares Códigos de Hamming Exemplo: Suponhamos que a palavra-código enviada seja [1110010] e que a recebida seja [1100010], ocorrendo um erro no terceiro bit. A síndrome da palavra recebida é igual a s = [001]. Localiza-se na tabela qual o padrão de erro que corresponde a síndrome encontrada e soma-se ele a palavra recebida, resultando em: c = r+e = (1100010)+(0010000) = 1110010 Síndrome Padrão de erro (0 0 0) (0 0 0 0 0 0 0) (1 0 0) (1 0 0 0 0 0 0) (0 1 0) (0 1 0 0 0 0 0) (0 0 1) (0 0 1 0 0 0 0) (1 1 0) (0 0 0 1 0 0 0) (0 1 1) (0 0 0 0 1 0 0) (1 1 1) (0 0 0 0 0 1 0) (1 0 1) (0 0 0 0 0 0 1)

Sumário Códigos Cíclicos 1 Introdução a 2 Códigos de Blocos Lineares 3 Códigos Cíclicos

Códigos Cíclicos Códigos Cíclicos Subclasse dos Códigos de blocos lineares; Fáceis de codificar e decodificar; Propriedade Cíclica: cada deslocamento cíclico de uma palavra-código é também uma palavra-código; Utilizam Campos de Galois - campo finito de p elementos, designado por GF(p); Em geral utiliza-se GF(2 m ), sendo m o número de bits.

Códigos Cíclicos Códigos Cíclicos Uma vantagem dos códigos cíclicos está no fato de que as palavras-códigos são representadas na forma de polinômios: Palavras-código Polinômio c(x) 0 0 0 0 0 1 0 1 0 1 + X 2 0 1 0 1 X +X 3 1 1 1 1 1+X +X 2 +X 3 As operações entre polinômios pertencentes a um GF(2 m ) são feitas em aritmética módulo-2.

Códigos Cíclicos Codificação dos Códigos Cíclicos O Polinômio Gerador g(x) de um código cíclico (n,k) é o polinômio de menor grau entre os polinômios do código, e pode ser definido como: g(x) = 1+g 1 X +g 2 X +...+g n k 1 X n k 1 +X n k, Para realizar a codificação é necessário seguir 3 passos [2, 4]: 1 Multiplica-se o polinômio da mensagem m(x) por X n k 2 Obtêm-se o resto b(x) da divisão de X n k por g(x) que corresponde aos dígitos de paridade. 3 Adiciona-se X n k a b(x) para obter o polinômio código c(x). A decodificação é feita assim como no caso dos códigos de blocos, porém usando polinômios e campos de galois;

Códigos Cíclicos Codificação dos Códigos Cíclicos Exemplo: Considere um código cíclico (7, 4) com polinômio gerador g(x) = X 3 +X +1 e a mensagem a ser codificada como sendo m(x) = (0101) = X 2 +1. Seguindo os passos anteriores primeiro calculamos X 3 m(x) = X 5 +X 3 e depois dividimos pelo polinômio g(x): X 5 +X 3 X 3 +X +1 X 5 +X 3 +X 2 X 2 X 2 = b(x) obtendo o resto b(x) = X 2. Depois fazemos, c(x) = X 3 m(x)+b(x) = X 5 +X 3 +X 2 = (0101100). Mantendo a mensagem (0101) inalterada e a paridade (100) adicionada no final.

Códigos Cíclicos Código CRC (Cyclic Redundandy Check) Código para detecção de erros; Na codificação, o CRC corresponde a paridade, sendo o resto da divisão polinomial entra a mensagem enviada M(X) e um determinado polinômio gerador G(X): Na decodificação: CRC(X) = M(X)X n k mod G(X) (M(X)+CRC(X)) mod G(X) = 0.

Códigos Cíclicos Código BCH (Bose-Chaudhuri-Hocquenghem) São códigos cíclicos binários com grande capacidade de correção de erros; Generalização dos códigos de Hamming para múltiplos erros; Parâmetros: Para qualquer inteiro positivo m 3 e t < 2 m 1 [6]: Tamanho do bloco: n = 2 m 1 Número de símbolos de infromação: k 2 m 1 mt Número de símbolos de paridade: n k mt Capacidade de correção: t erros

Códigos Cíclicos Bibliografia C. E. Shannon, A mathematical theory of communication, The Bell System Technical Journal, vol. 28, 1948. S. Haykin, Sistemas de Comunicação: Analógicos e Digitais, 4th ed. Bookman, 2004. R. H. Morelos-Zaragoza, The Art of Error correcting Coding. John Wiley e Sons, Ltd., 2002. S. Lin and D. C. Jr., Error Control Coding: Fundamentals and Applications. Prentice-Hall, 1983. R. W. Hamming, Error detecting and error correcting codes, The Bell System Technical Journal, vol. 26, 1950. R. C. Bose and D. K. Ray-Chaudhuri, On a class of error correcting binary group codes, Information and Control, vol. 3, pp. 68 79, March 1960.