Detecção e correcção de erros

Documentos relacionados
Fundamentos de Telecomunicações

Fundamentos de Telecomunicações

III-1 Códigos detetores e corretores de erros

III-1 Códigos detetores e corretores de erros

III-1 Códigos detetores e corretores de erros

III-1 Códigos detectores e correctores de erros

Sistemas de Telecomunicações 1

Códigos de blocos lineares. Outubro de 2017

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

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

CODIFICAÇÃO PARA CONTROLO DE ERROS

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

Códigos cíclicos - Parte 2

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

Capítulo 3. A camada de enlace de dados

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

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

Mensagem descodificada. Mensagem recebida. c + e

Códigos cíclicos - Parte 1

Codificação de Canal

Redes de Computadores

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

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)

Redes de Computadores

Redes de Computadores. Prof. André Y. Kusumoto

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

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

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

COM29008 LISTA DE EXERCÍCIOS #

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

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

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

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

Teoria da Informação ( ) Exame de Recurso ( ) Resolução ( ) ( ) 2log2. log log

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

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

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 Espaços Vectoriais

Camada de Enlace de Dados

Funções Polinomiais com Coeficientes Complexos. Quantidade de Raízes e Consequências. 3 ano E.M. Professores Cleber Assis e Tiago Miranda

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

Ficha de Exercícios nº 1

III-2 Cyclic Redundancy Check

de erros Exercícios E S T i G

BC-0504 Natureza da Informação

Camada de Ligação de Dados

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

Corrigindo erros por meio de códigos lineares

Lista de Exercícios. Camada de Enlace de Dados

Definição: Uma função de uma variável x é uma função polinomial complexa se pudermos escrevê-la na forma n

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

Análise Complexa e Equações Diferenciais 1 ō Semestre 2016/2017

ESPAÇO VETORIAL REAL. b) Em relação à multiplicação: (ab) v = a(bv) (a + b) v = av + bv a (u + v ) = au + av 1u = u, para u, v V e a, b R

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO LEEC EXERCÍCIOS DE ÁLGEBRA

III-2 Cyclic Redundancy Check

Análise e Processamento de Bio-Sinais. Mestrado Integrado em Engenharia Biomédica. Sinais e Sistemas. Licenciatura em Engenharia Física

Polinômios de Legendre

3 a Lista para auto-avaliação (com um exercício resolvido)

(x 1, y 1 ) (x 2, y 2 ) = (x 1 x 2, y 1 y 2 ); e α (x, y) = (x α, y α ), α R.

Cálculo Numérico / Métodos Numéricos. Solução de equações polinomiais Briot-Ruffini-Horner

Aulas práticas de Álgebra Linear

Parte 1 - Matrizes e Sistemas Lineares

12/06/14. Estatística Descritiva. Estatística Descritiva. Medidas de tendência central. Medidas de dispersão. Separatrizes. Resumindo numericamente

Organização e Arquitetura de Computadores I

Polinômios (B) 4 (C) 2 (D) 1 3 (E). 2

Nota importante: U é a matriz condensada obtida no processo de condensação da matriz

Curso Satélite de. Matemática. Sessão n.º 1. Universidade Portucalense

x 1 + b a 2 a 2 : declive da recta ;

(Ciência de Computadores) 2005/ Diga quais dos conjuntos seguintes satisfazem o Princípio de Boa Ordenação

Princípios de Telecomunicações. PRT60806 Aula 20: Códigos de Linha Professor: Bruno Fontana da silva 2014

Capítulo 7. Expressões e Sentenças de Atribuição

Transcrição:

elecomunicações II Codificação - Detecção e correcção de erros o Quando existe um canal de comunicação bidireccional, o receptor poderá requerer a retransmissão da informação que continha erros. o Esta estratégia é chamada de Automatic Repeat Request (ARQ), sendo bastante utilizada em redes de computadores. o Quando a retransmissão é impossível ou impraticável, o controlo de erros deverá utilizar um código corrector de erros. Esta estratégia é denoada Foward Error Correction (FEC). o Uma solução para a transmissão de informação sobre um canal ruidoso é o emprego de repetição. Cada bit da mensagem é representado por uma palavra de código com n bits iguais. o Se a probabilidade de erro for P e =a, se os erros de transmissão ocorrerem de um modo aleatório e independe, a probabilidade de ocorrência de i erros em n bits será: P onde n i n i i n i ( i, n) = α ( α ) α seα << n = i i! n! ( n i) n =! ( n )...( n + i ) o O facto de se considerar a<< pode não ser suficiente. Embora a=, satisfaça a condição, é uma probabilidade de erro inaceitável para sistemas de comunicação digital. i!

