patxrick/FM-RDS-Receiver-with-the-RTL-SDR-

GitHub: patxrick/FM-RDS-Receiver-with-the-RTL-SDR-

这是一个基于 RTL-SDR 硬件与 MATLAB Simulink 平台的实时 FM 广播解调及 RDS 数据解码系统,用于演示从射频采集到数字信息恢复的完整通信链路。

Stars: 0 | Forks: 0

# 📻 基于 RTL-SDR 的 FM RDS 接收机 ## 📌 概述 本项目利用 **RTL-SDR(软件定义无线电)** 和 **MATLAB Simulink** 实现了一款 **实时 FM 无线电数据系统 (RDS) 接收机**。它展示了完整的通信链路——从射频信号采集到 **音频输出和数字数据解码**——这是 **模拟和数字调制技术** 的一个实际应用。 该模型广泛用于通信系统的 **教学和研究** 目的。 ## 🚀 主要特性 - 使用 RTL-SDR 硬件进行实时 FM 信号接收 - FM 解调与高质量音频输出 - RDS 副载波 (57 kHz) 提取 - 用于 RDS 解码的数字信号处理 - 广播元数据恢复(电台名称、无线电文本) - 基于 Simulink 的完整模块化设计 ## 🧠 系统架构 ### 🔹 1. 射频信号采集 - 使用 RTL-SDR 调制解调器捕获输入信号 - 采样率:**912 kHz** - 调谐至 FM 广播频段 (87.5–108 MHz) ### 🔹 2. FM 解调 - 使用相位微分对 FM 信号进行解调 - 音频处理包括: - 15 kHz 低通滤波 - 降采样至 **48 kHz** - 3.2 kHz 去加重滤波 ### 🔹 3. RDS 信号提取 - RDS 以 **57 kHz 的 BPSK 信号** 形式传输 - 比特率:**1187.5 bits/sec** - 信号处理: - 滤波 - 降采样 - 正交解调 ### 🔹 4. 信号处理 - 使用 **根升余弦滤波器** 进行匹配滤波 - 使用最大信号功率法进行符号同步 - 使用 **Viterbi & Viterbi 算法** 进行载波同步 - 频偏校正以防止误码 ### 🔹 5. RDS 解码 - 数据组织方式: - **26 位块** (16 位数据 + 10 位 CRC) - 组结构: - 4 个块 = 1 个组 (104 位) - 提取的信息: - 节目服务名称 (PS) - 无线电文本 (RT) ## ⚙️ 系统要求 ### 🛠️ 硬件 - RTL-SDR USB 调制解调器 - 天线 ### 💻 软件 - MATLAB (R2020a 或更高版本) - Simulink - Communications Toolbox - RTL-SDR Support Package ## ▶️ 运行方式 1. 连接 RTL-SDR 设备 2. 打开 Simulink 模型: 3. 设置所需的 FM 频率 4. 运行仿真 5. 观察: - 音频输出 - 解码后的 RDS 数据 ## 📊 输出 - 实时 FM 音频信号 - 解码后的 RDS 信息: - 电台名称 - 广播文本 - 信号星座图和处理波形图 ## 📚 应用 - 软件定义无线电 (SDR) 系统 - 数字通信学习 - 信号处理研究 - 无线系统原型设计 ## 👨‍💻 作者 - Patrick Deva ## 📜 许可证 本项目包含开源许可证下的组件。 详细信息请参阅 `license.txt`。 ## ⭐ 总结 本项目提供了 **FM RDS 接收机的完整端到端实现**,结合了 **模拟和数字通信概念**。它突显了 **基于 SDR 的系统** 在实时信号处理中的有效性,并为高级无线通信研究奠定了坚实基础。
标签:BPSK, CRC校验, FM广播, FM解调, MATLAB, RDS解码, RTL-SDR, Simulink, Viterbi算法, 匹配滤波器, 去加重滤波, 实时信号处理, 射频信号采集, 广播元数据, 数字信号处理, 无线电教学, 根升余弦滤波器, 正交解调, 符号同步, 调制技术, 软件无线电, 载波同步, 通信系统, 音频输出, 频偏校正