I have sampled RF wireless packets as IQ samples file, those RF packets has patterns like preamable|syncword|data|crc , I'm doing cross correlation with my constant syncword (after I did the demodulator in order to convert the IQ samples ) and I see in matlab the peak of correlation where there's sync word in my packets, Im now trying to decode those RF packets which I want to decide if the packets that I received are valid or not valid.

what should I do in order to decide if the packet is valid or not?? maybe it's related to CRC but how can I decide if the packet is valid or not? what I have done and arrived to this stage : I did cross correlation with my syncword and I see the peak of corelation of syncwords !

Anyone could help me by the flowchart what should I do in order to decide if my received packet are valid or not valid? thanks

CRC/SYNCWORDS in the transmitter are constants ..

  • 1
    $\begingroup$ Since you have the CRC and you can decode the packet, why not derive the CRC locally and compare it with the received one? (assuming that one is not corrupted). This would only detect if the received packet is differnt than the transmitted one. $\endgroup$ – A_A Jun 21 '20 at 10:46
  • $\begingroup$ if I understand you well you mean, if I transmit CRC : 010101 for instance, then I check the CRC of the received packet, if they are the same then valid , otherwise not valid , right? second questions, how could I derive the CRC locally from IQ samples data file (you can assume it's a BIG vector 1X10K )? is there any function that could derive the CRC locally from IQ SAMPLES DATA FILE? thanks . in addition I didn't understand you what do you mean by decode the packet , I detected it by cross correlation where syncword found ... but I didn't derive the whole packet locally .. how can I do that $\endgroup$ – LiamLony Jun 21 '20 at 10:57
  • $\begingroup$ @A_A I hope you understand me :) $\endgroup$ – LiamLony Jun 21 '20 at 11:53
  • $\begingroup$ Yes, that is how you do CRC checks. But not through the IQ data. You first have to demodulate the IQ, so that your have the bits (or bytes) that make up the packet and then apply the CRC. Have a quick look here first. $\endgroup$ – A_A Jun 22 '20 at 10:49
  • $\begingroup$ @A_A I need to calculate the CRC in my received packet, how can I calculate that? I mean the in the recieved packet I need to calculate the CRC in order to compare with what I transmit (the fixed CRC that I sent in my transmitter is constant but in the received packet I need to calculate it) . $\endgroup$ – LiamLony Jun 22 '20 at 14:04

CRC is a "definite" indicator of the channel impacting the bits and error in received symbol. So deploying a CRC check would definitely help. Length of CRC would depend on the overall system and data packets.


Not the answer you're looking for? Browse other questions tagged or ask your own question.