i am trying to build complete tx and rx path which can support varies data rates. for example if my data rate have to support from 10 kbps to 1000 kbps. Can i keep the baseband processing fixed for all the data rates same. what i mean is using a CIC filter in tx and rx which always results in processing 4 samples/symbol. or should i use a resampler in the timing recovery which will result in the desired rate?

  • $\begingroup$ There are so many considerations to this Mark and many ways to approach it, notably the bandwidth of your channel, your SNR and path loss model and how complex you want to make your receiver. If you want to keep your receiver identical, then you can in simplest form just repeat bits to send at the lower rate. You will be better making use of data encoding for the lower rates and achieve higher SNR performance at the trade of receiver complexity. You can also change your modulation pattern for different rates. $\endgroup$ Jul 20, 2020 at 12:25
  • $\begingroup$ @Dan Ignoring SNR , bandwidth, and keeping the modulation fixed which method is better CIC or resampler? or is there any better method? $\endgroup$
    – mark
    Jul 20, 2020 at 12:51
  • $\begingroup$ CIC is a resampler. Is your question specific to approaches to resampling? Data rates aren't typically changed by resampling in any event - the data rate sampling is determined in the timing recovery of the receiver regardless of the sampling rate on the waveform. With lower symbol rates, you can resample the waveform to lower sampling rates, typically 2 samples per symbol or more, if that is what you are referring to? $\endgroup$ Jul 20, 2020 at 17:03
  • $\begingroup$ @Dan Probalby I should explain my issue with an example. Assuming 16 Msps sampling rate , If my symbol rate is 1 Mbps then i can downsample from 16 to 4 mbps so that my samples/symbol is 4. If my symbol rate is 10kbps then i can downsample from 16 Mbps to 40 kbps(400 times) so that my samples/symbol is 4. In this way i can maintain 4 samples/symbol for all data rates just by changing the CIC ratio.Is this the right way to change the CIC ratio or keeping the CIC ratio constant should i resample it in the timing recovery block so that the model can support all data rates? $\endgroup$
    – mark
    Jul 21, 2020 at 13:53

1 Answer 1


In general terms, it is usually advantageous to down-sample to the lowest sampling rate wherever possible- all things being equal it would be better to reduce to a lower sampling rate earlier in the receiver processing - for purposes of reducing resources required, power dissipation, etc.

The OP is using both a CIC and timing recovery block where the opportunity to change the symbol rate can be done in either location (for example to 4 samples per symbol in any case). Here the preferred approach would likely be in the CIC, to the extent that all subsequent blocks can run more efficiently, with the same performance metrics, at the lower sampling rate. If any such block would require or be improved with a higher sampling rate, then resampling further downstream would be preferred. This would be clear in the detailed implementation and specific to that. Also note that a CIC introduces a passband droop that may need to be compensated for. This can be easily implemented with a 3 tap FIR filter as I have demonstrated at this post.

how to make CIC compensation filter


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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