Re: CRC, which error patterns can be detected?




"Jyrki Lahtonen" <lahtonen@xxxxxx> wrote in message
news:da2oha$1k7o$1@xxxxxxxxxxxxxxxxx
> Abelliae wrote:
>
> > Not so.
> > They are different binary numbers and depend upon frame size.
> > You assumed a frame size. Which one must to make any sence out of the
> > problem.
> > And then filled in with zeros, which reduces the problem to simple
binary
> > division.
> > CRC stands for cyclic reduncance check, named for the way it is
calculated
> > using shift registers, not error patterns.
> >
> Sigh. In my not so humble opinion the only way the OP's
> question made sense is the following: <problem> Suppose a
> message 'm' is being sent together with the 3 bit crc 'r'.
> These are concatenated to form a frame f=m|r. Due to
> transmission errors we receive f+e instead of f,
> where e is one of alternatives (cyclically shifted within
> the frame or not). Determine for each candidate e, whether
> the error is detected or not? </problem>

the operator "+" in f + e is "exclusive or" not "or" and not "and".

> Now the computation of the crc check is linear,

CRC uses "exclusive or", with "many to one" mapping.

> so f+e
> is a valid message, if and only if e (with zeros filled in)
> is a valid message (assuming that we don't do the standard
> tricks avoiding an acceptable all zeros frame).

f, f+e, and e all valid messages must have same remainders to be undetected.

> So the
> question CAN be answered with the knowledge of e alone.
> IOW the question is: Is 'e' an undetected error pattern
> or not?


>
> Yes, I know what a shift register sequence is. Do you know
> that a shift register simply computes a polynomial remainder
> (when the input sequence is treated as a polynomial and
> that is divided by the feedback polynomial)?

.....and.......

>
> The valid frames are the ones divisible by the feedback
> polynomial. Therefore an error pattern is undetected,
> if and only if it is divisible by the feedback polynomial
> itself.

not quite, need to seperate off the crc (r), and compair the r's.
View the encoding as seperating the entire message class into subclasses
(the number of different crcs) by the different remainders (r)
The error pattern is undetected if the errors remap the message back into
the same subclass (same remainder, same crc value)
ie, the remainders need to be different to detect errors.

>As the feedback polynomial (or check polynomial,
> whichever you want to call it) doesn't have x as a factor,
> e is divisible by the feedback polynomial, if and only if
> e shifted (iow multiplied by a power of x) is divisible.

Perhaps a way to state it is if e is divisible by fb polynomial with crc or
r of all zero, then it is an undetected error, as the final message r would
not change. (assuming f = m|r and (f+e)=m2|r (same r here) where m and m2
are two valid data in same crc subset, same crc or (r)) I have no problem
with shifting the error pattern around, if frame is loaded with all zeros.

>
> Cheers,
>
> Jyrki


.



Relevant Pages

  • Re: CRC, which error patterns can be detected?
    ... CRC is calculated on frame boundries, not on error pattern boundries. ... CRC codes are also prime, so simple division of error pattern and CRC is just wrong. ... In that case it does not matter, whether the error pattern occurs at the end of the frame, at the beginning, or in the middle. ...
    (sci.math)
  • Re: CRC, which error patterns can be detected?
    ... >> CRC is calculated on frame boundries, not on error pattern boundries. ... Will your CRC code detect an error? ...
    (sci.math)
  • Re: CRC, which error patterns can be detected?
    ... They are different binary numbers and depend upon frame size. ... is a valid message. ... Is 'e' an undetected error pattern or not? ... I know what a shift register sequence is. ...
    (sci.math)
  • Re: crc on only data or including the address
    ... >For that i am implementing ethernet packet generator in the fpga. ... >am sending 64 bytes of frame from the fpga with the most significand ... Actually, what is sent is the FCS, which is bit reversed ... >2) Is CRC implemented on only data or on whole frame? ...
    (comp.arch.fpga)
  • Re: Suggestions for custom application-layer protocol?
    ... CRC is detected, the end of the first frame is known and it can now be ... The slave only needs to be able to ... updated CRC accumulator must be compared with the two most recently ...
    (comp.os.linux.embedded)