循环平稳信号谱相关分析与三维可视化系统
1. 项目介绍
本项目是一个基于MATLAB开发的信号处理分析系统,专注于具有循环平稳(Cyclostationary)特性的非平稳信号分析。系统核心功能在于生成模拟调幅(AM)信号,在加性高斯白噪声(AWGN)环境下,通过短时傅里叶变换(STFT)和相关矩阵映射算法,估计信号的谱相关函数(Spectral Correlation Function, SCF)。
项目最终将计算得到的二维谱相关密度矩阵转化为高精度的三维立体曲面图和二维等高线图,直观地展示信号在谱频率(Spectrum Frequency)和循环频率(Cyclic Frequency)双平面上的特征分布。该工具可用于低信噪比下的信号检测、调制识别特征提取以及机械故障诊断研究。
2. 功能特性
- 模拟信号生成:能够生成标准的幅度调制(AM)信号,支持自定义载波频率、调制频率、调制深度等参数。
- 噪声环境模拟:内置高斯白噪声生成器,支持通过指定信噪比(SNR)来控制环境噪声强度,用于测试算法的鲁棒性。
- 谱相关密度估计:基于STFT的频域平滑算法,计算信号的复数谱相关系数,有效提取隐藏在噪声中的周期性统计特征。
- 高级可视化引擎:
*
时域波形图:展示含噪信号的原始波形。
*
3D立体曲面图:通过光照、平滑着色(Gouraud/Phong)和伪彩色映射,立体展示谱相关幅度。
*
谱相关等高线图:提供俯视角的平面投影,并辅助标记理论循环频率位置(如载波频率倍频处)。
3. 核心算法与实现逻辑分析
本系统代码主要包含以下四个核心处理阶段,以下分析基于实际代码逻辑:
3.1 系统初始化与参数配置
系统首先定义了基本的采样参数($f_s=1000$Hz)和信号时长。针对AM调制信号,设定了载波频率 $f_c$ 和调制频率 $f_m$。同时,定义了用于STFT分析的窗函数长度($N_p$)和滑动步长($L$),这两个参数直接决定了最终结果的频率分辨率和计算复杂度。
3.2 信号生成与预处理
- AM信号构造:依据公式 $x(t) = A [1 + mu cos(2pi f_m t)] cos(2pi f_c t)$ 生成纯净信号。
- 噪声叠加:根据设定的SNR计算噪声标准差,生成标准正态分布噪声并叠加到原信号上。
- 标准化:对混合信号进行去均值和单位方差归一化处理,确保后续计算幅度的统一性。
3.3 谱相关密度函数估计(核心实现)
系统采用了一种基于
STFT自相关矩阵映射的高效估计算法,而非传统的逐点FAM算法。具体步骤如下:
- STFT计算:使用汉宁窗(Hanning)对信号进行加窗分帧,计算短时傅里叶变换矩阵 $X_{STFT}$。
- 移频处理:将零频分量移至频谱中心。
- 自相关矩阵构建:计算STFT矩阵的自相关矩阵 $R_x = E[X_{STFT} cdot X_{STFT}^H]$。这一步实际上是在计算不同频率分量之间的统计相关性。
- 坐标变换(Coordinate Mapping):
* 代码通过双重循环遍历频率索引 $i$ 和 $j$。
* 利用变量代换关系将双频平面 $(f_1, f_2)$ 映射到谱相关平面 $(alpha, f)$。
*
映射关系:循环频率 $alpha$ 对应 $f_1 - f_2$(频率差),谱频率 $f$ 对应 $(f_1 + f_2)/2$(频率平均)。
* 通过累加方式构建谱相关密度矩阵 $S_{map}$。
3.4 多维可视化展示
利用MATLAB图形句柄系统进行分区域绘图:
- 时域监测:截取前500个点展示信号受噪声污染的情况。
- 3D渲染:使用
surf 函数绘制 $S_x(alpha, f)$ 的幅度谱。启用了 shading interp 进行插值平滑,使用 jet 色图,并添加了 camlight 光照效果以增强立体感。 - 特征验证:在等高线图中,代码利用
yline 绘制了白色虚线,明确标记了 $alpha = 0$ 以及 $alpha = pm 2f_c$ 的位置。在AM信号的理论推导中,这些位置应当出现显著的谱相关峰值,以此验证算法的正确性。
4. 系统要求
- 软件环境:MATLAB R2016a 或更高版本。
- 工具箱依赖:Signal Processing Toolbox(用于
hanning, fft, fftshift 等函数)。
5. 使用方法
- 启动MATLAB环境。
- 将工作目录切换至脚本所在文件夹。
- 直接运行主函数脚本。
- 系统将自动弹出一个包含三个子图的综合分析窗口,分别显示时域波形、3D谱相关图和等高线特征图。
6. 参数调整指南
若需分析不同类型的信号或调整精度,可修改脚本开头的“参数设置”部分:
- 修改
SNR 变量可观察不同噪声水平下的检测效果。 - 修改
Np(窗长)可调整频率分辨率:增加 Np 会提高谱频率 $f$ 的分辨率,但会降低时间分辨率(影响循环频率估计的统计稳定性)。 - 修改
fc 和 fm 可改变信号的调制特征,观察3D图中峰值位置的移动。