05-10-2012 11:13 PM
Today I do some tests and tunning on the USRP packet-based link examples, and I find these questions:
First I set the following parameters to the Packet Transmitter.vi: Tx frequency=2441M, samples per symblol=8, sample rate=800k, then the symbol rate should be 100k
Then I set the Rx frequency to 2441=M and do three tests to the USRP packet receiver.vi:
1. set the samples per symbol to 8, the sample rate to 800k, all the packets can be received correctly very fast.
2. set the samples per symbol to 40, the sample rate to 4M, all the packtes can be received correctly, but slower than the former test.
3. set the samples per symbol to 50, the sample rate to 5M, all the packets can be received correctly, but much slower than the former two tests.
4. set the samples per symbol to 40, the sample rate to 5M, but change the sample rate to 4M when input the argument to the resample&demod_shell.vi, then I find that no packets can be received correctly.(According to my understanding, resampling the data with 4M sample rate should make the input data time-aligned)
Can anyone help me interprete above test? Thanks in advance!
05-24-2012 07:08 PM
You are correct. If you sample at 5MS/s and have a samples/sym of 40, resampling with a sample rate of 4MS/s will allow you to receive the signal. Digging into the sub_resample_and_demodulate.vi, I found the issue. The modulation toolkit resample VI that is being used pulls the sample rate of the incoming signal from the incoming waveform (or the dt of the incoming waveform). In the resample and demodulate subvi, the dt of the incoming signal was hard wired to be 1/x of the desired sampling rate. For all other uses cases, having these 2 parameters hard wired together does not cause a problem, but for the 4th case you described it does. I edited the subvi like shown in the image below and was able to get it working:
Hope that helps and let me know if you have any further questions. I'll do my best to get you an answer.
05-30-2012 09:54 PM
Thank you very much Sarah.
Here is a further question. What is the function of sub_NoiseEst_And_Chop.vi? I read the code of the vi, find that it chops packets according to the power of the signal. I try that if I remove this subvi, and demodulate the packet without chopping, the demodulated bits may be incorrect. According to my understanding, chopping only changes the length of the packets to be demodulated, so just affect the length of the bitstream outputed by the demodulator. So why is this happen?
05-31-2012 08:57 PM
06-01-2012 05:17 AM
Yeah, Thank you !
Originally I thought that the noise est vi may be used to promote the effeciency. However, when I modify the code to demodulate GFSK signals, I find that when I use the noise_esti and chopping function, the signal can be demodulated correctly. When I remove the function, the singnal cannot be demodulated correctly, I don't know why.