Calculating Checksum: Frame Length vs Generator Polynomial

AI Thread Summary
To compute the checksum for a frame with m bits, the frame must exceed the length of the generator polynomial G(x). This is because the encoding process involves appending r zeroes to the data bits, resulting in an encoded frame that consists of d bits of data plus an r bit remainder. The discussion clarifies that M(x), the polynomial representing the data, does not necessarily need to be longer than G(x) in terms of data bits alone. In certain scenarios, such as satellite communications, redundancy bits may outnumber data bits significantly, sometimes by a factor of two or three, to ensure reliability without relying on retransmission. Additionally, for magnetic media, there is a balance between bit density and redundancy, often employing Reed-Solomon error correction codes instead of CRC to maintain data integrity while maximizing user data density.
prashantgolu
Messages
50
Reaction score
0
To compute the checksum for some frame with m bits, corresponding to the polynomial M(x), the frame must be longer than the generator polynomial.
Why...?
 
Technology news on Phys.org
The encoded frame will be longer. If G(x) is a r+1 bit polynomial, then a polynomial modulo G(x) produces an r bit remainder. An encoded frame will consist of d + r bits, where d is the number of data bits to be encoded. The encode process appends r zeroes to the data to create a polynomial, then divides this poynomial by G(x) to produce a r bit remainder. The encoded frame then consists of d bits of data followed by the r bit remainder. Note that the number of data bits, d, can be just 1 bit.
 
Last edited:
I get it...but it says that M(x) should be longer than G(x)
i.e without encoding the data bits should be more than the generator polynomial...
(i think they are talking about the initial data bits and not after adding the check bits which it will obviously be longer than the generator polynomial as we are adding r bits to it in any case)
 
I updated my previous post to use your terminology with G(x).

prashantgolu said:
I get it...but it says that M(x) should be longer than G(x)
There's no rule that the number of data bits needs to be greater than the number of redundancy bits. You might want to check and make sure that M(x) doesn't mean an encoded message as opposed to the data portion of an encoded message.

It might waste space or bandwidth, but in some cases, such as communications from distant sattelites, where the time it takes for the message to travel between the Earth and the satellite makes it impractical to use a scheme that relies on status responses and re-transmission of data, there are more reduncancy bits than data bits for each message, perhaps 2 or 3 times as many reduncancy bits than data bits (a corrective code is used instead of crc).

For magnetic media, if the goal is to maximize effective user data density, there is a trade off between increasing bit density and increasing the redundancy required to support the increased bit density while maintaining some unrecoverable read error rate (usually 1 in 1014 for most computer peripherals). Usually some form of Reed-Solomon ecc code is used versus crc.
 
Last edited:
thanks a lot...it makes sense to have it that way :)
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...
Back
Top