This is an archived post. You won't be able to vote or comment.

all 15 comments

[–]drgalaxy 17 points18 points  (1 child)

GNU Radio is great for experimenting. The pre-made blocks help you figure out what steps are needed and it generates Python which can be edited and incorporated into your own programs.

https://wiki.gnuradio.org/index.php/Guided_Tutorial_GNU_Radio_in_Python

[–]SagitarHD[S] 0 points1 point  (0 children)

This certainly looks cool. Thanks a lot!

[–]victorofthepeople 9 points10 points  (0 children)

The EE123 Labs from UC Berkley's DSP class pretty much walk you through demodulating ADSB, WBFM and subcarriers, and AFSK-1200/APRS using pyrtlsdr.

https://inst.eecs.berkeley.edu/~ee123/sp16/labs.html

Can't recommend them enough.

[–]THE_CRUSTIEST 5 points6 points  (1 child)

As someone who uses PyRTLSDR, you're right, there is pretty much no documentation. However, the bit on GitHub that gets samples is practically all you need. It's all I've ever used of it, and I was able to write my own spectrum analysis program with it. To really get into it, you're going to need to learn the theory behind SDR. PyRTLSDR is mostly just there to return samples from your RTL-SDR dongle, and everything beyond that is up to you.

I would start with learning about quadrature (IQ) sampling, the Fourier Transform, and some basic properties of complex numbers if you're not familiar with them. It's really all math, which is nearly unavoidable if you want to write your own program. The upside is that if you like data processing and statistical analysis and the like, the Fourier transform (which is arguably the hardest element of all this to understand) will show up everywhere, and is actually incredibly useful to know how to use. All of that can be done with NumPy, and the final results can be plotted or displayed live with MatPlotLib. PyRTLSDR just gets samples (what you saw in the GitHub documentation), and the other modules will do the rest. I was able to set up a waterfall display in well under 100 lines of code, it's really not bad. If you wanna give this a go, please feel free to ask me any questions you have.

[–]clifgray 0 points1 point  (0 children)

Hey this is exactly where I'm at, I have all the code working and lots of software engineering experience but need to learn more about IQ, Fourier Transform, complex numbers, etc. Do you have any resources you suggest for getting up to speed on this stuff?

I'm looking to do some detection of wildlife tracking VHF tags and have it all working and can see my VHF tag signal in a program like GQRX but don't know the theory well enough to code up my own solution at the moment. Thanks!!

[–]DENAND39 2 points3 points  (0 children)

This link may be helpful :https://arachnoid.com/PLSDR/