OK all, big crowd today. A warm welcome to all of you who came over via RTL-SDR.com, and to everyone else. I'm Dan, a staff writer here at Hackaday, and I'll be the mod today for Dr. Marc Lichtman as we dive into Learning SDR and DSP!
Welcome, Marc! Can you tell us a little about your background to start us off?
My name is Marc Lichtman and I wear three different hats- 1) I'm an adjunct prof at University of Maryland, within the CS dept, where I teach a course on hands-on SDR, 2) I'm one of the leads for the GNU Radio project, a free and open source SDR framework, and 3) I'm a research engineer at Perspecta Labs as my full time gig where I do a lot of SDR, machine learning, and spectrum sensing related work.
www.pysdr.org, to help teach DSP and SDR concepts in a hands-on and less mathy way, compared to traditional textbooks on the topics. It uses Python for all code examples, and there are some PlutoSDR-specific exercises. And it's based off what I learned teaching my course at UMDI recently put together a free online textbook,
I think that coders and CS students shouldn't feel like they can't dive into DSP and SDR just because they didn't go through a EE graduate program =P
I went through an EE graduate program.. I WISH they went this far... ;)
a large fraction of the actual work being done in DSP/SDR (and jobs), requires good coders, like your typical CS students
hah yeah, you have to be a EE grad student, specializing in wireless/DSP
How do you find the CS students reacting to a hardware topic that at first seems out of the typical CS wheelhouse?
I mean there might be an intro to comms class at the undergrad level, but that's about it
well, the CS students I had didn't have any experience related to the topics, so they needed to be slowly introduced in a hands-on way, that involved a lot of code examples and exercises
it's very foreign to them
luckily, even though an SDR is hardware, what you actually do with it is mostly software
My daughter is studying this for her PhD in Electronics Engineering at Stanford
What's going to be the next great development in SDR? I know I'm seeing it appear in Amateur radio equipment.
ah very nice
What math background did they have at the point they came into your class?
Which is partly why I want to learn about it
I started reading your book and haven't gotten very far yet, but so far you did an excellent job!
Not sure what the next great development is, depends if you are looking at low cost SDRs, or like space-hardened, or stuff focusing on hams
I second that!
but usually ham stuff is at lower sample rates, and it's all about the antenna, from my little xp
so you dont need like the latest and greatest SDR that can do 200 MHz instantaneous bw
What SDR platforms do you use and what can you recommend?
As far as math bg, my course wasn't too mathy so what they had was enough
@Marc Lichtman I have no actual use case. I just like to learn :)
HF bands for hams are not covered very well with existing hardware
I personally spend most of my time with the lower cost SDRs, so your PlutoSDRs and USRP B200/B210
Can you give an overview of what the status of DSP and SDR hardware is? Up to what frequency do they go? When does it make sense to drop a classic hardware implementation for a software defined one?
yeah you need the downconverters like ham-it-up, right?
@Marc Lichtman I believe that is correct.
I have a HackRF and love it... However, there are some Chinese radios that give you the IQ output..
depends how much money you spend, but up to 6 GHz center freq is a common one, because of the mass produced RFICs used in the low-cost SDRs
wow, that high?
For the current crop of RTL-SDR type dongles, yes. But IIRC there are some purpose-built SDRs for the ham bands that don't need downconverters.
remember you have the SDR's RF freq range, and then also it's sample rate range (which is the same as it's bandwidth range)
that works for receive, but there is no equivalent for transmitting - no ham it down :)
hah yeah someone needs to make that
but if you look at what makes an SDR hard to build, its the upper RF freq range, not lower, from what Ive seen
and obviously higher sample rates will cost more
your Plutos and USRP B200's do up to 56 MHz, but there are SDRs that do up to 200 MHz or even higher
RTL-SDRs will always be limited by the chip they are based on, to 2 GHz RF, and 2.4 MHz sample rate, I believe
Sorry for not reading all of your book before this hack chat.. So hopefully our questions are not going to be redundant...
so like for $10 you get 2.4 MHz sample rate, and for $200+ you get 56 MHz
oh I wouldn't expect anyone to have read the book already
www.pysdr.org, free and no adsbut after the chat feel free to check it out,
As a CS person who knows nothing do I need to buy a different antenna than the pluto-sdr comes with to transmit at wifi frequencies?
sorry, a beginners question : is the typical SDR equipment capable of dealing with UWB schemes ?
Personally, I would love to get a good idea of the hardware and software that you use for your testing.
I got to read an early release. great material
what do you mean by UWB
depends how WB
Ultra Wide Band
I use a Pluto and USRP B210 for testing/work, with a variety of antennas
how wide band? =P
they can only do up to 56 MHz, for example, at one time
so thats your limit there
and the RTL-SDR can only do up to 2.4 MHz at one time
My internet is spotty... Not sure if you received this question since it said it failed to send: Personally, I would love to get a good idea of the hardware and software that you use for your testing.
and there probably is a sensitivity issue too
What’s an RTL.
I think that with an amateur license one can do experimental radio at the shorter wavelengths,
software wise, I mostly use Python and GNU Radio
like to create apps
but I still play around with receivers like GQRX and the SATNOGs software stack
What kind of apps?
RTL is the chipset on most USB dongles...
well, drone stuff, LTE surveying, spectrum sensing
it varies over time
some apps are for work, some for fun
Question: I work with a non-profit that does flood monitoring using LoRaWAN-connected sensors; have you (or anyone here) had any experiences using SDRs with LoRaWAN (900MHz)?
sometimes its not actually a standalone app but a piece of software that goes into something else
I don't know how well-maintained it is or how far they got
More info on the RTL2832U chipset: https://www.realtek.com/en/products/communications-network-ics/item/rtl2832u
but something like a PlutoSDR or USRP B210 should be able to tx and rx at 900 Mhz at the sample rates you're talking about just fine
RTL-SDR might be able to rx it? not sure
if you need to tx as well then RTL-SDR won't fly
I have found that GNU Radio is a pain to install for Windows and for Linux. Is there any kind of virtual machine or an image that has everything installed?
Do you suggest any type of math background courses (free hopefully) for understanding the DSP?
Hi Marc, I'm reading your book. I'm a software engineer entering RF area. It's a very good book to start. Thank you. Is there a forum or mailing list for book readers to discuss problems, solutions to the exercises, etc?
@Marc Lichtman gave it a browse already and it looks great! Seems like it covers all the key concepts. My hat off to your book, sir!
For now, the only "not really" spotted is the figure of the Gaussian shape, in the figure from this page https://pysdr.org/content/noise.html That doesn't look like normal distribution to me, but I'm nitpicking, I know
An example of a Gaussian (interactive): https://www.geogebra.org/m/ehkwndma
I think MATLAB is a very good course...
I've been able to see signal with RTL-SDR but haven't gone into any greater depth; thanks for the response.
RE math courses, for my textbook the idea was to get by with very little math, but basics of complex numbers will help, and some trig
and if you want to get into more complex stuff like MIMO you'll need a lot of mutlivar xp
like a lot of matrix math
it depends how deep you want to dive
MATLAB does very well with matrices and is fast..
No mailing list currently, for the textbook, just the github issues/PR pages
so you could use github issue for stuff that isn't actually an issue
yeah I would highly recommend Python over MATLAB if you want to get into SDR
@aaron I just bought one of those 64GB ultra small PCs and made a stand-alone machine. All it does is run GNU Radio off the recommended linux distro.
Python will do whatever you want to do in MATLAB, unless you're talking about comms systems toolbox or something
just as fast
Is anyone doing SDR with JUlia ? Julia will eventualyl replace MATLAB
OK I got instant education on RTL-SDR thks to the link. But is there something you can use for the transmit side at 2GHz-ish frequencies?
I also have it running on my windows PC -- but you're right , it's not trivial to get going.
Hi Marc, I am a CS student and I want to thank you for your really clear and well written course, it provides a good starting point for everyone who want to start with RF stuff. I'm used to using the HackRF for that purpose, is your python module fully compatible with that tool (i'd rather user HackRF than Pluto,
Julia is fast but you want to use a lanuage other people use...
What about Julia? It is free and faster than Python and in many cases Matlab.
So a good start for a receiver that will play well with GNU Radio, what would be your recommendation? On UHF or VHF bands?
What hardware would you recommend for generating and reading squeezed quantum states? Parametric generator and balanced homodyne reciever?
like the speed is not going to make up for the fact that other folks will be using Python and C/C++
I would stick with Python or C/C++ imo
What are some of the applications that someone interested in SDR and DSP could accomplish after reading your book?
MATLAB is OK for simulation only
@curiousmarc - I think HackRF will do that
RE "OK I got instant education on RTL-SDR thks to the link. But is there something you can use for the transmit side at 2GHz-ish frequencies?" look into PlutoSDR and USRP B200
Thx will look it up right now
HackRF One from Great Scott Gadgets is a Software Defined Radio peripheral capable of transmission or reception of radio signals from 1 MHz to 6 GHz. Designed to enable test and development of modern and next generation radio technologies, HackRF One is an open source hardware platform that can be used as a USB peripheral or programmed for stand-alone operation.
RE "Hi Marc, I am a CS student..." my textbook does NOT include a python module
LimeSDR Mini is also quite good.
HackRF will do up to "6GHz".. But the sample rate might not be as fast as others.
I specifically didn't make a python module to go along with my textbook, like other books have done, e.g. Think DSP
yeah i've had issues with LimeSDR's support...
HackRF is good too, its an older one
LimeSDR mini use to be the go-to for low budget, but now I think that has gone to PlutoSDR if you are OK with not doing 100% duty cycle, since its over USB 2.0
GNU Radio is SO powerful..
yeah GNU Radio is great for making SDR apps that you can share with others
or even just specific blocks
RE "What are some of the applications that someone interested in SDR and DSP could accomplish after reading your book?", good question!!! I like to think they can do the kind of stuff I do, like spectrum sensing
what you won't be able to do, is set up an actual comms link
when you get into RX/TX over the air, there are more details that go into it, that I don't cover in my book (yet)
Marc, Do youhkave any knowledge or thoughts of where DARPA funding may take Gnu Radio
like with my book you can simulate a QPSK signal over a wireless channel, but if you actually tried to transmit/receive, you might run into issues
As long as it is still free.. Who cares.. =)
When about to ask the question on projects I did find this page from rtl sdr
What is RTL-SDR? RTL-SDR is a very cheap ~$25 USB dongle that can be used as a computer based radio scanner for receiving live radio signals in your area (no internet required). Depending on the particular model it could receive frequencies from 500 kHz up to 1.75 GHz.
DARPA funding will indirectly help GNU Radio in many ways
including having GNU Radio support heterogeneous platforms like FPGAs/DSPs
@Marc Lichtman - What kind of problems? Legal issues with license requirements?
but a lot of what DARPA does is research-oriented, and a lot of those projects use GNU Radio =)
well legal issues, yeah, but I was thinking more along the lines of equalization
like since you will probably have a strong multipath fading channel
Do they have any FPGAs that are strickly filtering only? As is, RCL?
my textbook covers sync, but not equalization (yet)
they have DSPs that are, not FPGAs per se
but lots of system on chips include both
I mean you can implement a digital filter in an FPGA pretty easily, without taking too much of the fabric
I think an FPGA strictly for filtering should be deisinged.
I don't think it would be an FPGA if it was strictly for filtering
check out the latest RFSoCs from Xilinx
they probably do what you want =)
but they are expensive
Zynq UltraScale+ RFSoCs integrate multi-giga-sample RF data converters and soft-decision forward error correct (SD-FEC) into a MPSoC architecture.
I am sure they are..
Comments on RFNoC?
I think RFNoC is great, and its slowly coming along
it's an Ettus (USRP) thing, if anyone is curious
Once they become cheaper, I am sure we will be seeing a HUGE jump in SDRs..
so not GNU Radio specific, it's more Ettus specific, although GNU Radio supports it
yeah I tend to use SDRs in a way where the samples are delivered to my host machine
Best open SDR on the market ?
versus doing any DSP on the SDR
It sounds like your experience mirrors my own with lime v ettus re:support