III-2 Cyclic Redundancy Check

Documentos relacionados
III-2 Cyclic Redundancy Check

Codificação de Canal

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

Camada de Ligação de Dados

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

Tecnologias de Redes Informáticas (6620)

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

Processamento e Comunicação Multimédia

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

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

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

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

UNIDADE III Aula 6 Cálculo do CRC. Fonte: Othon M. N. Batista

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

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

Códigos concatenados. Entrelaçamento. entrelaçadores de blocos. entrelaçadores convolucionais. Exemplos de códigos concatenados e entrelaçados

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

Tolerância a Falhas 1

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

2. Execução do algoritmo de Huffman para construção de uma árvore binária (árvore de Huffman).

Redes de Computadores 1ª Colecção Exercícios diversos 2 de Novembro de 2006 Arquitecturas de comunicação, controlo de acesso ao meio

Redes de Computadores

Capítulo. 4-1 Equações lineares simultâneas 4-2 Equações de elevado grau 4-3 Cálculos de resoluções 4-4 O que fazer quando surje um erro

Modelos de Equações simultâneas

Segurança Informática em Redes e Sistemas

III-1 Códigos detectores e correctores de erros

Redes e Conectividade

Fundamentos de Redes de Computadores

Problemas de Valor Inicial para Equações Diferenciais Ordinárias

Representação de Informação -- Texto -- Representação de Informação. Representação de Caracteres

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for

Quadro de consulta (solicitação do mestre)

Combinatória e Teoria de Códigos

Método Simplex Especializado para Redes

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Lista 1 para a P2. Operações com subespaços

Redes Locais. Prof. Luiz Carlos B. Caixeta Ferreira

Introdução à Programação. João Manuel R. S. Tavares

Detecção e correcção de erros

Redes de Computadores II

Sistema de Numeração e Códigos. CPCX UFMS Prof. Renato F. dos Santos

Códigos Reed-Solomon CAPÍTULO 9

Prof. Marcelo de Sá Barbosa REDE DE COMPUTADORES

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo.

Sistemas de Apoio à Decisão

Medida de Grandezas Eléctricas

Processos Estocásticos

Análise de componentes independentes aplicada à avaliação de imagens radiográficas de sementes

Aula 2 Sistemas de Numeração (Revisão)

Especialização em Engenharia Clínica

Estudo da Constelação 16-QAM

Instituto Superior Técnico. 19 de Janeiro de Parte I

3 Camada de ligação de dados

Características. Conteúdo. Ligações. Tabela de Revisões

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

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

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I: MEMÓRIA EXTERNA RAÍ ALVES TAMARINDO RAI.TAMARINDO@UNIVASF.EDU.BR

DO ANALÓGICO AO DIGITAL: CONCEITOS E

Sistemas e Circuitos Eléctricos

Comunicação Dados: Conceitos e Evolução Prof. Valderi Leithardt Ulbra Canoas

Introdução ao MATLAB

Comunicação de Dados

Módulo 6 Conceitos Básicos sobre Ethernet

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de o Teste A

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

4 Sistemas de Equações Lineares

Camada Física. Camada Física

Aula 5 - Matemática (Gestão e Marketing)

Exercícios 1. Determinar x de modo que a matriz

Códigos cíclicos - Parte 2

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE : SÃO CAETANO DO SUL - SP - CEP:

Verificação e Validação em CFD

PARTE 1 (CONTROLE DE FLUXO)

Introdução ao Estudo da Corrente Eléctrica

Exercícios Adicionais

Roteamento e Comutação

LINGUAGEM C. Estrutura básica de um programa

Paralelismo a Nível de Instrução

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

CAPÍTULO 2. Grafos e Redes

PROJETO DE REDES

Compressão com perdas

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

24/Abril/2013 Aula 19. Equação de Schrödinger. Aplicações: 1º partícula numa caixa de potencial. 22/Abr/2013 Aula 18

CAPÍTULO 8 - DECISÃO: ELABORANDO A GESTÃO DE UM RECURSO NATURAL 68. Exercício: UTILIZAÇÃO SUSTENTÁVEL

Identificação por Dispositivos de Radiofrequência - RFID -

Sistema de Memórias de Computadores

Sistemas de Telecomunicações 1

Ficha de trabalho Redes locais

Fabio Bento

Transcrição:

