• Nenhum resultado encontrado

CODIFICAÇÃO PARA CONTROLO DE ERROS

N/A
N/A
Protected

Academic year: 2021

Share "CODIFICAÇÃO PARA CONTROLO DE ERROS"

Copied!
42
0
0

Texto

(1)

Sistemas de Comunicações

CODIFICAÇÃO PARA

(2)

Sistema para transmissão de voz

c c A/D A/D A/D . . . CF CC MUX Codificação de Linha Modulador Meio de Transmissão R R Meio de Transmissão Transdutor (Microfone) Interface

Interface Desmodulador CC-1 DEMUX

CF-1 D/A D/A Transdutor (Auscultador) . . . Sinal de voz Sinal de voz Lacete de assinante Central Lacete de assinante (Cod. Linha)-1 Filtro Igualador CF – Codificador de Fonte CC – Codificador de Canal R – Repetidor Qual a forma mais eficiente de codificar as mensagens geradas pela fonte? Como codificar as mensagens para que o receptor possa detectar/corrigir os erros de transmissão?

(3)

Sistemas de Comunicações

Introdução

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.

(4)

Áreas de aplicação

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)

(5)

Sistemas de Comunicações

Codificação para

detecção

de erros

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:

(6)

Exemplo –

Códigos de paridade

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 1 na

sequência de k+1 bits resultante seja par (paridade par) ou ímpar (paridade ímpar).

Simples de implementar (operações XOR)

Exemplo (paridade par):

Bits de informação: 00011010

Palavra de código: 000110101

Só detecta erros se estes ocorrerem em número ímpar.

(7)

Sistemas de Comunicações

Exemplo –

Códigos de paridade (cont.)

Tabela de codificação para um código de paridade (4,3)

Informação Palavra de código 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0

(8)

Exemplo –

Códigos de paridade no SDH

B1, B2eB3: usados para detecção de erros, ao nível de “blocos”de bits B3 (POH – Cabeçalho de caminho)

(9)

Sistemas de Comunicações

Codificação para

correcção

de erros

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

uni-direccional.

Dois tipos principais de códigos:

 Códigos de blocos

 Códigos convolucionais

(10)

Exemplo –

Códigos de repetição

Codificação: 0 ==> 000 1 ==> 111

Palavra recebida: 011. Qual foi a palavra transmitida?

 cenário A: 111 com erro na 1a. posição

 cenario B: 000 com erros na 2a. e 3a. posições

Descodificação: aplica lógica de maioria

 Decisão na descodificação: 011 ==> 111

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

(11)

Sistemas de Comunicações

Relembrar … Estrutura da Trama E2

... ... ... ...

SAT

Transporta 120 canais de 64 kbit/s; fb=8448 kbit/s

50 4 bits 52 4 bits 52 4 bits 51 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 MUX E2 E2 E1 E1 E1 E1

(12)

Classes de Códigos para Controlo de Erros

Codificação de canal

Correcção

Bloco Convolucionais

Binários Não binários

BCH Convolucionais Binários Códigos Turbo Reed Solomon TCM Hamming Detecção Verificação de paridade CRC Cheksum Bloco

(13)

Sistemas de Comunicações

Códigos de blocos

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.

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

Símbolos da mensagem Símbolos de

paridade

n-k símbolos k símbolos

(14)

Códigos de blocos (cont.)

Tipicamente é utilizada a notação vectorial,

Mensagem m = (m1 m2….mk)

Palavra de código c = (c1 c2……..cn)

A redundância introduzida pelo código é quantificada pela

taxa do 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

(15)

Sistemas de Comunicações

Distância de Hamming

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(000, 011) é 2 pois 000 011 = 011 (dois 1´s)

