williamyang98/DAB-Radio
GitHub: williamyang98/DAB-Radio
基于 RTL-SDR 的 DAB 数字音频广播解调解码器,支持音频播放和数据提取。
Stars: 42 | Forks: 10
# 简介
[](https://github.com/williamyang98/DAB-Radio/actions/workflows/x86-windows.yml)
[](https://github.com/williamyang98/DAB-Radio/actions/workflows/x86-linux.yml)
[](https://github.com/williamyang98/DAB-Radio/actions/workflows/x86-macos.yml)
一个使用软件定义无线电实现的 DAB(数字音频广播)收音机。
关于什么是软件定义无线电的描述,请参考此[链接](https://www.rtl-sdr.com/about-rtl-sdr/)。
[](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 | 我们所有的示例应用程序 |
# 画廊


# 下载并运行 (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, 信号解调, 射频, 开源项目, 数字信号处理, 数字音频广播, 无线电接收机, 无线通信, 正交频分复用, 解码器, 软件定义无线电, 通信协议, 音频流