RTL SDR As A Spectrum Analyzer

RTL-SDR, the USB TV tuner turned software-defined radio is an amazing device, capable of listening to nearly anything from 25MHz to 1750MHz, fits in your pocket, and costs about $20. Even more astonishing is that it’s also a kinda-okay spectrum analyzer. [Kerry D. Wong] tested out one of these USB TV tuner, and the results are exactly what you would expect: it lacks a little precision, and sampling bandwidth is only a tiny bit terrible, but it does work.

A stock USB TV tuner doesn’t come with a connector that would normally be used for spectrum analysis. A BNC connector can be easily attached, as can a terminator to match the 75Ω impedance of the SDR. This isn’t really necessary; the frequencies being measured are low enough that you can get away without one.

As far as software goes, [Kerry] first pulled out the usual suspects of the SDR world; rtlsdr-scanner distorted the measured spectrum, as did a lot of other SDR receivers. Gqrx SDR was the first one that worked well, but the king of this repurposing of USB TV tuners was OSMOCOM. There’s a huge number of tools for spectrum analysis right out of the box with this package.

How did the RTL SDR fare as a spectrum analyzer? Feeding some stuff in from a signal generator, [Kerry] discovered the LO in the RTL SDR was off by a hair. Also, OSMOCOM only measures amplitude in dB, not the dBm found in every other spectrum analyzer ever made. By measuring a 0 dBm signal whatever value displayed can be shifted up or down.

So, does it work? Yes, it does. If, for some reason, you need a spectrum analyzer now, can you use this? Yep. Pretty cool.

24 thoughts on “RTL SDR As A Spectrum Analyzer

    1. Nice link, funny someone was asking “where’s sue?” lol, she’s pretty active on qrz forums.
      I plan on using mine for a mobile spectrum analyzer, just wish phones had 2 USB-otg ports as getting charge and data is a little tricky. Someone made a cable but not sure about resistance value to use.

  1. > capable of listening to nearly anything from 25MHz to 1750MHz
    > the frequencies being measured are low enough that you can get away without one.

    If 1750MHz is not considered as high enough frequency? At what frequency do you start putting on proper connectors and terminations?

  2. BTW the original article has connectors and terminators. Just that it is not using the right type of terminations. No where in the article said about “A BNC connector can be easily attached, as can a terminator to match the 75Ω impedance of the SDR. This isn’t really necessary; the frequencies being measured are low enough that you can get away without one.”

    This is what the article said:
    >Note that the input impedance of the SDR is typically 75Ω, ideally you should use a 75Ω to 50Ω feedthrough termination adapter to ensure proper impedance matching. But since the frequency range of the SDR is not particularly high, the added SWR is low enough and typically not a big concern.
    >The signal to be analyzed comes in from the the BNC cable on the left and goes through a BNC Tee, one side of the Tee is terminated with a 50Ω load and the other side goes through a BNC-MCX converter and then goes to the SDR. Of course you can always use a feedthrough terminator instead of the Tee. Again, because the frequency range is relatively low, even without proper termination, the signal fluctuation across the measurable spectrum due to reflection is small enough for casual measurements.

        1. Hah! Solved it! I used gnuradio-companion to create flowchart, and on the osmocom Source block I set Ch0 Frequency to 288e5. 100e6 caused that strange binning issue. Device arguments: rtl_tcp=127.0.0.1:1234. rtl_tcp needs of course to be running.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.