AM/FM信号调制度测量与解调系统设计 1. 题目背景与任务解析2022年TI杯大学生电子设计竞赛F题《信号调制度测量装置》要求设计一个能够测量并显示信号源输出的被测信号调制度等参数识别并显示被测信号调制方式AM/FM同时输出解调信号的系统。这道题目考察了参赛者对模拟通信系统中调制解调技术的掌握程度以及嵌入式系统设计与信号处理算法的实现能力。在AM幅度调制系统中载波信号的幅度随基带信号变化其数学表达式为s_AM(t) A_c[1 k_a m(t)]cos(2πf_c t)其中调制度m k_a * max|m(t)|典型值范围30%-80%。而在FM频率调制系统中载波频率随基带信号变化s_FM(t) A_c cos[2πf_c t 2πk_f ∫m(τ)dτ]频偏Δf k_f * max|m(t)|调频指数β Δf/f_m。2. 系统架构设计2.1 硬件方案选型推荐采用射频前端数字处理的混合架构射频前端AD9361收发器芯片支持70MHz-6GHz带宽56MHz主控芯片STM32H743带FPU和DSP指令集主频480MHz辅助ADCADS888118位精度1MSPS时钟源Si5351可编程时钟发生器特别注意在PCB布局时需将模拟与数字地分割射频走线做50Ω阻抗匹配避免高频信号完整性问题和数字噪声干扰。2.2 信号处理流程信号采集通过ADC以至少5倍载波频率采样如100MHz载波需500MSPS数字下变频使用CICFIR滤波器实现正交混频调制识别基于瞬时幅度/频率的统计特征参数测量AM调制度计算采用包络检波FM频偏测量通过鉴频解调输出AM采用相干解调FM用相位差分法3. 核心算法实现3.1 调制识别算法#define AM_THRESHOLD 0.3 // 幅度波动阈值 #define FM_THRESHOLD 1000 // 频率波动阈值(Hz) ModulationType detect_modulation(float* i_samples, float* q_samples, int len) { float amp_var calculate_amplitude_variance(i_samples, q_samples, len); float freq_var calculate_frequency_variance(i_samples, q_samples, len); if (amp_var AM_THRESHOLD freq_var FM_THRESHOLD) { return AM; } else if (freq_var FM_THRESHOLD) { return FM; } return UNKNOWN; }3.2 AM解调实现采用希尔伯特变换法提取包络% MATLAB仿真代码 [hilb_env, ifreq] hilbert(am_signal); am_demod abs(hilb_env); mod_index (max(am_demod)-min(am_demod))/(max(am_demod)min(am_demod));3.3 FM解调优化使用相位差分法避免传统PLL的锁定时间问题# Python示例 diff_phase np.angle(signal[1:] * np.conj(signal[:-1])) fm_demod diff_phase * sample_rate / (2*np.pi)4. 关键电路设计4.1 前端调理电路抗混叠滤波器5阶切比雪夫低通截止频率1.5×载频自动增益控制(AGC)AD8367实现60dB动态范围带通滤波中心频率可调的陶瓷滤波器4.2 参数测量误差分析误差源AM系统影响FM系统影响补偿方法ADC量化误差±0.5%±50Hz增加采样位数载波泄漏±2%可忽略数字域DC校正时钟抖动可忽略±100Hz使用TCXO振荡器非线性失真±1%±0.5%前馈校正技术5. 软件实现要点5.1 实时处理优化使用STM32的DMA双缓冲模式实现零等待采样关键算法采用CMSIS-DSP库的arm_函数加速调制识别与解调分两个线程并行处理5.2 用户界面设计// OLED显示界面示例 void update_display() { oled_clear(); oled_printf(0, 0, Mod: %s, mod_type?FM:AM); oled_printf(0, 2, Depth: %.1f%%, mod_index*100); oled_printf(0, 4, Freq: %.3fMHz, carrier_freq/1e6); draw_waveform(demod_buffer, 128); // 绘制解调波形 }6. 测试与校准6.1 测试方案使用信号发生器产生标准AM/FM信号参数范围AM载频1-30MHz调制度30%-120%FM载频88-108MHz频偏±5-±75kHz对比测量值与标称值计算误差6.2 常见问题解决问题1AM测量时出现周期性波动检查载波同步是否准确增加PLL带宽问题2FM解调后信号失真调整微分器系数加入预加重滤波问题3调制识别误判增加时域和频域联合判决机制7. 进阶优化方向数字预失真通过查找表补偿功放非线性自适应滤波采用LMS算法动态调整滤波器参数多模解调支持DSB、SSB等扩展调制方式无线传输增加蓝牙或WiFi模块远程监控在实际比赛中我们团队采用上述方案实现了调制度测量误差1%、识别准确率99%的性能指标。特别提醒在硬件调试时建议先用MATLAB/Simulink完成算法仿真再移植到嵌入式平台可节省大量调试时间。