williamyang98/DAB-Radio

GitHub: williamyang98/DAB-Radio

基于 RTL-SDR 的 DAB 数字音频广播解调解码器,支持音频播放和数据提取。

Stars: 42 | Forks: 10

# 简介 [![x86-windows](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/99298d905a111323.svg)](https://github.com/williamyang98/DAB-Radio/actions/workflows/x86-windows.yml) [![x86-linux](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/2eae456ce6111324.svg)](https://github.com/williamyang98/DAB-Radio/actions/workflows/x86-linux.yml) [![x86-macos](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/a8909307b5111325.svg)](https://github.com/williamyang98/DAB-Radio/actions/workflows/x86-macos.yml) 一个使用软件定义无线电实现的 DAB(数字音频广播)收音机。 关于什么是软件定义无线电的描述,请参考此[链接](https://www.rtl-sdr.com/about-rtl-sdr/)。 [![使用 SDR 解码 DAB 广播](http://img.youtube.com/vi/4bb0FQFrgE8/0.jpg)](http://youtu.be/4bb0FQFrgE8 "使用 SDR 解码 DAB 广播") 此代码库包含以下应用程序: 1. 将 OFDM(正交频分复用)原始 IQ 信号解调为数字帧 2. 解码 DAB 数字 OFDM 帧以用于收音机应用程序 对于那些只对部分实现感兴趣的人,请参考以下目录: | 目录 | 描述 | | --- | --- | | src/ofdm | OFDM 解调代码 | | src/dab | DAB 数字解码核心算法 | | src/basic_radio | 将所有 DAB 核心算法组合成一个连贯的示例应用程序 | | src/basic_scraper | 监听 basic_radio 实例以将音频/幻灯片/MOT 数据保存到磁盘 | | examples/*.cpp | 我们所有的示例应用程序 | # 画廊 ![OFDM 解调器 GUI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/0e7dfb85c3111327.png) ![简单收音机 GUI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/1be18030dd111328.png) # 下载并运行 (Windows) 1. 从 Releases 页面下载 ZIP 压缩包。 2. 根据[这里](https://www.rtl-sdr.com/rtl-sdr-quick-start-guide/)的说明设置 rtlsdr 收音机驱动程序 3. 插入你的 RTLSDR Blog v3 加密狗 4. 运行 ```./radio_app.exe``` 5. 转到 "Simple View" 选项卡,并从列表中选择一项服务。 6. 点击 "Run All" 以收听频道并接收幻灯片。 - 请参考 [Wohnort](http://www.wohnort.org/dab/) 获取你所在地区的 DAB 集合。 - 阅读 ```examples/README.md``` 以使用其他应用程序。 如果你在所在区域找不到任何 DAB 集合,可以从[这里]()的 Releases 页面下载二进制文件。这些文件包含原始 IQ 值以及预解调的 OFDM 数字帧。你可以使用 ```examples/README.md``` 中描述的应用程序读取这些文件。 # 从源代码编译程序 - 克隆代码库:```git clone https://github.com/williamyang98/DAB-Radio.git --recurse-submodules```。 - 请参考 ```toolchains/{platform}/README.md``` 来为你的特定平台进行构建。 - 如果你想在你的系统上复现构建,持续集成 (CI) 脚本位于 ```.github/workflows```。 - **注意**:为了避免在从源代码编译时手动设置 GUI,你可以从 [imgui_radio.ini](https://github.com/williamyang98/DAB-Radio/releases/download/v1.0/imgui_radio.ini) 下载它,并将其粘贴到代码库的根目录中。 # 类似应用 - welle.io 开源收音机拥有出色的 DAB 收音机实现。他们的代码库可以在[这里](https://github.com/albrechtl/welle.io)找到。[Youtube 链接](https://www.youtube.com/watch?v=IJcgdmud-AI)。 - rtl-sdr 项目有一个庞大的社区,可以在 [rtl-sdr.com](https://www.rtl-sdr.com/tag/dab/) 找到。此链接指向一个展示几个旨在解码 DAB 信号的开源社区项目的网页。 # 重要来源 - [ETSI](https://www.etsi.org/standards) 这个非营利性标准化组织使所有标准都可以免费访问和查看。如果没有他们详细的文档和规范,就不可能构建 rtl-sdr DAB 收音机。 - [Phil Karn](https://github.com/ka9q) 感谢他的 Reed Solomon 和 Viterbi 解码算法,可以在[这里](https://github.com/ka9q/libfec)找到 - [tcbrindle](https://github.com/tcbrindle) 感谢他的 C++ 单头文件模板库实现的 std::span,可以在[这里](https://github.com/tcbrindle/span)找到 # 待办事项 - 对于 DAB+,确定如何在 AAC 超帧中对 firecode CRC16 执行纠错。 - 添加 TII(发射器识别信息)解码
标签:DAB, DNS解析, DSP, IQ信号, OFDM, RTL-SDR, SDR, 信号解调, 射频, 开源项目, 数字信号处理, 数字音频广播, 无线电接收机, 无线通信, 正交频分复用, 解码器, 软件定义无线电, 通信协议, 音频流