III-2 Cyclic Redundancy Check



Documentos relacionados
III-2 Cyclic Redundancy Check

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

Detecção de erros de comunicação de dados CRC

III-1 Códigos detectores e correctores de erros

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

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

II-6 Análise de ruído e capacidade de canal

4 Nível de Ligação de Dados

Detecção e correcção de erros

Tolerância a falhas como produzir o serviço correcto na presença de falhas

Códigos cíclicos - Parte 2

CAPÍTULO 2 SISTEMAS DE NUMERAÇÃO E CÓDIGOS

Sistemas de Telecomunicações 1

Ficha de Exercícios nº 2

Exercícios de Álgebra Linear

CODIFICAÇÃO PARA CONTROLO DE ERROS

Sistemas Digitais Ficha Prática Nº 7

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Sistemas xdsl

Natureza da Informação Semana 7: Erros

é um grupo abeliano.

1.2. Grandezas Fundamentais e Sistemas de Unidades

. B(x 2, y 2 ). A(x 1, y 1 )

Fundamentos de Telecomunicações

Camada de Ligação de Dados

TOKEN RING & TOKEN BUS

Códigos de blocos lineares. Outubro de 2017

Prof. Michel Sadalla Filho

Decomposição em Fracções Simples

Codificação de Canal

FILAS DE ESPERA 256 kbit/s 75% 4000 bits kbit/s 512 kbit/s 384 kbit/s 256 octetos 384 kbit/s 512 kbit/s 2048 kbit/s

Fundamentos de Telecomunicações

7. Funções de Lógica Combinacional. 7. Funções de Lógica Combinacional 1. Somadores Básicos. Objetivos. Objetivos. Circuitos Digitais 03/11/2014

Matemática Discreta. Leandro Colombi Resendo. Matemática Discreta Bacharel em Sistemas de Informações

PROVA Duração da prova: 120 minutos

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

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Câmpus Ponta Grossa. Coordenação do Curso Superior de Tecnologia em. Automação Industrial

Sistemas Numéricos. Tiago Alves de Oliveira

A camada de Enlace. Serviços e Protocolos

Circuitos de Apoio. UEM/CTC Departamento de Informática Curso: Ciência da Computação Professor: Flávio Rogério Uber

Árvores UFES. Teoria dos Grafos. CC/EC/Mestrado

MANUAL DO USUÁRIO SIMPLEX. Prof. Erico Fagundes Anicet Lisboa, M. Sc.

Introdução a Tecnologia da Informação

3 Determinantes. 2 Definição Número de trocas de ordem de um termo de uma matriz. 3 Definição Determinante de uma Matriz ( ( ))

Os dados quantitativos também podem ser de natureza discreta ou contínua.

ÁLGEBRA BOOLEANA- LÓGICA DIGITAL

Exercícios de Revisão Redes de Computadores Edgard Jamhour. SSL, VPN PPTP e IPsec

TRANSDUTOR DE ENERGIA ELÉTRICA

Actividade de enriquecimento. Algoritmo da raiz quadrada

Departamento de Matemática da Universidade de Coimbra Álgebra Linear e Geometria Analítica Engenharia Civil Ano lectivo 2005/2006 Folha 1.

Disciplina Fundamentos de Redes. Introdução à Mascara de Subrede

Introdução à Aritmética Modular. George Darmiton da Cunha Cavalcanti CIn - UFPE

Sendo o polinômio P(x), de grau quatro e divisível por Q(x) = x 3, o resto de sua divisão por D(x) = x 5 é

Eng.º Domingos Salvador dos Santos.

Arquitetura de Computadores I

Tabelas. Primitivas imediatas

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

Circuitos Lógicos Capítulo 2 Sistema de Numeração e Códigos

Professor: André Rabelo Curso: Engenharia da Computação Disciplina: Lógica Digital Período: 3º Data Entrega: 21/03/2012 Valor: 15 pts Objetivos:

Códigos cíclicos - Parte 1

Prof. Daniel Oliveira