III-2 Cyclic Redundancy Check 29 Dezembro de 2008 ISEL-DEETC- 1

Sumário 1. Códigos cíclicos 2. Polinómio gerador. CRC 1. Cálculo dos bits de paridade 2. Verificação dos bits de paridade 4. Divisão de polinómios 1. Utilização do MATLAB 5. Aplicações 6. Bibliografia ISEL-DEETC- 2

Códigos Cíclicos Os códigos cíclicos são uma sub-classe dos códigos lineares de bloco Linear: o vector nulo pertence ao código; a soma modular de duas palavras do código é ainda uma palavra do código Bloco: todas as palavras têm a mesma dimensão de n bits Nos códigos cíclicos tem-se que qualquer rotação cíclica de qualquer ordem sobre uma palavra de código é ainda uma palavra de código Exemplo: código de bit de paridade par,2 m 00 01 10 11 c 000 011 101 110

Códigos Cíclicos Os códigos lineares de bloco são estabelecidos pela matriz geradora G A partir de k palavras de código geram-se as 2 k palavras que constituem o código c é vector de dimensões 1x n; m é vector 1x k G é matriz k x n; c = m G No código cíclico todas as palavras c são geradas a partir do polinómio gerador g do código c = mg Todas as palavras de código são obtidas através do polinómio gerador

Códigos Cíclicos Tem-se c = mg em que: cx é a palavra de código polinómio de grau n-1 mx depende da mensagem polinómio de grau k-1 gx polinómio gerador de grau q As palavras de código c=[c n-1 c n-2. c 1 c o ] podem ser analisadas como polinómios: c = c n-1 n-1 + c n-2 n-2 +. +c 1 +c o O número de bits redundantes de paridade corresponde ao grau do polinómio gerador

Polinómio Gerador Determinado polinómio g de grau q é gerador de um código n,k, com q=n-k, caso seja factor de n +1 Ser factor de n +1 implica que resto 1 g n 0 Assim, a factorização do polinómio n +1 é importante, neste contexto Através desta factorização, conseguimos obter polinómios geradores para códigos de diferentes dimensões

Factorização de n +1 n +1 +1 Factorização =+1 2 ++1 Exemplos: +1, gera código,2 2 + +1, gera código,1 5 +1 =+1 4 + + 2 ++1 7 +1 =+1 + 2 +1 + +1 9 +1 =+1 2 + +1 6 + +1 +1, gera código 5,4 4 + + 2 ++1, gera código 5,1 + 2 +1 gera código 7,4 + +1 gera código 7,4......

Polinómios Geradores Código CRC4 Polinómio gerador g 4 + + 2 ++1 CRC7 7 + 6 + 4 +1 CRC12 12 + 11 + + 2 ++1 CRC16 16 + 15 + 2 +1 CRC-CCITT 16 + 12 + 5 +1 CRC2 2 + 26 + 2 + 22 + 16 + 12 + 11 + 10 + 8 + 7 + 5 + 4 + 2 ++1

Polinómios Geradores outros exemplos Polinómios Geradores

CRC Cyclic Redundancy Check Num código cíclico sistemático, as palavras têm a seguinte organização Os bits b, que constituem um polinómio de grau q-1 designam-se por CRC-Cyclic Redundancy Check A palavra de código é dada por resto g m m b m c q q q

CRC Cyclic Redundancy Check O CRC resulta do resto da divisão de polinómios entre: A mensagem deslocada de q bits para a esquerda O polinómio gerador do código CRC b m resto g q Dado que g tem grau q, resulta que b terá grau q-1, sendo constituído por q bits Assim, temos palavra de código com n bits k de mensagem e q de paridade