elecomunicações II Codificação - Detecção e correcção de erros (cont.) o Códigos de repetição e de paridade Código de tripla repetição Num código com tripla repetição com as palavras de código e, todas as outras palavras recebidas, como ou, indicam claramente a presença de erros. Para a detecção de erros sem correcção, qualquer palavra diferente de ou corresponde a um erro. Os erros simples e duplos numa palavra são detectados, mas os erros triplos resultam em erros não detectados com probabilidade: P we = P 3 ( 3,3) = α Os erros simples são correctamente corrigidos, mas os erros duplos e triplos resultam em erros com probabilidade: P we = probabilidade de ocorrência de 3 erros, a 3 + probabilidade de ocorrência de erros, existem 3 hipóteses, 3a (-a) P we = α 3 + 3 ( α ) = 3α 3α α P e =a é a probabilidade de erro sem codificação, no entanto, este ganho é obtido com a redução a /3 do ritmo de transmissão.

elecomunicações II Codificação - 3 Detecção e correcção de erros (cont.) o Códigos de repetição e de paridade (cont.) Paridade A paridade de uma palavra binária é par quando existe um número par de s, caso contrário terá paridade ímpar. A palavra de código é constituída por n- bits de informação e um bit escolhido de modo que a paridade das palavras de código seja a mesma. Para n=3 e paridade par as palavras válidas são,,, sendo o último bit o bit de paridade. A correcção de erros neste caso não é possível. Os erros simples, triplos e com um número ímpar de erros são detectados enquanto os erros duplos passam despercebidos. Se a<<, a probabilidade de ocorrência de um erro duplo é muito maior do que num erro quadruplo. A probabilidade de haver um erro não detectado numa palavra de código com paridade com n bits será então: P we P (, n) ( n ) n α

elecomunicações II Codificação - 4 Detecção e correcção de erros (cont.) o Códigos de repetição e de paridade (cont.) Paridade (cont.) Um outro método que permite correcção de erros é colocar k bits numa tabela quadrada onde são utilizados k bits de paridade. m m m 3 c m 4 m 5 m 6 c m 7 m 8 m 9 c 3 c 4 c 5 c 6 Um erro de transmissão num bit faz com que a paridade falhe numa coluna e numa linha, estando o erro na intersecção. Com este método podem ser detectados e corrigidos erros simples e detectados erros duplos.

elecomunicações II Codificação - 5 Detecção e correcção de erros (cont.) o Distância de Hamg A distância de Hamg ( X Y ) d, entre duas palavras X e Y é definida como o número de diferentes elementos. = Y = então d ( X, Y ) =. Se X ( ) e ( ) A distância mínima d de um código é a mais pequena distância de Hamg entre duas palavras de código válidas. A detecção de erros é sempre possível quando o número de erros de transmissão numa palavra de código é menor que d. Se número de erros é maior ou igual a d, a palavra com erros pode corresponder a palavras válidas e os erros não são detectados. Detecta até l erros por palavra d l + Corrige até t erros por palavra d t + Corrige até t erros e detecta l>t erros por palavra d t + l + A tripla repetição tem d = 3, ou seja pode detectar l 3 = erros por palavra e pode corrigir t ( 3 ) = erros por palavra. O desempenho de um código depende do número de bits adicionados à palavra de código para controlo de erros. Um código de bloco (n,k) é constituído por k bits de informação e n-k bits de paridade A distância mínima deste código é limitada por n k d. + A eficiência do código (n,k) é R c k n

elecomunicações II Codificação - 6 Códigos de bloco lineares o Representação matricial de códigos de bloco Um código de bloco (n,k) consiste em palavras de n bits e k bits de informação. Como existem k mensagens com k bits e n palavras com n bits, a estratégia da codificação de bloco é escolher as k palavras de modo a que a distância mínima seja a maior possível. O código terá de ter também uma estrutura que facilite o processo de codificação e descodificação. Consideremos uma palavra de código representada por: X = ( x x... ) onde x, x,..., x n são digitos binários. x n Um código é linear se incluir o vector zero e se a soma de duas palavras de código produz outra palavra de código: X + Z = ( x z x z... ) x n z n O peso do vector X, w(x), é o número de elementos diferentes de zero de X. A distância de Hamg de dois vectores de código X e Z será: ( X, Z ) = w( X Z ) d +

elecomunicações II Codificação - 7 o Representação matricial de códigos de bloco (cont.) A distância mínima é igual ao peso mais baixo excluindo o vector zero: d [ w( X )] (... ) = X Um código sistemático consiste em palavras onde os primeiros ou últimos k elementos são idênticos aos bits da mensagem. Os restantes n-k elementos são bits de verificação X = ( m m m c c... ) onde q=n-k.... c k q Podemos escrever os vectores de código na forma: X = ( M C) onde M é o vector da mensagem de k bits e C é o vector de q bits de verificação. Um código de bloco sistemático (n,k) pode ser obtido através da multiplicação de matrizes. X = MG

elecomunicações II Codificação - 8 o Representação matricial de códigos de bloco (cont.) G é a matriz geradora k n com a estrutura: [ I P] G k onde I k é uma matriz identidade k k e P uma matriz k q de digitos binários. p p P = M pk p p p M k......... p p p q q M kq A matriz identidade G reproduz o vector mensagem, enquanto a matriz P gera o vector de verificação C. C = MP A multiplicação binária da matriz segue as regras da adição em módulo : c j = m p m p... m j j k p kj para j=,,...,q. Cada um dos elementos destas matrizes terá o valor ou.