UNIVERSIDADE FEDERAL DO PARANÁ ENGENHARIA ELÉTRICA. Codificação de fala PCM & ADPCM

Redes de Computadores. Prof. André Y. Kusumoto

6.1 Arranjos (arrays)

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DA RESPESCAGEM DO 2 o TESTE

TUTORIAL MATLAB Victor Breder 2016

Circuito Decodificador BCD para Display de Sete Segmentos

Teoria dos Números. A soma de dois números pares é sempre um número par. O produto de dois números pares é sempre um número par.

Método Simplex Revisado

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

Aritmética Computacional. Prof. Leonardo Barreto Campos 1

BIOESTATÍSTICA. Parte 1 - Estatística descritiva e análise exploratória dos dados

Auto-esboço e Auto-pele pelo Misturograma

a) 2 b) 3 c) 4 d) 5 e) 6

BC-0504 Natureza da Informação

Teoria da Informação: o legado de Shannon

1. Números. MatemáticaI Gestão ESTG/IPB Departamento de Matemática. Números inteiros. Nota: No Brasil costuma usar-se: bilhão para o número

BC 0208 Fenômenos Mecânicos. Experimento 2 - Roteiro

A. Equações não lineares

Parte da Física que estuda o comportamento de sistemas físicos sujeitos a forças. Figura 5.1: Exemplo de equilíbrio estático. ~F i = ~0 (5.

Resolução: P(i) = 2. (i) 4 (i) 3 3(i) 2 + (i) + 5 = 2 + i i + 5 = i. Resolução: Resolução:

Manual Balanças Blue One. Balança BLUE ONE. Manual do Usuário. Vendas: Revisão 1 Página: 1

Códigos Corretores de Erros

Projecto Delfos: Escola de Matemática Para Jovens 1 TEORIA DOS NÚMEROS

SISTEMAS DIGITAIS MEMÓRIAS E CIRCUITOS DE LÓGICA PROGRAMÁVEL

Universidade Federal do ABC Disciplina: Natureza da Informação Lista de Exercícios 02 Códigos e conversão A/D Prof. João Henrique Kleinschmidt

Agrupamento de Escolas Júlio Dantas Escola Básica Tecnopolis

Módulos Combinatórios

Gabarito de Matemática do 6º ano do E.F.

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

Transcrição:

III-2 Cyclic Redundancy Check 1 Dezembro de 2010 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 7. Exercícios 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 m c 00 000 Exemplo: código de bit de paridade par,2 01 011 10 101 11 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 queresto 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 c s resto Recorrendo ao MATLAB, podemos usar a função deconv g Sejam c 6 1 g [10 01 011] [11 01] 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 ans = 0 0 0 0 0 1 0 Síndroma não nulo Erros detectados [11 01]

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 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 C. Meneses Ribeiro, Comunicação de Dados, disponíveis 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

Exercícios Considere o polinómio gerador g = 4 + + 2 + + 1 de código 10,6. a Apresente a palavra de código c, quando a mensagem é 1 0 0 0 0 1. b A palavra 1111111111 pertence ao código? Considere o polinómio gerador g = ++1 do código 7,4. a Quais das palavras 0000000, 1011000 e 0000011 pertencem ao código? b Apresente todas as palavras de código. ISEL-DEETC- 2

Exercícios Suponha uma transmissão digital em que são enviados os bits de informação 1010. Considere que o controlo de erros é realizado através de CRC com polinómio gerador g = + + 1. a Apresente a sequência binária transmitida. b Provoque um erro nesta sequência binária e ilustre o funcionamento da detecção de erros. Quanto tempo demora a transmissão de um ficheiro com 1 024 000 bytes, considerando a utilização de modulação 16-QAM, com tempo de símbolo Ts =10 μs, nos cenários: a ausência de códigos detectores e correctores de erros? b detecção de erros com código CRC7, estabelecido por g = 7 + 6 + 4 + 1, aplicado a blocos de mensagem com dimensão 1024 bits? ISEL-DEETC- 24