CRC Cyclic Redundancy Check Exemplo de cálculo do CRC para código 7,4 m= +1=[1 0 0 1] g= + 2 +1=[1 1 0 1] 1 resto 1 1 resto resto 2 6 2 g m b CRC q 1. 1 b m c 1 011] [10 01 1 6

CRC Cyclic Redundancy Check Exemplo de cálculo do CRC para código 7,4 m= +1=[1 0 0 1] g= + 2 +1=[1 1 0 1] 6 CRC b resto 2 1 Em MATLAB: uso da função deconv que realiza a divisão de polinómios 1 >> mq = [1 0 0 1 0 0 0]; >> g = [1 1 0 1]; >> [q, r] = deconv mq, g; >> modq,2 ans = 1 1 1 1 >> modr,2 ans = 0 0 0 0 0 1 1

CRC Cyclic Redundancy Check O descodificador, em modo de detecção calcula o síndroma s Dado que c=mg, tem-se que qualquer palavra de código é factor do polinómio gerador Seja y = c + e a palavra recebida, em que e é o padrão de erro Caso e seja nulo o síndroma é nulo Caso e seja não nulo o síndroma é não nulo e depende do valor de e 0 resto resto resto g g m g c g y s resto resto resto g e g e g m g y s

CRC Cyclic Redundancy Check Na descodificador temos divisão de polinómios Recorrendo ao MATLAB, podemos usar a função deconv Sejam c 6 1 g [10 01 011] [11 01] c s resto g 2 1 >> c = [1 0 0 1 0 1 1]; >> g = [1 1 0 1]; >> [q, s] = deconvc, g; >> mods,2 ans = 0 0 0 0 0 0 0 Síndroma nulo Ausência de erros

CRC Cyclic Redundancy Check Introduzindo 1 erro no penúltimo bit na palavra c temos y c e 6 1 6 1 [10 01 0 01] g 2 1 >> c = [1 0 0 1 0 0 1]; >> g = [1 1 0 1]; >> [q, s] = deconvc, g; >> mods,2 [11 01] ans = 0 0 0 0 0 1 0 Síndroma não nulo Erros detectados

CRC - Cyclic Redundancy Check Tipicamente é utilizado em modo de detecção de erros Quando a distância mínima do código for maior ou igual a, também pode ser usado em modo correcção Tipicamente temos um número reduzido de bits de paridade calculado para elevado número de bits de mensagem n >> q > 1 O CRC tem elevada capacidade de detecção de erros, especialmente de burst de erros rajada de erros Um burst ou rajada de erros define-se como um bloco contíguo de bits recebidos em erro; o primeiro e último bit distam B bits entre si, sendo B o comprimento do burst

CRC - Cyclic Redundancy Check Elevada capacidade de detecção de erros: todos os burst de dimensão q ou menor uma fracção dos burst de dimensão q+1; a fracção é 1-2 -q-1 uma fracção dos burst de dimensão superior a q+1; a fracção é 1-2 -q todas as combinações de d min ou menos erros todos os padrões com número ímpar de erros, quando o gerador tem número par de coeficientes não nulos Por exemplo, para o código CRC7 com g= 7 + 6 + 4 +1 temos todos os burst de dimensão 7 ou menor 1-2 -q-1 = 1-2 -7-1 = 98,44 % dos burst de dimensão 8 1-2 -q = 1-2 -7 = 99,22 % dos burst de dimensão superior a 8 todos os padrões com número ímpar de erros

Aplicações Norma Ethernet 802. Rede Local - LAN Usa CRC2 2 bits / 4 bytes para verificação da integridade da trama; g= 2 + 26 + 2 + 22 + 16 + 12 + 11 + 10 + 8 + 7 + 5 + 4 + 2 ++1 O campo FCS-Frame Check Sequence no header da trama tem sempre 2 bits, independentemente da dimensão da trama A dimensão máxima da trama é 1518 bytes 12144 bits

Aplicações Norma Ethernet 802. g= 2 + 26 + 2 + 22 + 16 + 12 + 11 + 10 + 8 + 7 + 5 + 4 + 2 ++1 Existem sempre 2 bits de paridade A trama tem dimensão mínima e dimensão máxima; esta última é 1518 bytes 12144 bits; temos um código n, n-2 Análise da distância mínima em função da dimensão da trama n n d min 007 12144 4 01-006 5 204-00 6 124-20 7 90-12 8 Fonte: J. Moreira and P. Farrell, Essentials of Error- Control Coding, 2006, John Wiley and sons. [Pág. 9]

Aplicações Codificador de fonte WinRar Usa CRC2 para verificação da integridade de cada ficheiro comprimido Antes de descomprimir o ficheiro, verifica a integridade do ficheiro comprimido cálculo do síndroma CRC2

Bibliografia Folhas de apoio A. Ferreira, Códigos detectores e correctores de erros, disponível na página da unidade curricular http://www.deetc.isel.ipl.pt/sistemastele/cm/ Livro J. Moreira and P. Farrell, Essentials of Error-Control Coding, 2006, John Wiley and sons. 22