{"id":19286885,"url":"https://github.com/williamyang98/dab-radio","last_synced_at":"2025-04-22T03:33:51.964Z","repository":{"id":63190567,"uuid":"544479902","full_name":"williamyang98/DAB-Radio","owner":"williamyang98","description":"Demodulator and decoder for DAB signals captured using RTL-SDR","archived":false,"fork":false,"pushed_at":"2025-02-26T14:41:14.000Z","size":11371,"stargazers_count":31,"open_issues_count":3,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-01T19:21:23.413Z","etag":null,"topics":["dab","dab-broadcasting","radio","rtl-sdr","rtlsdr"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/williamyang98.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-02T15:33:39.000Z","updated_at":"2025-02-26T14:41:17.000Z","dependencies_parsed_at":"2024-01-28T12:27:49.790Z","dependency_job_id":"33684c7c-a0e6-4458-83b2-b7a3d5ba1eb4","html_url":"https://github.com/williamyang98/DAB-Radio","commit_stats":null,"previous_names":["williamyang98/dab-radio"],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamyang98%2FDAB-Radio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamyang98%2FDAB-Radio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamyang98%2FDAB-Radio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamyang98%2FDAB-Radio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/williamyang98","download_url":"https://codeload.github.com/williamyang98/DAB-Radio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250167614,"owners_count":21386004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dab","dab-broadcasting","radio","rtl-sdr","rtlsdr"],"created_at":"2024-11-09T22:04:39.816Z","updated_at":"2025-04-22T03:33:51.951Z","avatar_url":"https://github.com/williamyang98.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Introduction\n[![x86-windows](https://github.com/williamyang98/DAB-Radio/actions/workflows/x86-windows.yml/badge.svg)](https://github.com/williamyang98/DAB-Radio/actions/workflows/x86-windows.yml)\n[![x86-linux](https://github.com/williamyang98/DAB-Radio/actions/workflows/x86-linux.yml/badge.svg)](https://github.com/williamyang98/DAB-Radio/actions/workflows/x86-linux.yml)\n[![x86-macos](https://github.com/williamyang98/DAB-Radio/actions/workflows/x86-macos.yml/badge.svg)](https://github.com/williamyang98/DAB-Radio/actions/workflows/x86-macos.yml)\n\nAn implementation of a DAB (digital audio broadcasting) radio using software defined radio. \n\nFor a description of what software defined radio is refer to this [link](https://www.rtl-sdr.com/about-rtl-sdr/). \n\n[![Decoding DAB radio using SDR](http://img.youtube.com/vi/4bb0FQFrgE8/0.jpg)](http://youtu.be/4bb0FQFrgE8 \"Decoding DAB radio using SDR\")\n\nThis repository contains applications that:\n1. Demodulate the OFDM (orthogonal frequency division multiplexed) raw IQ signals into a digital frame\n2. Decode DAB digital OFDM frames for use into a radio application\n\nFor those who are interested only in parts of the implementation refer to the following directories:\n\n| Directory | Description |\n| --- | --- |\n| src/ofdm          | OFDM demodulation code |\n| src/dab           | DAB digital decoding core algorithms |\n| src/basic_radio   | Combines all of the DAB core algorithms into a cohesive example app |\n| src/basic_scraper | Listens to basic_radio instance to save audio/slideshow/MOT data to disk |\n| examples/*.cpp    | All our sample applications |\n\n# Gallery\n![OFDM Demodulator GUI](docs/gallery/ofdm_demodulator_gui.png)\n![Simple Radio GUI](docs/gallery/simple_radio_gui.png)\n\n# Download and run (Windows)\n1. Download the ZIP archive from the releases page. \n2. Setup rtlsdr radio drivers according to [here](https://www.rtl-sdr.com/rtl-sdr-quick-start-guide/)\n3. Plug in your RTLSDR Blog v3 dongle\n4. Run ```./radio_app.exe```\n5. Go to the \"Simple View\" tab and select a service from the list. \n6. Click \"Run All\" to listen to the channel and receive slideshows.\n\n- Refer to [Wohnort](http://www.wohnort.org/dab/) for DAB ensembles in your region.\n- Read ```examples/README.md``` to use other applications.\n\nIf you can't find any DAB ensembles in your area, then you can download binary files from the Releases page [here](https://github.com/williamyang98/DAB-Radio/releases/tag/raw-iq-data). These contain raw IQ values as well as pre-demodulated OFDM digital frames. You can read in these files with the applications described in ```examples/README.md```\n\n# Compiling programs from source\n- Clone the repository: ```git clone https://github.com/williamyang98/DAB-Radio.git --recurse-submodules```.\n- Refer to ```toolchains/{platform}/README.md``` to build for your specific platform.\n- The continuous integration (CI) scripts are in ```.github/workflows``` if you want to replicate the build on your system.\n- **NOTE**: To avoid having to manually setup the GUI when compiling from source you can download it from [imgui_radio.ini](https://github.com/williamyang98/DAB-Radio/releases/download/v1.0/imgui_radio.ini) and paste it into the repository's root directory.\n\n# Similar apps\n- The welle.io open source radio has an excellent implementation of DAB radio. Their repository can be found [here](https://github.com/albrechtl/welle.io). [Youtube Link](https://www.youtube.com/watch?v=IJcgdmud-AI). \n- There is a large community of rtl-sdr projects which can be found at [rtl-sdr.com](https://www.rtl-sdr.com/tag/dab/). This link points to a webpage showcasing several open source community projects that aim to decode DAB signals.\n\n# Important sources\n- [ETSI](https://www.etsi.org/standards) the non-for-profit standardisation organisation for making all of the standards free to access and view. Without their detailed documentation and specifications it would not be possible to build a rtl-sdr DAB radio.\n- [Phil Karn](https://github.com/ka9q) for his Reed Solomon and Viterbi decoding algorithms which can be found [here](https://github.com/ka9q/libfec)\n- [tcbrindle](https://github.com/tcbrindle) for his C++ single header template library implementation of std::span which can be found [here](https://github.com/tcbrindle/span)\n\n# TODO\n- For DAB+ determine how to perform error correction on the firecode CRC16 in the AAC super frame.\n- Add TII (transmitter identificaton information) decoding\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliamyang98%2Fdab-radio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilliamyang98%2Fdab-radio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliamyang98%2Fdab-radio/lists"}