02-05-2009 03:24 PM
Hello,
I am working on the GPS toolkit and I want to change the sampling rate of the GPS data being created and generated. I suppose its 1.5Mhz in the current programming example but I want to increase it to some other value for my application.
1. Is the sampling rate same as the IQ rate mentioned in the GPS write waveform to file.vi programming example?
2. If yes, can it be changed and where?
Eagerly waiting for a reply.
Regards,
Arpi
02-05-2009 03:45 PM
I also read in the GPS Receiver testing document provided by NI that the hardware connected (NI PXie 5672) streams GPS data sampled at 1.5 MS/s (IQ) from disk at a total data rate of 6 MB/s. So what is the sampling rate of the GPS data now? I am confused.
Please help.
Arpi
02-05-2009 10:53 PM
Hi Arpi,
The IQ rate is internally set to 1.5 MS/s. This should not be changed. 1.5 MS/s is kind of a low value chosen in order to keep the amount to data created to be at minimum. It is a valu that is pretty close to the nominal GPS chip rate plus the doppler. Higher value could have created much larger data and hence the larger files.
One alternative may be for you to create the file first and then later get the data out of the file and resample it to a value you want using software resampler available in Modulation Toolkit or even the signal processing library. By the way, the IQ data stored in the file is in an I16 interleaved forma.
Please do let me know if you have any questions.
By the way, out of curiosity, may I ask why do you want to change the IQ Rate?
Regards,
Sastry
02-05-2009 11:01 PM
Hi Arpi,
The IQ Rate is 1.5 MS/s. This means the complex samples I1+jQ1, I2+jQ2,.... are sampled at 1.5 MS/s. So when a complex sample is generated, effectively 2 real samples (I and Q) are generated. Each real sample (i.e I, Q) is 2 bytes (I16).
Hence effective data rate will be (1.5 M )x (2 real samples) x (2 bytes per real sample) = 6 MBytes /s
Please do let me know if I could explain clearly or if answered your question.
Regards,
Sastry
02-07-2009 10:36 PM
Hi Sastry,
Thank you for the information provided. I tried the way you've suggested (create the file first and then later get the data out of the file and resample it ...) but I face the following errors:
Not enough memory to complete the operation
LabVIEW: memory is full
I cannot decrease the file size cause it is generated based on the almanac and ephemeris data. So what I can do in order to change the sampling rate ? I really need this for matching it with the sampling rate of my application.
Regards,
Arpi
02-08-2009 12:10 AM
Hi Arpi,
I am guessing that you are trying to read the whole file at one time. This couldc ause such "Memory Full" problem. Hence, my suggestion would be to read chunks out of the original file, convert the I16 interleaved data into complex (I+jQ) data, resample it, convert it into I16 interleaved data and store it into a different file to be used in your application. Does it sound feasible? Storing in I16 format will significantly reduce the size of your file.
Please do let me know if the above helps.
Regards,
Sastry
02-10-2009 11:53 PM
Hi Arpi,
Please do let us know if your problem is solved.
Regards,
Sastry
02-12-2009 11:14 AM
Hi Sastry,
Thanks for your concern. My problem is now solved.
Best Regards,
Arpi
02-12-2009 09:45 PM
Hi Arpi,
Awesome. Thanks for letting me know. Would mind sharing information on how you solved it? Would be a good feedback to me.
Regards,
Sastry
02-18-2009 02:43 PM
Hi Sastry,
Sorry for my late reply. Ok, I have done the resampling the way you've siggested but with some slight implementation changes. After reading the chunk of data I'm separating them using decimate array so that I'll have 2 bytes of I and 2 bytes of Q all stored in separate places. Then if I want to resample I and Q I need to convert them into waveforms separately then resample because the existing resampler in the LAbVIEW doesn't work with the I+jQ complex data input. That's it 🙂
Regards,
Arpi