Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork12
FFT-based visualizer for RTL-SDR devices. (RTL2832/DVB-T)
License
orhun/rtl_map
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
DVB-T dongles based on theRealtek RTL2832U can be used as a cheap SDR (Software-defined radio), since the chip allows transferring the raw I/Q (In-phase / Quadrature) samples to the host, which is officially used for DAB/DAB+/FM demodulation.(More about history & discovery of rtl-sdr)
There is various software for DSP (Digital signal processing), spectral analysis and signal intelligence using RTL-SDR such asSDR#,gqrx andgnuradio.Apart from these, there islibrtlsdr which most of the user-level packages rely because of the reason that librtlsdr comes as a part of the rtl-sdr codebase.This codebase contains both the library itself and also a number of command line tools such as rtl_test, rtl_sdr, rtl_tcp, and rtl_fm for testing RTL2832 and performing basic data transfer functions.Therefore, librtlsdr is one of the major tools in RTL-SDR community.
Most of the technically questions RTL-SDR enthusiasts ask is about reading samples from device and processing raw I/Q samples. I wanted to answer that kind of questions and demonstrate a implementation of this withrtl_map project which is built on top of librtlsdr. Also, I went a step further and added graph feature that creates amplitude (dB) - frequency (MHz) graph usinggnuplot andFFT (Fast Fourier transform) algorithm. (fftw used for this approach) I can list other useful open-source projects as#1,#2 and#3.
Another purpose of this project is making a testing tool & frequency scanner application for security researches.
https://www.rtl-sdr.com/rtl_map-a-simple-fft-visualizer-for-rtl-sdr/
- libusb1.0 (development packages must be installed manually, seelibusb.info)
- gnuplot (must be installed manually, seeinstallation page)
- librtlsdr (cmake / automatic installation & linking)
- fftw3 (cmake / automatic installation & linking)
git clone https://github.com/orhun/rtl_mapcd rtl_mapmkdir buildcd buildcmake ../makesudo make installsudo ldconfiggcc rtl_map.c -o rtl_map -lrtlsdr -lfftw3 -lm-d, set device index (default: 0)-s, set sample rate (default: 2048000 Hz)-f, center frequency (Hz) [mandatory argument]-g gain (0 for auto) (default: ~1-3)-n number of reads (default: int_max.)-r, refresh rate for continuous read (default: 500ms)-D, don't show gnuplot graph (default: show)-C, continuously read samples (default: off)-M, show magnitude graph (default graph: dB)-O, disable offset tuning (default: on)-T, turn off terminal log colors (default: on)-h, show help message and exitfilename (a '-' dumps samples to stdout)[k3@arch ~]$ rtl_map -f 88000000 -D capture.dat[01:00:26] INFO Starting rtl_map ~[01:00:26] INFO Found 1 device(s):[01:00:26] INFO #0: Generic RTL2832U OEMFound Rafael Micro R820T tuner[01:00:27] INFO Using device: #0[01:00:27] INFO Gain set to 14.Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 128.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6 [01:00:27] INFO Center frequency set to 88000000 Hz.[01:00:27] INFO Sampling at 2048000 S/s[01:00:27] INFO Reading samples...[01:00:27] INFO Done, exiting...rtl_map -f 88000000 -D -rtl_map -f 88000000 -D -C -n 10 -[k3@arch ~]$ rtl_map -f 88000000[01:00:28] INFO Starting rtl_map ~[01:00:28] INFO Found 1 device(s):[01:00:28] INFO #0: Generic RTL2832U OEMFound Rafael Micro R820T tuner[01:00:28] INFO Using device: #0[01:00:28] INFO Gain set to 14.Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6 [01:00:29] INFO Center frequency set to 88000000 Hz.[01:00:29] INFO Sampling at 2048000 S/s[01:00:29] INFO Creating FFT graph from samples using gnuplot...[01:00:29] INFO Done, exiting...rtl_map -f 88000000 -C -r 100There is a common issue with cheap RTL-SDR receivers which iscenter frequency spike orcentral peak problem related to I/Q imbalance. This problem can be solved with a implementation of some algorithms. (For more details:#1,#2)
- Implement I/Q correction
- Find the maximum value of samples, show it on graph with a different color. Might be useful for frequency scanner.
- Frequency scanner feature
- Check correctness of min/max point calculation.
- Check correctness of amplitude (dB) calculation.
- 820T2 tuner used for testing. Other RTL-SDR devices must be tested.
You can contribute to this project if you are a RTL-SDR enthusiast or researcher. Fork the repository and start coding.I hope some people on this planet will consider my TODO(s) and help me build the frequency scanner tool :)
GNU General Public License (v3)
Copyright (c) 2019-2023,orhun
About
FFT-based visualizer for RTL-SDR devices. (RTL2832/DVB-T)
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.



