All Projects → argilo → Gr Nrsc5

argilo / Gr Nrsc5

Licence: gpl-3.0
A GNU Radio implementation of HD Radio (NRSC-5)

Projects that are alternatives of or similar to Gr Nrsc5

Gnuradio
GNU Radio – the Free and Open Software Radio Ecosystem
Stars: ✭ 3,297 (+4416.44%)
Mutual labels:  hacktoberfest, radio, sdr, gnuradio
Gr Recipes
Main GNU Radio recipe repository for use with PyBOMBS
Stars: ✭ 90 (+23.29%)
Mutual labels:  hacktoberfest, radio, gnuradio
Pybombs
PyBOMBS (Python Build Overlay Managed Bundle System) is the GNU Radio install management system for resolving dependencies and pulling in out-of-tree projects.
Stars: ✭ 316 (+332.88%)
Mutual labels:  hacktoberfest, radio, gnuradio
Rfsec Toolkit
RFSec-ToolKit is a collection of Radio Frequency Communication Protocol Hacktools.无线通信协议相关的工具集,可借助SDR硬件+相关工具对无线通信进行研究。Collect with ♥ by HackSmith
Stars: ✭ 1,085 (+1386.3%)
Mutual labels:  radio, sdr, gnuradio
Pagermon
Multimon-ng pager message parser and viewer
Stars: ✭ 154 (+110.96%)
Mutual labels:  hacktoberfest, radio, sdr
Trunk Recorder
Records calls from a Trunked Radio System (P25 & SmartNet)
Stars: ✭ 505 (+591.78%)
Mutual labels:  radio, sdr, gnuradio
newsched
The GNU Radio 4.0 Runtime Proof Of Concept
Stars: ✭ 19 (-73.97%)
Mutual labels:  radio, sdr, gnuradio
RF-List
RFSec tools
Stars: ✭ 98 (+34.25%)
Mutual labels:  radio, sdr, gnuradio
Libretime
LibreTime: Radio Broadcast & Automation Platform
Stars: ✭ 439 (+501.37%)
Mutual labels:  hacktoberfest, radio
Luaradio
A lightweight, embeddable software-defined radio framework built on LuaJIT
Stars: ✭ 509 (+597.26%)
Mutual labels:  radio, sdr
Rtlsdr Scanner
A cross platform Python frequency scanning GUI for the OsmoSDR rtl-sdr library
Stars: ✭ 544 (+645.21%)
Mutual labels:  radio, sdr
Hackrf
low cost software radio platform
Stars: ✭ 4,286 (+5771.23%)
Mutual labels:  radio, sdr
Pisdr Image
🥧 The SDR Linux Distro for the Raspberry Pi and other SBC. Compatible out of the box with multiple SDR.
Stars: ✭ 346 (+373.97%)
Mutual labels:  sdr, gnuradio
Rtl Sdr
library for turning a RTL2832 based DVB dongle into a Software DefinedReceiver; mirror from https://git.osmocom.org/rtl-sdr/
Stars: ✭ 336 (+360.27%)
Mutual labels:  radio, sdr
Gnss Sdr
GNSS-SDR, an open-source software-defined GNSS receiver
Stars: ✭ 801 (+997.26%)
Mutual labels:  sdr, gnuradio
Soapysdr
Vendor and platform neutral SDR support library.
Stars: ✭ 576 (+689.04%)
Mutual labels:  sdr, gnuradio
Soapyosmo
Soapy SDR plugins for Osmo supported SDR devices
Stars: ✭ 8 (-89.04%)
Mutual labels:  sdr, gnuradio
Qspectrumanalyzer
Spectrum analyzer for multiple SDR platforms (PyQtGraph based GUI for soapy_power, hackrf_sweep, rtl_power, rx_power and other backends)
Stars: ✭ 677 (+827.4%)
Mutual labels:  radio, sdr
Gr Bokehgui
Web based display for GNU Radio applications
Stars: ✭ 39 (-46.58%)
Mutual labels:  hacktoberfest, gnuradio
Airspy Fmradion
Software decoder for FM/AM broadcast radio with AirSpy R2 / Mini, Airspy HF+, and RTL-SDR
Stars: ✭ 59 (-19.18%)
Mutual labels:  radio, sdr

