基于MATLAB的维格纳分布(Wigner-Ville Distribution)非平稳信号处理系统
项目简介
本项目是一套专为非平稳信号设计的时频分析系统,核心基于维格纳-维尔分布(Wigner-Ville Distribution, WVD)理论。在信号处理领域,非平稳信号的频率特征随时间动态变化,传统的傅里叶变换难以捕捉其瞬时特性。本系统通过实现标准WVD及其改进算法——伪维格纳分布(PWVD)和平滑伪维格纳分布(SPWVD),为复杂信号(如线性调频信号LFM)提供高分辨率的时频表征方案。系统集成了信号生成、预处理、时频转换、交叉项抑制、特征提取与信号去噪等全流程功能,并以可视化界面直观展示处理结果。
功能特性
- 多算法并行对比:系统同时实现了标准WVD、PWVD和SPWVD三种算法,用户可以清晰地对比不同算法在频率分辨率与交叉项抑制之间的权衡。
- 强大的抑制交叉项能力:针对多分量信号带来的干涉条纹,系统利用空域与频域双重平滑窗技术(Hamming窗与Gauss窗),显著提升了时频图的信噪比。
- 瞬时频率提取:基于时频能量分布的峰值检测技术,能够自动追踪并提取信号的瞬时频率轨迹,支持与理论值对比验证。
- 信号增强与去噪:通过在时频域设定能量阈值映射(Masking),有效剔除背景噪声,保留信号的高能量核心分量。
- 性能量化评价:引入时频聚集度指标(Concentration Index),通过计算四阶矩与二阶矩的比值,量化评价时频分析的精度。
系统实现细节
- 信号合成模块
系统模拟生成了两个相互交织的线性调频信号(LFM),分别具有正负不同的调频斜率(100Hz起始+200Hz带宽,以及300Hz起始-150Hz带宽),并加入复高斯白噪声,模拟真实的工业或雷达探测环境。
- 信号预处理
为避免标准WVD在计算过程中出现正负频率混叠,系统首先对输入信号执行希尔伯特变换(Hilbert Transform),将其转化为解析信号,从而将频率域限制在正半轴。
- 时频转换逻辑
- 标准WVD:通过循环遍历信号的每一个时间点,计算其瞬时自相关函数(双核乘积形式),随后进行快速傅里叶变换(FFT)。
- PWVD实现:在时延维度($tau$轴)引入汉明窗(Hamming Window),通过截断长时延相关性来平滑频域振荡。
- SPWVD实现:这是本系统的核心算法,在PWVD的基础上,额外在时间轴引入高斯窗(Gauss Window)进行二次卷积平滑,从而彻底消除多分量信号间的交叉项干扰。
- 瞬时特性分析
系统在SPWVD矩阵中搜索每一时刻的最大能量点,通过索引映射回频率轴,从而获取瞬时频率估计值。同时利用阈值法(0.15倍峰值能量)生成掩码矩阵,实现时频域的去噪重构。
- 结果可视化
程序自动生成一个多子图窗口,包含:
- 原始混合信号的时域波形与FFT频谱。
- 包含典型交叉项干扰的标准WVD时频图。
- 经过抑制处理后的SPWVD高清晰度时频图。
- 瞬时频率估计曲线与理论真实值的对比图。
- 经阈值去噪后的重构时频分布图。
算法逻辑分析- 核心核函数
算法的数学基础是 $z(n+tau) cdot z^*(n-tau)$。这种结构决定了WVD具有极高的自适应聚集性,但由于其二次型的本质,当信号存在多个分量时,会产生虚假的交叉项。
- 窗口函数的作用
- 时延窗(h_win):控制频域平滑,窗口越短,频域平滑越强,但频率分辨率会下降。
- 时间窗(g_win):控制时域平滑,专门用于滤除由于分量间相互干扰产生的空间振荡条纹。
- 频率偏移修正
由于离散WVD计算中自相关函数的时间间隔为两倍采样间隔,会导致采样率在形式上减半。系统在索引计算与坐标轴定义时进行了相应的频率范围修正(Fs/4量级),确保了频率轴标注的物理准确性。
使用方法
- 启动环境:确保计算机已安装MATLAB R2016b或更高版本。
- 运行程序:直接在MATLAB命令行窗口输入main并回车,或者点击编辑器中的运行按钮。
- 参数交互:用户可以根据需要修改main.m开头的系统参数,如采样率(Fs)、信号频率(f0)或信噪比(snr)。
- 结果观测:运行结束后,系统会自动弹出可视化图形界面,并在命令行终端输出计算完成状态、采样率信息以及最终的时频能量聚集度指标。
系统要求
- 软件支持:MATLAB(含有Signal Processing Toolbox信号处理工具箱)。
- 硬件要求:标准PC即可,建议内存4GB以上以支持大矩阵的FFT运算。
- 操作系统:Windows 7/10/11, macOS 或 Linux。