GNU Radio is a free & open-source software development toolkit that provides signal processing blocks to implement software radios. It can be used with readily-available low-cost external RF hardware to create software-defined radios, or without hardware in a simulation-like environment. It is widely used in hobbyist, academic and commercial environments to support both wireless communications research and real-world radio systems.
GNU Radio applications are primarily written using the Python programming language, while the supplied performance-critical signal-processing path is implemented in C++ using processor floating-point extensions, where available. Thus, the developer is able to implement real-time, high-throughput radio systems in a simple-to-use, rapid-application-development environment.
While not primarily a simulation tool, GNU Radio does support development of signal processing algorithms using pre-recorded or generated data, avoiding the need for actual RF hardware.
GNU Radio is licensed under the GNU General Public License (GPL) version 3. All of the code is copyright of the Free Software Foundation.
gnuradio.gr | Core contents. |
pmt | Polymorphic Types. |
gnuradio.blocks | Processing blocks common to many flowgraphs. |
gnuradio.analog | Blocks and utilities for analog modulation and demodulation. |
gnuradio.digital | Blocks and utilities for digital modulation and demodulation. |
gnuradio.audio | Blocks to connect to audio sources (mic-in) and sinks (speaker-out) ports on a computer. |
gnuradio.channels | Blocks for channel models and related functions. |
gnuradio.comedi | Blocks and utilities for COMEDI devices |
gnuradio.fec | Blocks for forward error correction. |
gnuradio.filter | Filter blocks and related functions. |
gnuradio.trellis | Blocks and utilities for trellis coding and related. |
gnuradio.wavelet | Processing blocks for wavelet transforms. |
gnuradio.fft | Fourier-transform blocks and related functions. |
gnuradio.gr_unittest | GNU radio specific extension of unittest. |
gnuradio.qtgui | Provides a GUI interface using the QT backend. |
gnuradio.wxgui | Provides a GUI interface using the Wx backend. |
gnuradio.uhd | Provides source and sink blocks to interface with the UHD library. |
gnuradio.fcd | Provides a source block for the FunCube Dongle hardware. |
gnuradio.plot_data | Utility to help plotting data from files. |
gnuradio.eng_notation | Display numbers as strings using engineering notation. |
gnuradio.eng_option | Add support for engineering notation to optparse.OptionParser |
gnuradio.atsc | Blocks and utilities for ATSC (Advanced Television Systems Committee) module. |
gnuradio.noaa | Blocks and utilities for NOAA app. |
gnuradio.pager | The GNU Radio pager application. |
gnuradio.video_sdl | Blocks and utilities for Video SDL module |
gnuradio.vocoder | This is the gr-vocoder package. |