2011-09-01 16 views
6

Sto cercando di capire CRC e mi sto confondendo su come calcolare il 'divisore'.Calcolo del divisore CRC

Nel example on wikipedia il divisore è 11 (1011) per l'ingresso del 11010011101100

11010011101100 000 <--- input left shifted by 3 bits 
1011    <--- divisor (4 bits) = x³+x+1 
------------------ 
01100011101100 000 <--- result 

Come viene calcolato il divisore? In questo esempio (x³ + x + 1) x è 2? Da dove vengono i 2?

+2

Il divisore in binario è solo i coefficienti del suo polinomio. 'x^3 + x + 1' è uguale a' 1 * x^3 + 0 * x^2 + 1 * x + 1 * 1'; leggere i cofficients per ottenere 1-0-1-1 – Nemo

risposta

1

Dalla sezione "matematica del CRC" dello stesso wikipedia inizia "Analisi matematica di questo processo di divisione simile rivela come scegliere un divisore che garantisce una buona error- proprietà di rilevamento. " Questa è la chiave per farlo. Alcuni divisori sono migliori di altri, quindi è sufficiente trovarne uno standard e usarlo di solito.

Nella parte inferiore di questa pagina sono descritti alcuni dei diversi CRC utilizzati e il polinomio che definisce i loro divisori.

0

E 'scritto nella frase successiva @wikipedia:

Se il bit di ingresso al di sopra del bit più a sinistra divisore è 0, non fare nulla. Se il bit di input sopra il bit del divisore più a sinistra è 1, il divisore è XORed nell'input.

che significa:

1101 xor 1011 => 0110 
-2

Il divisore in binario è solo i coefficienti del suo polinomio. x^3 + x + 1 = 1 * x^3 + 0 * x^2 + 1 * x + 1 * 1; leggere i cofficients per ottenere 1 0 1 1

             maninder singh walia walia