Cyclic Redundancy Check function
12 views (last 30 days)
Hello, I tried writing two functions to perform CRC, one for a sender and the other for a receiver.
The reference I used is the CRC example on Matlab website: Perform Cyclic Redundancy Check - MATLAB & Simulink - MathWorks United Kingdom
I attatched 4 files, the file called 'FullCode' has the whole code that performs the CRC for sender and receiver.
'crcSend' is the function that reads the data that has to be transmitted from a text file and generates the required CRC code.
'crcReceive' is the function that verifies whether the data transmitted is correct or not.
'message.txt' has the binary data.
I am unsure why when running crcReceive, I am getting that the remainder is not equal to zero, which means a data transmission error has ocurred, even though the code is equal to the code in 'FullCode', which when running, does give me remainder = 0 and hence no data transmission error.
Appreciate any insight on this.
Askic V on 11 Apr 2023
As far as I can see, crcreceive.m is missing a portion of code present in the FullCode
divisor = bitshift(divisor,messageLength-divisorDegree-1);
divisor = bitshift(divisor,divisorDegree);
That is why divisor variable has different values in for loop in FullCode comparing to the for loop in crcReceive.m file.
So, naturally, the results would be different.