I'm very new to RTL-SDR and signal processing in general, but have managed to get my device (NOOELEC NESDR Mini) working and data into Python (via the pyRTLSDR library).
I am able to output a complex-valued array of predefined length. I understand these are the I/Q values. The distribution of these values is what I'm interested in for now (rather than applying FFT and whatever comes after).
In a given sample, I found that the distribution of both the real and the imaginary parts of the array formed a truncated normal:
I had some questions regarding this:
- How do I interpret the noise that is on top of these I/Q values?
- Why are the values truncated between -1 and 1? Is the limitation of being inside the unit circle just a hardware thing, or a theoretical thing?
- Can I extract just the noise from these values to get an array of true random numbers?
Further, can someone point me towards some literature so I better understand this initial step of the process?
Note that the SDR settings were left as default except the centre frequency, which is tuned to a local FM station:
# configure device sdr.sample_rate = 2.048e6 # Hz sdr.center_freq = 107.6e6 # Hz sdr.freq_correction = 60 # PPM sdr.gain = 'auto'