elecomunicações II Codificação - 9 o Códigos Hamg Um código Hamg é um código de bloco linear (n,k) com q 3 bits de verificação e n = q k = n q A eficiência do código será: R c k n q = = n n = q Independentemente de q a distância mínima é d = 3. O código pode ser utilizado para correcção de erros simples ou detecção de erros duplos. Para a construção de um código Hamg sistemático fazemos com que as k linhas da matriz P que consistem em q bits tenham dois ou mais s arranjados de qualquer modo.

Codificação - elecomunicações II o Códigos Hamg (cont.) exemplo Consideremos um código Hamg sistemático com q=3, n= 3 -=7 e k=7-3=4 com matriz geradora: G = Com ( m m m ) c c c M = obtemos: = m m = m = m m m 3 4 m 3 3 m m m 4 4 M C w(x) M C w(x) 3 3 4 3 4 4 3 4 3 3 4 3 4 4 7 O peso mais baixo não zero é 3 confirmando que d =3.

Codificação - elecomunicações II o Síndroma da descodificação Se Y for o vector recebido quando é transmitido o vector X, qualquer erro de transmissão resulta em X Y. Um método para a detecção de erros é a comparação de Y com todos os vectores de código. Este método implica k comparações. Associado a qualquer código de bloco (n,k) sistemático e linear existe uma matriz H q n denoada matriz de verificação de paridade: H P = I q onde H é a matriz transposta de H e I q é uma matriz identidade qxq. = (... ) XH desde que X pertença ao conjunto dos vectores de código válidos. Se houver um erro de transmissão o resultado tem pelo menos um valor diferente de zero. A matriz síndroma S é definida como S = YH Se S for igual a zero, não houve erros de transmissão ou então Y é igual a um outro vector de código e como tal o erro é não é detectável.

Codificação - elecomunicações II o Síndroma da descodificação (cont.) Se houve um erro de transmissão Y = X + E e X = Y + E Substituindo Y = X + E em S = YH ( X + E) H = XH + EH EH S = = A matriz síndroma S depende do erro e não do vector de código transmitido. Exemplo H P = P = = I q Consideremos o código Hamg do exemplo anterior. Se houver um erro no primeiro bit, = S =. E [ ], [ ] E S Se existir um erro duplo com = [ ] S = YH = EH = [ ], a tabela de síndroma E, assume que houve um erro simples da forma E =. [ ] A palavra descodificada Y+E contém três erros, dois erros de transmissão e um erro introduzido pelo sistema de correcção de erros.

Codificação - 3 elecomunicações II o Códigos cíclicos Um código para um sistema FEC (Foward Error Correction) deverá ser capaz de corrigir t erros por palavra. Deverá ter também uma eficiência de código razoável. Os códigos cíclicos são uma subclasse dos códigos de bloco lineares com uma estrutura cíclica que levam a uma implementação mais prática. Consideremos um vector de código com n bits X = ( x x... x x ) n n Se X for ligado a um registo de deslocamento com realimentação: X ' = X '' = ( x ) x... x x x n n 3 n ( x x... x x x x ) n n 3 Esta propriedade cíclica pode ser tratada associando ao vector de código o polinómio X n n n n ( p) = xn p + xn p +... + x p + x A potência de p assinala a posição dos bits na palavra de código.

Codificação - 4 elecomunicações II o Códigos cíclicos (cont.) Um código (n,k) é definido por um polinómio gerador da forma G q q = x + g x + + g x q... + onde q=n-k. Os coeficientes são calculados de modo que G(p) é um factor de x n +. Cada palavra de código corresponde ao produto polinomial X = Q G M onde Q M (x) representa um bloco de k bits de informação. Para um código ser sistemático X q = p M + C Igualando estas duas expressões obtemos: Q q G = x M C M + q x M G = Q M C + G Esta expressão indica que C(x) é igual ao resto da divisão de x q M(x) por G(x). C q x M = resto G ( ) x

Codificação - 5 elecomunicações II o Códigos cíclicos (cont.) A operação de divisão é facilmente implementada por registos de deslocamento. Após k ciclos o registo de deslocamento contém os q bits de verificação. Para um vector Y a matriz síndroma é deterada por: S Y = resto G ( ) x Se Y(x) for um código polinomial válido, então a matriz síndroma será zero.

Codificação - 6 elecomunicações II o Códigos cíclicos (cont.) Exemplo Consideremos o código Hamg (7,4) 3 gerado por G = x + x +. Se a mensagem for M = ( ), o polinómio da mensagem será: M x q M = x 3 + x 3 3 6 5 = x ( x + x ) = x + x dividindo por G(x) x 6 + x 5 + + + + + x 6 + x 6 + x 6 + + x 4 + x 3 x 3 + x + x + + x 5 + x 4 + x 5 + + x 3 + x + x 4 + + x x 4 + + x + x + + + x + O polinómio de código completo será 3 6 5 = x M + C = x + x x X + o que corresponde à palavra de código X = ( )