You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a (20MHZ ) bit stream of raw IQ data (form HackRf) coming in to my pipeline (its currently demodulating and recording all of the fm channels) and I want to take that same stream and individually shift it (like I do currently for the analog) then decimate and send it to nrsc5 for each digital channel that is present.
(in this example the sample is taken with the center at the frequency that I want to test so I don't need to 'slide' (shift_addition_cc) it. cat 20Mhz.sample.fom.hackrf.iq | csdr convert_u8_f | csdr fir_decimate_cc 92 0.01 HAMMING | csdr convert_f_u8 | ./nrsc5/src/nrsc5 -r - 0
But I don't get any output from nrsc5. This seems theoretically possible but I am not sure if the problem is a slightly different format of the IQ data or if I am not getting it to the exact sampling rate that nrsc5 is expecting. Please advise. Any help on this would be greatly appreciated.
The text was updated successfully, but these errors were encountered:
Correct, the input sample rate needs to be exactly 1488375. A decimation factor of 92 will give you 217391 instead, which is way off. Also, I believe the HackRF produces signed 8-bit samples, whereas RTL-SDR tools (including nrsc5) use unsigned 8-bit.
In case it's any more convenient for your use case, nrsc5's API (accessible from C or Python) has an nrsc5_pipe_samples_cs16 function that accepts signed 16-bit complex samples at 1488375/2 samples per second (i.e. half the rate that the command line tool uses).
Also, the Python command-line tool (cli.py) has an --iq-input-format option which allows you to choose between cu8 and cs16 formats. The sample rates are as above.
I have a (20MHZ ) bit stream of raw IQ data (form HackRf) coming in to my pipeline (its currently demodulating and recording all of the fm channels) and I want to take that same stream and individually shift it (like I do currently for the analog) then decimate and send it to nrsc5 for each digital channel that is present.
I have been playing around with trying this using CSDR (https://github.com/ha7ilm/csdr) something like this:
(in this example the sample is taken with the center at the frequency that I want to test so I don't need to 'slide' (shift_addition_cc) it.
cat 20Mhz.sample.fom.hackrf.iq | csdr convert_u8_f | csdr fir_decimate_cc 92 0.01 HAMMING | csdr convert_f_u8 | ./nrsc5/src/nrsc5 -r - 0
But I don't get any output from nrsc5. This seems theoretically possible but I am not sure if the problem is a slightly different format of the IQ data or if I am not getting it to the exact sampling rate that nrsc5 is expecting. Please advise. Any help on this would be greatly appreciated.
The text was updated successfully, but these errors were encountered: