CODIFICAÇÃO PARA CONTROLO DE ERROS

Documentos relacionados
Sistemas de Telecomunicações 1

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

III-1 Códigos detetores e corretores de erros

Fundamentos de Telecomunicações

III-1 Códigos detetores e corretores de erros

III-1 Códigos detetores e corretores de erros

Capítulo 3. A camada de enlace de dados

Fundamentos de Telecomunicações

Detecção e correcção de erros

III-1 Códigos detectores e correctores de erros

Redes de Computadores. Prof. André Y. Kusumoto

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)

Códigos de blocos lineares. Outubro de 2017

Redes de Computadores

Códigos cíclicos - Parte 2

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

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

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

Camada de Enlace de Dados

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

Controlo de Erro no Nível Trama {ErrorCtrl.doc} Detecção e Correcção de Erros

Camada de Ligação de Dados

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

Redes de Computadores

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

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:

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

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

COM29008 LISTA DE EXERCÍCIOS #

Codificação de Canal

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

Lista de Exercícios. Camada de Enlace de Dados

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

Codificação de canal no UMTS (Universal Mobile Telecommunications System)

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

Organização e Arquitetura de Computadores I

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

Técnicas de Detecção e Correção de Erros

TÉCNICAS DE CODIFICAÇÃO DE SINAIS

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

PEL/FEN Redes de Computadores 2018/1 Terceira Lista de Exercícios Prof. Marcelo Gonçalves Rubinstein

BC-0504 Natureza da Informação

Universidade de Pernambuco Escola Politécnica de Pernambuco

CÓDIGOS CORRETORES DE ERROS

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços

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

O NÍVEL DE LIGAÇÃO DE DADOS. Nível de ligação de dados Controle de Fuxo Detecção de erros Controle de Erros

de erros Exercícios E S T i G

O L A Representação de Informação. Representação de Informação. -- Texto -- Tabela de ASCII (7 bits) Representação de Caracteres

Princípios de detecção e correção de erros, princípios de controle de link e princípios de acesso múltiplo

Transmissão de Sinais Digitais

Mensagem descodificada. Mensagem recebida. c + e

Rede Telefónica Pública Comutada - Principais elementos -

A camada de enlace de dados executa diversas funções específicas. Dentre elas

Redes de Computadores e Telecomunicações - Camada de Transporte

Tecnologias de Redes Informáticas (6620)

Comunicações Digitais

Big Endian é uma ordenação usada em sistemas do tipo Unix (arquiteturas SPARC, IBM Mainframe).

Duração do Teste: 2h.

Teoria das Comunicações

III-2 Cyclic Redundancy Check

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

ÍNDICE LISTA DE FIGURAS LISTA DE TABELAS PREFÁCIO AGRADECIMENTOS

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

Corrigindo erros por meio de códigos lineares

Redes de Computadores

TE111 Comunicação Digital

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

Codificação de Informação

Transcrição:

CODIFICAÇÃO PARA CONTROLO DE ERROS

Sinal de voz Qual a forma Sistema para transmissão de voz Transdutor (Microfone) CF Codificador de Fonte CC Codificador de Canal R Repetidor Lacete de assinante A/D A/D... A/D CF MUX mais eficiente de codificar as mensagens geradas pela fonte? CC Codificação de Linha c Como codificar as mensagens para que o receptor possa detectar/corrigir os erros de transmissão? Modulador Interface Central 2 R Meio de Transmissão R Meio de Transmissão Interface Filtro Desmodulador Igualador (Cod. Linha) - CC c - DEMUX CF - D/A D/A... Lacete de assinante Transdutor (Auscultador) Sinal de voz D/A Central

Introdução 3 O ruído, a distorção e eventuais interferências, inerentes ao processo de transmissão do sinal, podem originar erros no sinal recebido. A codificação para controlo de erros (CCE), também designada por codificação de canal, consiste em adicionar informação redundante (i.e., mais bits ) à mensagem original; essa redundância é utilizada na recepção de modo a possibilitar a detecção e/ou correcção de erros que tenham eventualmente ocorrido durante a transmissão. A utilização de codificação para controlo de erros conduz a um aumento da complexidade do sistema, em maior ou menor grau, consoante o tipo de código utilizado.

Áreas de aplicação 4 Armazenamento de dados Memórias RAM Sistemas de armazenamento ópticos e magnéticos (discos rígidos, CD s, DVD s) Comunicações digitais Comunicações via-satélite Comunicações móveis celulares Comunicações de áudio e vídeo (DAB, DVB) Redes de computadores (protocolo TCP/IP)