gr-nrsc5

The goal of this project is to implement an HD Radio receiver and transmitter in GNU Radio. HD Radio is standardized in NRSC-5. The latest version of the standard is NRSC-5-D, which can be found at https://www.nrscstandards.org/standards-and-guidelines/documents/standards/nrsc-5-d/nrsc-5-d.asp.

So far only a transmitter has been implemented. A stand-alone receiver for RTL-SDR is available here: https://github.com/theori-io/nrsc5/

Installation

If you installed GNU Radio using PyBOMBS, simply run pybombs install gr-nrsc5.

Otherwise, run the following commands:

mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

If your GNU Radio is installed in /usr (rather than /usr/local), then replace the cmake line above with:

cmake -DCMAKE_INSTALL_PREFIX=/usr ..

Blocks:

HDC encoder

This block encodes audio into High-Definition Coding (HDC) frames. The input sample rate must be 44,100 samples per second. ADTS headers are added to the output frames to facilitate synchronization. The encoding is performed by a patched version of fdk-aac: https://github.com/argilo/fdk-aac/tree/hdc-encoder

PSD encoder

This block encodes Program Service Data PDUs, as described in https://www.nrscstandards.org/standards-and-guidelines/documents/standards/nrsc-5-d/reference-docs/1028s.pdf. PSD conveys information (e.g. track title & artist) about the audio that is currently playing.

SIS encoder

This block encodes Station Information Service PDUs, as described in https://www.nrscstandards.org/standards-and-guidelines/documents/standards/nrsc-5-d/reference-docs/1020s.pdf, and assembles them into the PIDS and SIDS logical channels. SIS provides information about the station. Currently only the short station name (i.e. call sign) is encoded.

Layer 2 encoder

This block assembles HDC audio frames and PSD PDUs into the audio transport, producing layer 2 PDUs (as defined in https://www.nrscstandards.org/standards-and-guidelines/documents/standards/nrsc-5-d/reference-docs/1014s.pdf and https://www.nrscstandards.org/standards-and-guidelines/documents/standards/nrsc-5-d/reference-docs/1017s.pdf).

Layer 1 FM encoder

This block implements Layer 1 FM (as defined in https://www.nrscstandards.org/standards-and-guidelines/documents/standards/nrsc-5-d/reference-docs/1011s.pdf). It takes PIDS and Layer 2 PDUs as input, and produces OFDM symbols as output. Only the Hybrid and Extended Hybrid modes have been implemented and tested so far. The All Digital modes are currently under development.

Layer 1 AM encoder

This block implements Layer 1 AM (as defined in https://www.nrscstandards.org/standards-and-guidelines/documents/standards/nrsc-5-d/reference-docs/1012s.pdf). It takes PIDS and Layer 2 PDUs as input, and produces OFDM symbols as output. Both Hybrid (MA1) mode and All Digital (MA3) mode are implemented.

Flowgraphs:

Several sample flowgraphs are available in the apps folder:

FM

  • hd_tx_usrp.grc, hd_tx_usrp.py: tested on a USRP B200
  • hd_tx_hackrf.grc, hd_tx_hackrf.py: tested on a HackRF One
  • hd_tx_rtl_file.grc, hd_tx_rtl_file.py: produces an output file in the format used by https://github.com/theori-io/nrsc5/

AM

  • hd_tx_am_hackrf.grc, hd_tx_am_hackrf.py: Hybrid mode, tested on a HackRF One
  • hd_tx_am_ma3_hackrf.grc, hd_tx_am_ma3_hackrf.py: All Digital mode, tested on a HackRF One

These flowgraphs read a WAV file named sample.wav, which must be encoded at 44,100 samples per second. The license for the supplied sample.wav file is as follows:

Copyright 2013, Canonical Ltd. This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].