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算法, 匹配滤波器, 去加重滤波, 实时信号处理, 射频信号采集, 广播元数据, 数字信号处理, 无线电教学, 根升余弦滤波器, 正交解调, 符号同步, 调制技术, 软件无线电, 载波同步, 通信系统, 音频输出, 频偏校正