Codificação para detecção de erros 5 O receptor não consegue corrigir os erros, mas pode detectá-los e efectuar um pedido de retransmissão da informação errada (ARQ - automatic repeat request ) Apropriado para Canais com pouco atraso Canais com uma ligação de retorno Não é apropriado para dados sensíveis ao atraso, e.g., transmissão de voz ou vídeo em tempo real. Em alguns sistemas, esta forma de controlo de erros é utilizada com o propósito de determinar a qualidade da comunicação (exemplo: controlo de erro nas hierarquias TDM-SDH)

Exemplo Códigos de paridade 6 A cada sequência de k bits da informação a transmitir, é acrescentado um bit (bit de paridade) de modo a que o número total de bits a na sequência de k+ bits resultante seja par (paridade par) ou ímpar (paridade ímpar). Simples de implementar (operações XOR) Exemplo (paridade par): Bits de informação: bit de paridade Palavra de código: Só detecta erros se estes ocorrerem em número ímpar.

7 Exemplo Códigos de paridade (cont.) Tabela de codificação para um código de paridade (4,3) Informação Palavra de código 7

Exemplo Códigos de paridade no SDH 8 B3 (POH Cabeçalho de caminho) B, B2 e B3 : usados para detecção de erros, ao nível de blocos de bits

Codificação para correcção de erros 9 Possibilita a correcção de erros que tenham ocorrido durante a transmissão. É introduzida maior redundância do que na codificação para detecção de erros; codificação e descodificação são também mais complexas. Apropriado para dados sensíveis ao atraso e transmissão unidireccional. Dois tipos principais de códigos: Códigos de blocos Códigos convolucionais Designação Inglesa: Forward Error Correction (FEC).

Exemplo Códigos de repetição Codificação: ==> ==> Palavra recebida:. Qual foi a palavra transmitida? cenário A: com erro na a. posição cenario B: com erros na 2a. e 3a. posições Descodificação: aplica lógica de maioria Decisão na descodificação: ==> Exemplo de aplicação: envio do bit de controlo de justificação nas hierarquias TDM-PDH. Desvantagem: aumento da LB necessária para a transmissão e de um factor igual ao número de repetições.

Relembrar Estrutura da Trama E2 Transporta 2 canais de 64 kbit/s; f b =8448 kbit/s SAT............ 5 4 bits 52 4 bits 52 4 bits 5 4 bits 2 bits de serviço 4 bits de controlo de justificação 4 bits de controlo de justificação 4 bits de controlo de justificação 4 bits de justificação E E E E MUX E2 E2

Classes de Códigos para Controlo de Erros 2 Codificação de canal Detecção Correcção Bloco Bloco Convolucionais Verificação de paridade CRC Cheksum Binários Não binários TCM Convolucionais Binários Códigos Turbo Hamming BCH Reed Solomon

Códigos de blocos 3 A mensagem a transmitir é dividida em blocos de k símbolos. Cada bloco de k símbolos da mensagem é codificado num bloco de n símbolos (palavra de código), com n>k código de blocos (n,k). Os símbolos adicionais são designados por símbolos de paridade. n-k símbolos Símbolos de paridade k símbolos Símbolos da mensagem palavra de código com n símbolos Um código de blocos é: Binário, se os símbolos forem bits Linear, se a adição (XOR) de quaisquer duas palavras de código válidas, resulta numa palavra de código válida Cíclico, se um desvio circular de qualquer palavra de código válida, resulta numa palavra de código válida

Códigos de blocos (cont.) 4 Tipicamente é utilizada a notação vectorial, Mensagem m = (m m 2.m k ) Palavra de código c = (c c 2..c n ) A redundância introduzida pelo código é quantificada pela taxado código (code rate) Taxa do código = k/n i.e., quanto maior for a redundância, menor é a taxa do código (mas maior é o número de erros que podem ser detectados ou corrigidos) Para um código de blocos (7,4): Comprimento da mensagem k = 4 Comprimento da palavra de código n = 7 Taxa do código = 4/7 m = (), c = (), por exemplo

Distância de Hamming 5 A distância de Hamming entre duas palavras de código, é o número de diferenças entre bits correspondentes. A distância de Hamming d(, ) é 2 pois = (dois s) A distância de Hamming d(, ) é 3 pois = (três s) A distância de Hamming mínima de um código, d min, é a mais pequena distância de Hamming entre todos os pares de palavras do código.