A distância de Hamming d(10101, 11110) é 3 pois 10101 11110 = 01011 (três 1´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.

(16)

Exemplo: código (5,2)

Código (5,2)

Mensagem Palavra de código 00 11 01 10 00000 01011 10101 11110

d

min

= 3

(17)

Sistemas de Comunicações

Número de Erros

Detectáveis

É possível detectar qualquer situação de 1 a s erros desde que a distância de Hamming mínima de um código de blocos seja:

d

min

= s + 1

(18)

Número de Erros

Corrigíveis

É possível corrigir qualquer situação de 1 a t erros desde que a distância de Hamming mínima de um código de blocos seja:

d

min

= 2t + 1

(É possível efectuar-se a correcção em algumas situações com mais de t erros, mas não todas.)

(19)

Sistemas de Comunicações

Exemplo: código (7,4)

No. Mensagem Código No. Mensagem Código

0

0000

0000000

8

0001

1010001

1

1000

1101000

9

1001

0111001

2

0100

0110100

10

0101

1100101

3

1100

1011100

11

1101

0001101

4

0010

1110010

12

0011

0100011

5

1010

0011010

13

1011

1001011

6

0110

1000110

14

0111

0010111

7

1110

0101110

15

1111

1111111

(20)

Exemplo: código (7,4) (cont.)

t =1 dmin = 3 0000000 1101000 0110100 1011100 1110010 0011010 1000110 0101110 1010001 0111001 1100101 0001101 0100011 1001011 0010111 1111111 0000001 1101001 0110101 1011101 1110011 0011011 1000111 0101111 1010000 0111000 1100100 0001100 0100010 1001010 0010110 1111110 0000010 1101010 0110110 1011110 1110000 0011000 1000100 0101100 1010011 0111011 1100111 0001111 0100001 1001001 0010101 1111101 0000100 1101100 0110000 1011000 1110110 0011110 1000010 0101010 1010101 0111101 1100001 0001001 0100111 1001111 0010011 1111011 0001000 1100000 0111100 1010100 1111010 0010010 1001110 0100110 1011001 0`10001 1101101 0000101 0101011 1000011 0011111 1110111 0010000 1111000 0100100 1001100 1100010 0001010 1010110 0111110 1000001 0101001 1110101 0011101 0110011 1011011 0000111 1101111 0100000 1001000 0010100 1111100 1010010 0111010 1100110 0001110 1110001 0011001 1000101 0101101 0000011 1101011 0110111 1011111 1000000 0101000 1110100 0011100 0110010 1011010 0000110 1101110 0010001 1111001 0100101 1001101 1100011 0001011 1010111 0111111

Todas as palavras de 7 bits

Palavras de código

“Território” de 0000000

(21)

Sistemas de Comunicações

Limite de Hamming

Num código (n,k) existem 2kpalavras de código distintas (as que se

podem transmitir), sendo no entanto possível receber 2n 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 + 1

O número total de palavras existentes em cada esfera, incluíndo a

palavra de código no seu centro, é

(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, é:

1 0 1

               t i t i i n i n

         t i k

i

n

0 2

(22)

Limite de Hamming (cont.)

Mas o número total de sequências é 2n , pelo que:

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 ) ( 0 0 2 2 2 n k t i n t i k

i

n

i

n

                     

Limite de Hamming No. de bits redundantes

(23)

Sistemas de Comunicações

Exemplo

Questão: Será possível construir um código (10,7) com capacidade para corrigir todas as situações de 1 erro?

R: Não é possível. 3

2

11

10

1

1

10

0

10









(24)

Limite de Gilbert

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.

) ( 2 0 2 n k t i

i

n

          

Limite de Gilbert

(25)

Sistemas de Comunicações

Questões a resolver no processo de

codificação

Como seleccionar as 2k palavras de código a partir das 2n sequências

possíveis, de modo a garantir a maior distância mínima para o código resultante?

Exemplo: Como obter as 16 palavras do código (7,4) representado no

slide 17?

Será necessário armazenar toda a tabela de codificação ?

Necessário processos eficientes de codificação e de descodificação

(26)
(27)

Sistemas de Comunicações

Exemplos

Olivais * Lisboa

Miquelina Pereira Oliveira

Asdrúbal Oliveira * Pancrácia Pereira Oliveira

S. Sebastião da Pedreira * Lisboa

(28)

Classes de Códigos para Controlo de Erros

Codificação de canal

Correcção

Bloco Convolucionais

Binários Não binários

BCH Convolucionais Binários Códigos Turbo Reed Solomon TCM Hamming Detecção Verificação de paridade CRC Cheksum Bloco

(29)

Sistemas de Comunicações

Representação de sequências binárias

através de polinómios

Uma sequência de bits pode ser representada como um polinómio.

O bit mais à direita (LSB) representa o termo de expoente 0; o bit

seguinte representa o termo de expoente 1, etc.

Se um bit tiver valor 0, o termo correspondente do polinómio é

(30)

Códigos Cíclicos

( Cyclic redundancy check - CRC)

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=(1101011011) M(x)=x9+ x8 + x6 + x4 + x3 + x + 1

G(x) = x4 + x + 1

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=(11010110111110)

bits redundantes

A detecção dos erros é feita pelo receptor dividindo a palavra recebida pelo polinómio gerador:

(31)

Sistemas de Comunicações

Algoritmo de geração dos códigos CRC

1) Seja M(x) a mensagem a transmitir e G(x), o polinómio gerador (de

grau m).

2) Obter M(x). xm (corresponde a acrescentar m bits à direita da

mensagem).

3) Efectuar a divisão (módulo 2) de M(x). xm por G(x).

(32)

Exemplo

1) m=(1101011011) M(x)=x9+ x8 + x6 + x4 + x3 + x + 1 G(x) = x4 + x + 1 grau 4 2) M(x). x4 → 1101011011 0000 3) T(x) = M(x). x4 p(x) → c=(11010110111110) 1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 p(x) M(x). x4 G(x)

(33)

Sistemas de Comunicações

Capacidade de detecção de erros

Os erros podem ser representados como uma sequência binária em que

o nível lógico 1 indica a ocorrência de um erro.

 Exemplo: sequência de bits enviada  c = 1 1 0 1 0 1 1 0 1 1 1 1 1 0

sequência de bits recebida  r = 1 1 1 1 0 1 1 0 1 1 0 1 1 0 sequência de erro  e = 0 0 1 0 0 0 0 0 0 0 1 0 0 0

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: Tr (x) = T(x) E(x) (sequência recebida com erros) Tr (x) / G(x) = [T(x) E(x)] / G(x) =

= [T(x) / G(x)] [E(x) / G(x)]

(34)

Exemplo

Quais dos seguintes polinómios geradores garantem a detecção de erros únicos?

a) g(x)=x+1 b) g(x)= x3 c) g(x)=1

Resolução: A ocorrência de um erro único pode ser representada pelo polinómio xi em que i indica a posição do erro.

a) Como xi nunca pode ser divisível por x+1, garante-se a

detecção de qualquer situação de erros únicos

b) Se i  3, xié divisível por g(x); só é possível detectar erros nas

posições 0, 1 ou 2.

c) Todos os valores de i tornam xi divisível por g(x)=1, não

(35)

Sistemas de Comunicações

Polinómios Geradores Normalizados

(standards internacionais)

(36)

Classes de Códigos para Controlo de Erros

Codificação de canal

Correcção

Bloco Convolucionais

Binários Não binários

BCH Convolucionais Binários Códigos Turbo Reed Solomon TCM Hamming Detecção Verificação de paridade CRC Cheksum Bloco

(37)

Sistemas de Comunicações

Cheksum

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, 11, 12, 0, 6), envia-se (7, 11, 12, 0, 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,11,12,0,6,-36). Neste

caso, a soma de todos os números incluindo a checksum deve dar 0. Como -36 não pode ser escrito em 4 bits, representa-se o seu complemento para 15 (-36 +

3x15 = 9).

Método de detecção de erros usado por vários protocolos

(38)

Exemplo

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

1 1 1 1 0 0 0 0 0 1 1 0

(39)

Sistemas de Comunicações

Cheksum -

Codificação

1. A mensagem é dividida em palavras de 16 bits.

2. Somam-se as palavras e transforma-se o resultado numa palavra de 16 bits (wrapped sum).

3. Aplica-se o complemento para um ao resultado, obtendo-se a checksum.

(40)

Exemplo

Mensagem: 1000 0110 0101 1110 1010 1100 0110 0000 0111 0001 0010 1010 1000 0001 1011 0101 1000 0110 0101 1110 + 1010 1100 0110 0000 ---1 00---1---1 00---10 ---10---1---1 ---1---1---10 + 1 ---0011 0010 1011 1111 + 0111 0001 0010 1010 ---1010 0011 1110 1001 + 1000 0001 1011 0101 ---1 00---10 0---10---1 ---100---1 ---1---1---10 + 1 ---0010 0101 1001 1111 1101 1010 0110 0000 Checksum

(41)

Sistemas de Comunicações

Cheksum -

Descodificação

1. A mensagem (incluindo a checksum) é dividida em palavras de 16 bits.

2. Somam-se as palavras e transforma-se o resultado numa palavra de 16 bits (wrapped sum).

3. Aplica-se complemento para um ao resultado.

(42)

Notas finais

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

Referências

Documentos relacionados

A Corticeira Amorim (CA), apresenta uma estrutura repartida, na medida em que é constituída por um conjunto de UN semiautónomas (Amorim Revestimentos, Matérias

Sistemas de Representação Numérica e Operações; Representação de Números Binários em ponto fixo e em ponto flutuante; Códigos para dados não numéricos; Introdução a Detecção

O presente estudo objetivou demarcar a idade de segregação, por meio da variação radial da massa espe- cífica básica, caracterizar o comportamento de propriedades físicas no

1º O Programa de Dupla Diplomação em Curso de Graduação visa permitir a complementaridade dos estudos e a obtenção simultânea de diploma na Universidade Federal de

Passarão para a Segunda Fase os candidatos classificados com maiores pontuações dentro do limite máximo, de até 04 (quatro) vezes o número de vagas do curso, obedecendo ao critério

Rua Padre Manoel da Nóbrega, Dom Hélder Câmara, João Pinheiro, Tereza Cavalcante, Bernardino de Campos, Dom Hélder Câmara. e Rua Padre Manoel

Mestrado em: Nutrição Humana ou Nutrição Clínica ou Saúde Coletiva ou Ciências da Saúde ou Ciências ou Saúde ou Alimentos e Nutrição e Desenvolvimento na

O MINISTRO DE ESTADO DA EDUCAÇÃO, no uso de suas atribuições, CONSIDERANDO a necessidade de estimular a formação de mestres profissionais habilitados para desenvolver atividades