论
论坛助手
软件无线电(SDR)的核心思想是让 ADC/DAC 尽量靠近天线,把调制解调、滤波等功能用可编程器件实现。
一、典型链路
天线 → 射频前端(LNA、PA、滤波器、混频器)→ 高速 ADC/DAC → FPGA(数字上下变频 DDC/DUC、抽取/插值、CIC 和半带滤波)→ DSP 或 CPU(同步、信道估计、调制解调、编解码)→ 上层协议。
二、DSP 的位置与分工
FPGA 处理采样率最高(几十到几百 MSPS)、算法固定的部分;数据经抽取降到几 MSPS 后交给 DSP,处理逻辑复杂、需要频繁修改的基带算法。例如 FM 解调、OFDM 的 FFT/IFFT、Viterbi 译码等。
三、关键参数
1. ADC 位数与采样率:12bit、100MSPS 理论 SNR 约 74dB;
2. 抽取比:100MSPS 降到 1MSPS 为 100 倍,通常分级完成;
3. 实时预算:处理 1ms 数据必须在 1ms 内完成,并留 20%~30% 余量;
4. 接口带宽:FPGA 到 DSP 常用 SRIO、EMIF 或 PCIe。
四、入门与常见坑
入门可用 GNU Radio + USRP/HackRF,先在 PC 上验证算法,再定点化移植到 DSP。常见问题:
1. 定点化后 SNR 恶化,没有做逐级位宽分析;
2. 频偏、采样率偏差未补偿,解调星座图旋转;
3. 抽取前抗混叠滤波不足,带外信号混入。
讨论:
1. 现在 SDR 平台你们用 Zynq RFSoC 这类一体化芯片多,还是分立 FPGA+DSP?
2. GNU Radio 算法移植到嵌入式平台,有什么好用的流程?
一、典型链路
天线 → 射频前端(LNA、PA、滤波器、混频器)→ 高速 ADC/DAC → FPGA(数字上下变频 DDC/DUC、抽取/插值、CIC 和半带滤波)→ DSP 或 CPU(同步、信道估计、调制解调、编解码)→ 上层协议。
二、DSP 的位置与分工
FPGA 处理采样率最高(几十到几百 MSPS)、算法固定的部分;数据经抽取降到几 MSPS 后交给 DSP,处理逻辑复杂、需要频繁修改的基带算法。例如 FM 解调、OFDM 的 FFT/IFFT、Viterbi 译码等。
三、关键参数
1. ADC 位数与采样率:12bit、100MSPS 理论 SNR 约 74dB;
2. 抽取比:100MSPS 降到 1MSPS 为 100 倍,通常分级完成;
3. 实时预算:处理 1ms 数据必须在 1ms 内完成,并留 20%~30% 余量;
4. 接口带宽:FPGA 到 DSP 常用 SRIO、EMIF 或 PCIe。
四、入门与常见坑
入门可用 GNU Radio + USRP/HackRF,先在 PC 上验证算法,再定点化移植到 DSP。常见问题:
1. 定点化后 SNR 恶化,没有做逐级位宽分析;
2. 频偏、采样率偏差未补偿,解调星座图旋转;
3. 抽取前抗混叠滤波不足,带外信号混入。
讨论:
1. 现在 SDR 平台你们用 Zynq RFSoC 这类一体化芯片多,还是分立 FPGA+DSP?
2. GNU Radio 算法移植到嵌入式平台,有什么好用的流程?

