基于小波变换模极大值的信号检测系统
项目介绍
本项目是一套基于小波变换模极大值(WTMM)理论的信号处理系统,旨在解决复杂非平稳信号中的奇异性检测与特征提取问题。系统通过分析信号在不同尺度下的小波变换系数演变规律,能够精准定位信号中的突变点(如阶跃信号、脉冲尖峰),并有效区分真实信号特征与随机噪声。
该系统不依赖于外部工具箱,内部集成了自定义的频域连续小波变换算法,适用于电力故障分析、心电图识别及机械损伤检测等需要高精度时间定位的工程场景。
---
功能特性
- 非平稳信号仿真:系统内置信号发生器,可合成包含基频正弦波、矩形脉冲(双突变点)、孤立尖峰脉冲及高斯白噪声的复杂测试信号,用于验证算法的稳健性。
- 频域高效小波变换:采用基于FFT(快速傅里叶变换)的频域卷积技术实现连续小波变换(CWT),相比时域卷积大幅提升了计算速度,支持多尺度并行分析。
- 模极大值精准搜索:在连续小波变换的时间-尺度空间内,自动搜索每个尺度下的模值局部极大值点,剔除能量较低的伪极大值。
- 跨尺度特征关联:通过构建跨尺度关联匹配逻辑,在动态窗口内跟踪极大值点的演变轨迹,确保检测结果在多尺度空间的一致性。
- 利普希茨指数分析:通过对数坐标下的线性拟合,定量计算每个奇异点的利普希茨指数(Lipschitz Exponent),实现信号类型的智能化分类。
- 多维度结果可视化:提供原始信号检测点标注图、小波变换模值时频分布图以及各尺度模极大值点投影图,直观展现信号的奇异性结构。
---
详细实现逻辑
整个系统运行遵循以下标准流程:
- 信号构造与参数初始化:
设定采样频率为1000Hz,生成1秒时长信号。信号由50Hz正弦波提供趋势,在400至600点处插入幅值为1.2的矩形脉冲,在800点处设置幅值为2.5的尖峰,并叠加随机噪声。
- 自定义连续小波变换:
系统选用一阶高斯小波(gaus1)作为基小波,其频域表达式为 $psi(omega) = iomega exp(-omega^2/2)$。通过对信号进行FFT变换,在频域进行尺度缩放与卷积,最后通过逆FFT返回时域,获取1至64尺度的细节系数。
- 构建模极大值图谱:
对变换后的模值矩阵进行逐行扫描。判定准则为:当前点的模值必须大于其左右相邻点,且必须超过该尺度下最大模值的一定比例(阈值设为0.2),从而生成二值化的极大值掩码。
- 特征点提取与去噪声逻辑:
-
跟踪:以第4尺度为基准,在相邻尺度间的邻域窗口内寻找极大值链路。
-
稳定性筛选:仅保留能在超过25%的尺度区间内稳定存在的特征链,有效地滤除了随尺度增大迅速衰减的随机噪声。
-
拟合:提取链路上的幅值与尺度数据,进行 $log_2(|Wf(s,t)|)$ 与 $log_2(s)$ 的线性回归。
- 分类与输出报告:
依据提取的指数 $alpha$ 进行自动归类:
- $alpha > 0.5$:识别为脉冲或尖峰信号。
- $0 le alpha le 0.5$:识别为阶跃或边缘特征。
- $alpha < 0$:识别为噪声干扰。
---
关键算法说明
连续小波变换(CWT)内部实现
系统并未调用第三方库,而是直接在内部子函数中实现了频域CWT。这种实现方式通过
sqrt(s) * psi(s * omega) 对小波基进行频率缩放,能够保证在不同尺度下能量的归一化,并利用傅里叶变换的卷积定理实现快速计算。
利普希茨指数(Lipschitz Exponent)计算
这是本系统的核心分析手段。对于普通函数,其奇异性强弱可以通过利普希茨指数 $alpha$ 描述。程序通过执行
polyfit(log2(scales), log2(modulus_values), 1) 得到拟合直线的斜率。该斜率的小数部分反映了信号的正则性,是检测突变性质的关键指标。
重复点去重算法
在跨尺度匹配后,系统采用了基于采样点聚类的去重逻辑,通过对检测到的索引进行一定范围内的近似归类,确保每个物理奇异点仅保留一个最精确的检测结果。
---
使用方法
- 确保计算机已安装 MATLAB 环境。
- 将程序代码复制到 MATLAB 编辑器中。
- 点击“运行(Run)”按钮。
- 查看生成的图形窗口,包括:
-
Top: 信号时域波形及检测到的红圈标记。
-
Middle: 色彩斑斓的时频能量分布图。
-
Bottom: 散点组成的模极大值演变轨迹。
- 在 MATLAB 命令行窗口(Command Window)查看自动生成的《信号特征提取报告》。
---
系统要求
- 环境:MATLAB R2016b 或更高版本。
- 工具箱:无需额外的 Wavelet Toolbox。系统已内置所有必要的小波计算和分析函数。
- 性能:支持实时生成信号处理,对于长度为1000点的信号,处理时间通常在秒级。