Exemplo: código (5,2) 6 Mensagem Código (5,2) Palavra de código d min = 3 Qual a d min de um código de paridade?

Número de Erros Detectáveis 7 É possível detectar qualquer situação de a s erros desde que a distância de Hamming mínima de um código de blocos seja: d min = s + (É possível a detecção de situações com mais de s erros, mas não todas.)

Número de Erros Corrigíveis 8 É possível corrigir qualquer situação de a t erros desde que a distância de Hamming mínima de um código de blocos seja: d min = 2t + (É possível efectuar-se a correcção em algumas situações com mais de t erros, mas não todas.)

Exemplo: código (7,4) 9 No. Mensagem Código No. Mensagem Código 8 9 2 3 4 2 5 3 6 4 7 5

Exemplo: código (7,4) (cont.) Palavras de código 2 ` t = d min = 3 Território de Qualquer palavra desta coluna será descodificada como Todas as palavras de 7 bits

Limite de Hamming 2 Num código (n,k) existem 2 k palavras de código distintas (as que se podem transmitir), sendo no entanto possível receber 2 n palavras distintas (todas as que se podem formar com n bits) Para se poderem corrigir até t erros, a distância mínima do código deve ser 2t + O número total de palavras existentes em cada esfera, incluíndo a palavra de código no seu centro, é t n t n i i i i (i é o número de bits em que uma dada palavra difere da palavra de código) O número total de sequências de n bits que deverá existir para que possam ser corrigidos até t erros, é: 2 k t i n i

Limite de Hamming (cont.) 22 Mas o número total de sequências é 2 n, pelo que: 2 k t i n i 2 n t i n i 2 ( nk ) No. de bits redundantes Limite de Hamming Um código que verifica a igualdade é designado por código perfeito (mas isto não significa ser o melhor!) O limite de Hamming é uma condição necessária (mas não suficiente) para a existência de um código (n,k) com a capacidade para corrigir t erros

Exemplo 23 Questão: Será possível construir um código (,7) com capacidade para corrigir todas as situações de erro? 3 2 R: Não é possível.

Limite de Gilbert 24 O limite de Hamming impõe um limite inferior ao número de bits redundantes (n-k) necessários para que um código de blocos linear (n,k) consiga corrigir t erros. O limite de Gilbert, indica um limite superior do número de bits redundantes necessários para se conseguir corrigir t erros. 2t i n i ( ) 2 n k Limite de Gilbert

Questões a resolver no processo de codificação 25 Como seleccionar as 2 k palavras de código a partir das 2 n sequências possíveis, de modo a garantir a maior distância mínima para o código resultante? Exemplo: Como obter as 6 palavras do código (7,4) representado no slide 7? Será necessário armazenar toda a tabela de codificação? Necessário processos eficientes de codificação e de descodificação

26 Códigos detectores de erros

Exemplos 27 Miquelina Pereira Oliveira Asdrúbal Oliveira * Pancrácia Pereira Oliveira S. Sebastião da Pedreira * Lisboa Olivais * Lisboa //98 SOL.,7 4/9/2

Classes de Códigos para Controlo de Erros 28 Codificação de canal Detecção Correcção Bloco Bloco Convolucionais Verificação de paridade CRC Cheksum Binários Não binários TCM Convolucionais Binários Códigos Turbo Hamming BCH Reed Solomon

Representação de sequências binárias através de polinómios 29 Uma sequência de bits pode ser representada como um polinómio. O bit mais à direita (LSB) representa o termo de expoente ; o bit seguinte representa o termo de expoente, etc. Se um bit tiver valor, o termo correspondente do polinómio é eliminado.

Códigos Cíclicos ( Cyclic redundancy check - CRC) 3 Seja M(x) o polinómio correspondente à mensagem, e G(x) um polinómio conhecido pelo codificador e pelo descodificador (polinómio gerador). Exemplo: m=() M(x)=x 9 + x 8 + x 6 + x 4 + x 3 + x + G(x) = x 4 + x + Nos códigos CRC, os bits redundantes são determinados de modo a que a representação em polinómio da palavra de código resultante - T(x) - seja divisível pelo polinómio gerador G(x). No exemplo anterior: c=() bits redundantes A detecção dos erros é feita pelo receptor dividindo a palavra recebida pelo polinómio gerador: Se o resto for zero, conclui (bem ou mal) que não houve erros. Se o resto não for zero, conclui (e bem) que houve erros.

Algoritmo de geração dos códigos CRC 3 ) Seja M(x) a mensagem a transmitir e G(x), o polinómio gerador (de grau m). 2) Obter M(x). x m (corresponde a acrescentar m bits à direita da mensagem). 3) Efectuar a divisão (módulo 2) de M(x). x m por G(x). 4) Adicionar o resto da divisão p(x) a M(x). x m, obtendo-se T(x).

Exemplo 32 ) m=() M(x)=x 9 + x 8 + x 6 + x 4 + x 3 + x + 2) M(x). x 4 G(x) = x 4 + x + grau 4 3) M(x). x 4 G(x) p(x) 4) T(x) = M(x). x 4 p(x) c=()

Capacidade de detecção de erros 33 Os erros podem ser representados como uma sequência binária em que o nível lógico indica a ocorrência de um erro. Exemplo: sequência de bits enviada c = sequência de bits recebida r = sequência de erro e = r = c e A sequência de erros também pode ser representada na forma polinomial E(x) Os erros não são detectáveis se E(x) for divisível por G(x) Demonstração: T r (x) = T(x) E(x) (sequência recebida com erros) T r (x) / G(x) = [T(x) E(x)] / G(x) = = [T(x) / G(x)] [E(x) / G(x)] Se E(x) fôr divisível por G(x), então T r (x) também é!

Exemplo 34 Quais dos seguintes polinómios geradores garantem a detecção de erros únicos? a) g(x)=x+ b) g(x)= x 3 c) g(x)= Resolução: A ocorrência de um erro único pode ser representada pelo polinómio x i em que i indica a posição do erro. a) Como x i nunca pode ser divisível por x+, garante-se a detecção de qualquer situação de erros únicos b) Se i 3, x i é divisível por g(x); só é possível detectar erros nas posições, ou 2. c) Todos os valores de i tornam x i divisível por g(x)=, não sendo possível detectar qualquer situação de erro.

Polinómios Geradores Normalizados (standards internacionais) 35

Classes de Códigos para Controlo de Erros 36 Codificação de canal Detecção Correcção Bloco Bloco Convolucionais Verificação de paridade CRC Cheksum Binários Não binários TCM Convolucionais Binários Códigos Turbo Hamming BCH Reed Solomon

Cheksum 37 Método de detecção de erros usado por vários protocolos da Internet (IP, TCP, UDP, ) Suponha-se que se pretende transmitir uma sequência de 5 números, cada um representado com 4 bits, enviando-se também o resultado da sua adição. Como exemplo, se a sequência de números for (7,, 2,, 6), envia-se (7,, 2,, 6, 36), onde 36 é o resultado da soma dos números. O receptor efectua a mesma adição, e compara os resultados; se coincidirem assume que não ocorreram erros, aceita os 5 números e descarta a soma. Para simplificar a tarefa do receptor, em vez de se enviar o resultado da soma dos números, envia-se o seu simétrico (checksum), i.e., (7,,2,,6,-36). Neste caso, a soma de todos os números incluindo a checksum deve dar. Como -36 não pode ser escrito em 4 bits, representa-se o seu complemento para 5 (-36 + 3x5 = 9).

Exemplo 38 Neste exemplo a informação é dividida em palavras de 4 bits.

Cheksum - Codificação 39. A mensagem é dividida em palavras de 6 bits. 2. Somam-se as palavras e transforma-se o resultado numa palavra de 6 bits (wrapped sum). 3. Aplica-se o complemento para um ao resultado, obtendo-se a checksum. 4. A checksum é enviada com os dados.

Exemplo 4 Mensagem: + --------------------------------- + --------------------------------- + ---------------------------------- + ---------------------------------- + --------------------------------------- Checksum

Cheksum - Descodificação 4. A mensagem (incluindo a checksum) é dividida em palavras de 6 bits. 2. Somam-se as palavras e transforma-se o resultado numa palavra de 6 bits (wrapped sum). 3. Aplica-se complemento para um ao resultado. 4. Se o resultado der, conclui-se não terem ocorrido erros.

Notas finais 42 Existem vários tipos de códigos para correcção ou detecção de erros. A escolha do(s) código(s) a usar, deverá ter em conta: O tipo de erros esperados (rajadas vs. uniformes) A possibilidade de se efectuarem retransmissões A taxa de erros (BER) esperada A complexidade (custo, atraso) associada aos processos de codificação e descodificação O acréscimo de banda necessária para a transmissão