信号多维时频联合分析与特征提取系统
项目简介
本项目是一个基于MATLAB开发的集成化信号处理演示系统,旨在通过多维时频分析技术对非平稳信号进行深度刻画。系统通过对合成信号(包含线性调频分量、高频正弦分量及随机噪声)的综合处理,直观展示了从一维时域波形转换到二维时频平面及三维能量曲面的全过程。项目不仅实现了经典的线性与二次型时频分析算法,还集成了特征提取与信号重构功能,为雷达、通信、故障诊断等领域的信号分析提供了理论验证与算法参考。
核心功能特性
本项目具备以下核心功能模块:
- 多类型信号合成:能够生成包含线性调频(LFM)、单频正弦及加性高斯白噪声的复杂非平稳信号。
- 四大分析架构:
- 短时傅立叶变换(STFT):提供基础的局部频谱演化观察。
- Wigner-Ville分布(WVD):提供高聚集性的时频表征。
- 平滑伪Wigner-Ville分布(SPWVD):作为Cohen类分布的代表,通过时间与频率双重平滑抑制交叉项。
- 连续小波变换(CWT):基于Morlet小波的多分辨率尺度分析。
- 关键特征提取:
- 瞬时频率提取:基于STFT能量脊线自动估算信号分量的频率随时间变化轨迹。
- 信号重构与评估:利用小波系数进行近似信号重构,并计算均方误差(MSE)评价保真度。
- 深度可视化:系统自动生成九宫格对比图,涵盖时域图、二维能量云图、三维功率谱曲面、对比等高线图及重构波形对比。
系统实现逻辑
系统运行遵循以下标准处理流程:
- 参数初始化:定义采样频率(1000Hz)与时长,构建一个频率从50Hz演变为150Hz的LFM信号与一个300Hz的固定频率信号。
- 预处理阶段:为了消除二次型分析中的频谱混叠,系统首先通过手动实现的希尔伯特变换函数将实信号转换为复解析信号。
- 时频运算并行化:
- 执行滑动窗口傅立叶运算,通过定义的重叠率提高时间分辨率。
- 计算解析信号的瞬时相关函数,进行FFT获得WVD分布。
- 在WVD基础上,引入独立的平滑窗口对时间轴和频率轴进行卷积滤波。
- 在频域利用Morlet小波基函数与信号频谱进行乘积,实现快速CWT计算。
- 特征量化与展示:
- 搜索STFT矩阵中每一列的最大值索引,映射回频率轴获得瞬时频率估计。
- 对小波系数在尺度轴上进行积分补偿,恢复时域波形。
- 最终调用绘图指令,将九种不同的物理含义图表集中显示。
关键算法实现细节
- 解析信号转换(Hilbert实现):
系统通过fft将信号变换到频域,根据采样点数N的奇偶性构造频率掩码,对正频率分量翻倍、负频率分量置零,再通过ifft还原,确保分析结果不含负频率。
- 短时傅立叶变换(STFT):
采用滑动窗机制,内部集成了自定义的Hamming、Hanning和Blackman窗函数。通过对每个分段信号进行FFT并将结果截取正频率部分,构建时频能量矩阵。
- 维格纳-威尔分布(WVD):
核心在于计算局部自相关函数 R(t, tau) = z(t+tau) * conj(z(t-tau))。系统针对每个时间点确定最大的滞后量tau,构建相关序列并进行FFT,呈现出极高的时频聚集性。
- 平滑伪Wigner-Ville分布(SPWVD):
这是项目的核心自研算法之一。它引入了两个独立的窗函数:时间平滑窗(g)用于在时间轴方向抑制交叉项,频率平滑窗(h)用于在频率轴方向辅助平滑。通过三重循环(时间、滞后、平滑补偿)精确控制内核计算,有效解决了传统WVD中多个分量间的干涉条纹。
- 连续小波变换(CWT):
采用频域实现法。利用Morlet小波在频域的解析表达式 psi(w) = exp(-(s*w - w0)^2 / 2),通过在频率轴上调整尺度参数s,与信号频谱逐点相乘后逆变换,实现了非平稳信号的多尺度分解。
- 窗函数自定义模块:
系统不依赖外部库,独立实现了Hamming窗、Hanning窗和Blackman窗的数学公式,确保了算法底层逻辑的闭环。
使用方法
- 环境配置:准备好MATLAB运行环境。
- 运行分析:直接运行主函数。系统将自动执行信号生成、四种算法分析及特征提取。
- 结果观察:运行结束后会弹出1200x800像素的可视化窗口,用户可通过九个子图对比不同算法在时间分辨率、频率分辨率以及抑制伪峰方面的表现。
- 参数调整:用户可修改主函数开头的参数区域,如改变采样率fs、调整SPWVD的窗长(g_len, h_len)或更换小波分析的尺度范围scales。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 基础工具箱:仅需MATLAB核心数学运算库,所有核心信号处理算子(STFT、WVD、Hilbert、CWT、Windows)均已在代码内部手动实现,无需額外的信号处理工具箱。
- 硬件建议:4GB以上内存,以支持高维矩阵运算。