基于小波变换的信号突变点检测与谐波分析系统
项目简介
本项目旨在利用小波变换(Wavelet Transform)优异的时频局部化特性,解决电力信号分析中“既要检测瞬态突变,又要分析稳态谐波”的难题。系统通过MATLAB脚本构建了一套完整的仿真与分析流程,能够生成包含基波、多次谐波、高斯白噪声以及特定物理故障(电压暂降、高频脉冲)的复杂电力信号。
通过离散小波变换(DWT)的多尺度分解,系统利用高频细节系数的模极大值原理实现了对突变时刻的精准定位;结合快速傅里叶变换(FFT),系统同时完成了频谱分析与总谐波畸变率(THD)的定量计算。
功能特性
- 复杂电力信号仿真:能够自动生成包含50Hz基波、3/5/7次谐波、高斯白噪声(SNR 40dB)的混合信号,并叠加特定的瞬态干扰。
- 瞬态突变模拟:内置两种典型干扰模型:
*
电压暂降 (Sag):模拟幅值突然跌落50%并通过持续一段时间。
*
高频脉冲 (Pulse):模拟大幅值的正负尖峰干扰。
- 多尺度小波分解:利用
db4 小波基对信号进行5层分解,分离出不同频带的近似系数(低频)和细节系数(高频)。 - 突变点精确定位:基于小波模极大值原理,通过分析第一层细节系数(d1)自动识别并标记信号的突变时刻。
- 全面谐波分析:自动识别基波频率与幅值,提取各次主要谐波分量,并根据定义计算总谐波畸变率(THD)。
- 去噪重构演示:演示利用小波软阈值方法对含噪信号进行去噪处理的效果。
系统要求
- 软件环境:MATLAB R2016a 及以上版本
- 工具箱依赖:
* Signal Processing Toolbox(信号处理工具箱)
* Wavelet Toolbox(小波工具箱)
使用方法
- 确保MATLAB已安装上述工具箱。
- 将脚本文件保存到本地目录。
- 在MATLAB命令窗口或编辑器中直接运行
main 函数。 - 程序将自动清理工作区,顺序执行信号生成、检测、分析流程,并弹出4个可视化图表窗口以及在控制台输出详细的检测报告。
核心算法与实现细节
本项目核心逻辑封装在 main 函数中,具体的实现流程分析如下:
1. 信号建模与预处理
程序首先构建了一个采样频率为 10kHz、时长 0.2s 的离散时间系统。
- 稳态构建:以 50Hz 为基波,叠加了幅值分别为基波 15%、5%、2% 的 3、5、7 次谐波,并引入信噪比为 40dB 的高斯白噪声。
- 故障注入:
* 在
t=0.05s 处,通过将后续 0.01s 内的数据乘以 0.5 来模拟电压暂降(Voltage Sag)。
* 在
t=0.12s 处,对相邻两个采样点分别施加正负大幅值增量,模拟高频脉冲干扰。
2. DWT 多尺度分解
选用 Daubechies 4 (
db4) 小波作为基函数,因为它具有较好的紧支集特性,适合捕捉突变信号。
- 调用
wavedec 对合成信号进行 5 层分解。 - 提取细节系数 (
d1 - d4) 和第5层近似系数 (a5)。其中 d1 包含最高频成分,a5 代表低频基波趋势。
3. 基于模极大值的突变检测
这是系统的核心检测模块。由于信号突变点包含丰富的高频信息,在小波变换下会表现为细节系数的局部模极大值。
- 目标层选取:选取第一层细节系数 (
d1) 进行分析,因为该层时间分辨率最高。 - 阈值设定:计算
d1 绝对值的最大值,设定 40% 的最大值作为动态检测阈值,以滤除背景噪声引起的微小波动。 - 峰值搜索:使用
findpeaks 函数寻找超过阈值的极值点位置。 - 时域映射:将
d1 系数的索引通过线性关系映射回原始信号的时间轴(考虑到下采样,索引约为原信号的一半),从而在时域图上标记出红色的检测点。
4. 频谱分析与 THD 计算
为了评估电能质量,系统利用 FFT 进行频域分析。
- 频谱计算:进行 FFT 变换并转换为单边频谱。
- 基波提取:自动搜索频谱中的最大峰值确定基波频率(约 50Hz)和幅值。
- 谐波扫描:在基波频率的整数倍(2至20次)附近设置带宽窗口(±5Hz),搜索各次谐波幅值。
- THD 计算:累计所有识别出的谐波能量,根据公式
THD = sqrt(sum(Harmonic_Amps^2)) / Fundamental_Amp 计算总谐波畸变率,并在图表中显示结果。
5. 小波去噪
系统演示了利用小波进行信号还原的能力。
- 使用
ddencmp 获取默认的去噪阈值参数。 - 调用
wdencmp 对信号进行全局阈值去噪。 - 注:代码特意展示了去噪后的波形对比,这有助于观察者理解强力去噪虽然能平滑噪声,但也可能削弱原本明显的突变特征,体现了检测与去噪在参数设置上的权衡。
输出结果说明
程序运行后将生成以下可视化内容:
- 原始信号分析图:展示含噪声、谐波及突变的波形,并用红色标记自动检测到的突变点。
- 小波细节系数图谱:展示
d1 系数的变化情况,直观显示模极大值与突变点的对应关系。 - 小波多尺度分解展示:从上至下展示原始信号、低频近似(a5)及各层细节(d4-d1),清晰呈现信号从低频趋势到高频细节的分布。
- 谐波频谱分析图:柱状图显示0-1000Hz的频谱分布,标注各次主要谐波幅值及计算出的THD百分比。
- 信号去噪重构对比图:对比原始含噪信号与小波去噪后的平滑波形。
同时,MATLAB控制台将以文本形式输出检测到的具体突变时刻、幅值,以及详细的谐波幅值列表和THD数据。