基于相关函数的信号功率谱估计及相关性分析系统
本项目是一个基于 MATLAB 开发的信号分析平台,旨在通过随机信号处理理论对复杂信号进行时域及频域的深度挖掘。系统核心基于维纳-辛钦定理,利用自相关函数与功率谱密度之间的傅里叶变换关系,实现了信号的稳定性分析、时延估计及高分辨率功率谱计算。
主要功能特性
- 多源合成信号模拟:系统能够自主生成包含 150Hz 基准正弦分量与线性扫频分量(Chirp 信号)的混合信号,并叠加高斯白噪声,模拟真实的物理观测环境。
- 时域相关性深度分析:实现单路信号的偏置校正自相关计算(ACF)以及双路信号的归一化互相关分析(CCF),用于评估信号的自相似程度及序列间的耦合性。
- 高精度时延估计:通过搜索互相关函数序列中的峰值极值,系统可以从受噪声干扰的观测信号中准确提取物理时延信息。
- 间接法功率谱估计(BT法):采用 Blackman-Tukey 算法,通过对自相关函数进行截断、加窗(汉宁窗)处理及快速傅里叶变换,有效降低了传统周期图法的方差,提升了谱估计的平滑度。
- 信号特征量化提取:自动计算信号的总能量、重心频率(谱重心)、峰值频率及归一化相关系数,为信号分类与识别提供数字化支撑。
- 可视化综合展示:内置六位一体的动态图表,涵盖时域对比图、局部自相关图、互相关峰值定位图、对数功率谱密度图、互功率谱分布及累积能量占比图。
系统逻辑实现
1. 信号仿真逻辑
系统设定采样频率为 2000Hz,生成 1 秒跨度的参考信号。观测信号通过对参考信号进行 50ms 的物理位移并叠加独立的随机噪声构建而成。
2. 相关计算与时延分析
利用离散互相关算法计算参考信号与观测信号的相关程度。系统自动在时域内寻找归一化互相关系数的最大值点,将该点对应的延迟样本数转化为时间单位,从而实现时延估计。
3. BT法功率谱计算流程
这是本系统的核心频域算法:
- 首先计算信号的自相关序列。
- 随后选取自相关序列中心点附近的长度进行截断(取样点总数的 1/4),以平衡频率分辨率与稳定性。
- 应用手动构建的汉宁窗(Hanning Window)对序列加窗,抑制频谱泄露。
- 最后进行 FFT 变换并应用 fftshift 平移,得到从低频到高频分布的功率谱密度。
4. 特征参数计算
- 能量计算:基于时域样本的平方和均值计算平均功率。
- 谱重心(Center Frequency):将正频段内的频率值与其对应的功率幅值按权重加权平均,反映信号能量集中的频域质心。
- 峰值频率:提取 PSD 曲线中的全局最大值所对应的频率点,用于识别主频成分。
关键函数与算法说明
- xcorr 函数应用:在计算 ACF 时采用偏置校正(unbiased)模式确保估计的无偏性;在计算 CCF 时采用归一化(coeff)模式,使互相关系数处于 [-1, 1] 之间,便于评估相似度。
- 加窗平滑处理:代码通过手动生成的三角余弦公式实现汉宁窗,避免了对信号处理工具箱中特定窗口函数的依赖,增强了代码的独立性。
- 互功率谱密度(CPSD):通过对互相关函数直接进行傅里叶变换,分析两路信号在不同频率成分上的共有特征。
- 累积能量分布:对功率谱进行积分处理,输出能量在频域上的累积占比,辅助分析带宽占比。
使用方法
- 确保计算机已安装 MATLAB 环境(R2016b 或更高版本推荐)。
- 将脚本文件放置于 MATLAB 当前工作目录下。
- 直接运行主程序,系统将依次执行信号生成、相关分析、谱估计及特征提取任务。
- 在命令行窗口查看打印的分析报告(包含时延误差、各频率特征量等数据)。
- 在弹出的图形窗口中观察各项分析结果的可视化曲线。
系统要求
- 软件环境:MATLAB
- 基础功能:代码内含备用辅助函数,支持在无信号处理工具箱的基本环境下运行核心算法(如需扩展可启用手动实现的简易互相关逻辑)。
- 硬件建议:标准台式机或笔记本电脑均可,内存建议 4GB 以上以满足 FFT 与大量绘图的数据处理需求。