Hacker News new | past | comments | ask | show | jobs | submit login
PySDR: A Guide to SDR and DSP Using Python (pysdr.org)
207 points by sohkamyung on Oct 12, 2020 | hide | past | favorite | 21 comments



Well done, Dr. Lictman. I’ve been doing DSP professionally since the 80’s and have written my share of demods, filters, equalizers, on DSP chips, PCs, main frames, single board computers in half a dozen or more languages. This is one of the finest one-stop descriptions of DSP I have ever seen. This covers nearly everything I studied for my BSEE and MSEE degrees. If anyone is itching to learn DSP, you can’t go wrong here if you really study this material.


Thank you!!! Really glad to hear it's proving to be useful. I made an account just to reply to that =P -Marc


The docs look super well organized indeed. Great job!


Intro to DSP, no prerequisite math really: https://greenteapress.com/wp/think-dsp/


Actually that book was one of my primary inspirations for pysdr. I told myself- what if I made something like this that was specific to wireless comms/SDR, but also just used numpy/scipy directly instead of attempting to create a python package out of it. Because if you jump to any random part of the book, it feels like the author is just trying to get you to use code from his repo (I realize the point of the books is to have you build the code up from scratch). But yeah it's a great book, especially for folks interested in doing audio or other non-RF stuff.


I would recommend all Green Tea Press books.

https://greenteapress.com/wp/


This looks quite good. Does anyone know of a similar hands-on DSP textbook, ideally using IPython or R notebooks, but more oriented towards audio applications?

Clearly, most of this text will be useful for both, but as someone who has started getting more into sound engineering as a hobby, I'm always interested in good resources.


[1] is a little concerning. Is there really no safe harbor for low-power educational applications?

[1] https://pysdr.org/content/pluto_advanced.html#transmitting-o...


In real life if you are really transmitting low power, not blasting signals all over the spectrum at power, and not interfering with other (people’s) devices, you are probably fine. It’s not like the FCC drives a test van all over the country just to catch uncertified tiny transmitters. But if you do interfere and got reported, the FCC will probably follow up and shut you down.


That's kind of a problem, right? [1]

How is the US going to "beat China in 5G" if people doing DSP research have to worry about stepping on legal landmines like this.

[1] https://moxie.org/2013/06/12/we-should-all-have-something-to...


Where does this sit in relation to gnuradio? Is it an alternative? A supplement?


Last I checked GNURadio allows you to import raw Python blocks to run on your signal. There shouldn't be anything stopping you from using this library inside of GNURadio, however you can also get away with not using GNURadio at all given how indepth this library is. So the answer is, it can be both. It could be super useful in conjunction with GNURadio when first decoding a protocol in order to really understand the signal you've captured, and then you can script it in Python sans GNURadio to automate the signal interpretation.


Can I ask about the performance of the library?


As far as I understand this book, he only uses standard scientific stack Python (numpy+scipy+matplotlib) to do all of the signal processing part. `pyadi-iio` is only used to interface Python with PlutoSDR hardware for data acquisition


Yep it's an alternative, for those getting started. My book doesn't actually involve using/creating a python library, so it's more of a tutorial type of thing. GNU Radio is great if you are doing a streaming-style RF app. It's also great if you want to share your app or individual blocks with others. It's not as good if your app is more packetized than streaming, or if you need GUI elements that don't come with GNU Radio. But if the only GUI you need is time/freq plots or waterfall/spectrograms, and various inputs, GNU Radio will save you a lot of time.


From the "About the Author" section

> Marc is also one of the leads for the GNU Radio project, an open source SDR framework that is widely used in academia and defense related research. While Python is great for learning, rapid experimentation, and development, it does not lend itself well to large and computationally complex apps. GNU Radio can act as a good stepping stone for more advanced DSP apps, and a GNU Radio app or individual block is very easy to share with others.


Yep! Feel free to join us on Matrix https://chat.gnuradio.org/ if you want to chat GNU Radio


Can this exercise be done with something other than PlutoSDR?


Yes, All you need is a python wrapper for your SDR and scientific Python stack (NumPy, matplotlib, SciPy, ...)


Woah, wish I had this for my CubeSat GroundStation.


A good python library for RTL-SDR users: https://pypi.org/project/pyrtlsdr/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: