连续信号的高保真采样与重建仿真系统
项目介绍
本项目是一个基于MATLAB开发的数字信号处理仿真平台,旨在通过数学建模和可视化手段,深入演示连续信号在数字化过程中的采样、频谱演变及完美重建流程。系统通过对比不同采样频率下的信号恢复效果,直观地揭示了奈奎斯特采样定理及其在实际工程中的意义,为理解模拟信号到数字信号的转换提供了强有力的理论验证方案。
功能特性
- 多频连续信号模拟:系统预设了由不同频率和幅值组成的复合正弦波信号,模拟具有特定带宽限制的连续原始信号。
- 多场景采样对比:程序自动对比三种典型采样率场景:
- 欠采样:展示由于采样频率低于奈奎斯特频率而导致的频谱混叠。
- 恰好采样:展示满足临界恢复条件的理论平衡状态。
- 过采样:展示高采样率下的高保真还原效果。
- 理想信号重建:应用Whittaker-Shannon内插算法(时域Sinc插值),从离散样本点中恢复出连续波形。
- 全方位性能评估:
- 时域波形追踪:直观观察原始信号、采样点与重建信号的拟合程度。
- 频域特征分析:通过FFT变换分析信号采样前后的频谱结构变化。
- 量化误差计算:通过均方误差(MSE)精准评估重建精度。
系统要求
- MATLAB R2016b 或更高版本。
- 无需特殊工具箱支持(主要利用内置数学运算与绘图函数)。
使用方法
- 启动MATLAB并进入项目所在目录。
- 直接运行仿真主程序脚本。
- 系统将自动弹出一个包含9个子图的交互式图表窗口:
- 第一行展示三种采样情况下的时域波形。
- 第二行展示对应的频域频谱分布。
- 第三行展示实时重建误差曲线。
- 在MATLAB控制台查看详细的参数对比和MSE计算结果。
功能实现逻辑与算法细节
1. 连续信号生成逻辑
系统首先建立一个极高时间分辨率的时间轴(采样率设为10,000Hz),以此模拟“连续时间信号”。原始信号定义为两个正弦波的叠加(50Hz和120Hz),确定其最高有效频率为120Hz,从而推导出临界奈奎斯特频率为240Hz。
2. 采样过程实现
通过定义采样周期,对模拟连续信号进行等间隔抽取。针对180Hz、240Hz和800Hz三种频率,系统通过脉冲序列采样技术获取相应的离散点,其时间戳与原始高精度时间轴对齐,确保对比的理论准确性。
3. 重建算法:Whittaker-Shannon 理想插值
重建核心依赖于理想内插公式。程序通过循环遍历每一个采样点,将其权值与对应的sinc函数相乘,利用sinc函数的零点特性,在时域叠加所有贡献量。算法公式为:
重建信号 = ∑ (采样值 * sinc((时间轴 - 采样时刻) / 采样周期))
这种方法在数学上等效于通过一个截止频率等于采样频率一半的理想低通滤波器。
4. 频域分析与FFT处理
系统对原始信号和重建信号同时执行4096点的快速傅里叶变换(FFT)。通过幅值归一化处理和频谱搬移分析,系统展示了采样频率如何影响频谱分量的完整性。在欠采样情况下,可以清晰观察到高层频率分量折叠回低频区产生的混叠伪影。
5. 误差评价体系
为了科学评估重建系统的性能,程序实时计算了原始信号与重建信号之间的残差分量。通过计算残差平方的均值(MSE),将信号失真程度量化,结果直接显示在误差曲线的标题中以及控制台输出中。
仿真性能说明
- 计算精度:随着采样率提高,重建误差呈现数量级下降(例如欠采样下MSE较大,过采样下MSE可降至极低水平)。
- 可视化范围:为了观察波形细节,时域绘图选取了0至0.1秒的观察窗口,充分突显了插值算法生成的平滑特征。