【MATLAB例程】多频率分段信号生成、小波变换与傅里叶变换的时频分析对比、小波检测突变信号的示例。附代码下载链接
·

程序通过对比傅里叶变换、短时傅里叶变换和小波变换,清晰展示了小波变换在非平稳信号分析和突变检测中的优势,尤其在时频局部化和突变点检测方面具有独特表现。
原创代码,非AI编写,包运行成功。请勿翻卖
程序简介
代码结构
-
信号构造与预处理:
- 采样频率设定(400 Hz),生成2秒的时间向量。
- 构造分段信号,分别在不同时间段包含不同频率成分(100 Hz、50 Hz、10 Hz + 80 Hz混合信号)。
- 添加随机噪声,模拟实际信号的复杂性。
-
傅里叶变换分析:
- 使用快速傅里叶变换(FFT)获取信号的频域信息。
- 结果仅展示各频率成分的整体幅值分布,无法提供频率随时间的变化。
-
短时傅里叶变换(STFT):
- 设置窗口参数(长度为256,重叠为220)进行时频分析。
- 结果显示频率随时间分布的粗略变化,但受限于时间和频率分辨率的折中。
-
连续小波变换分析:
- 使用Morse小波进行小波变换,分析信号的时频局部化特性。
- 提供精细的时间和频率分布信息,特别适合非平稳信号分析。
-
突变信号检测:
- 构造含突变点的信号(在0.5秒处产生突变)。
- 使用适合突变检测的小波(如Haar或db4)对信号进行小波变换。
- 结果清晰显示突变点的位置。
-
绘图对比:
- 原始信号及其时频分析结果通过多子图形式展示:
- 原始信号波形。
- 傅里叶变换频域结果。
- 短时傅里叶变换时频结果。
- 小波变换时频结果。
- 突变信号及其小波结果展示突变点时频局部化能力。

- 原始信号及其时频分析结果通过多子图形式展示:
结果解读
-
傅里叶变换(FFT):
- 优势:能准确展示信号的频率成分。
- 局限:无法显示频率随时间变化的信息。
-
短时傅里叶变换(STFT):
- 优势:在一定程度上提供时频信息。
- 局限:受限于窗口长度,时间和频率分辨率存在折中。
-
小波变换(CWT):
- 优势:同时提供高分辨率的时间和频率信息,适合分析非平稳信号。
- 在突变信号检测中,能够清晰定位突变点的位置。
运行结果
信号与处理结果对比:

突变检测:

从结果图可以看出:
- FFT能看到所有频率成分,但无法区分它们的时间位置
- STFT能看到时频分布,但边界模糊
- CWT能清晰显示每个频率成分的准确时间位置
各方法的优缺点:
-
傅里叶变换(FFT):
优点: 计算快速,频率分辨率高
缺点: 完全丢失时间信息,无法知道频率何时出现
适用: 平稳信号分析 -
短时傅里叶变换(STFT):
优点: 同时提供时频信息
缺点: 时频分辨率相互制约(海森堡不确定性)
适用: 缓慢变化的非平稳信号 -
小波变换(CWT):
优点: 自适应时频分辨率,高频时间分辨率好,低频频率分辨率好
缺点: 计算量较大
适用: 快速变化的非平稳信号,突变检测
MATLAB源代码
部分代码如下:
%% 小波变换与傅里叶变换的时频分析对比、突变信号检测
% 核心思想:展示小波变换在分析非平稳信号时的时频局部化优势
% 作者:matlabfilter(V同号,可接代码定制、讲解与调试)
% 2025-12-10/Ver1
clear; close all; clc;
rng(0);
%% 构造测试信号:频率随时间变化的非平稳信号
fs = 400; % 采样频率 (Hz)
t = 0:1/fs:2-1/fs; % 时间向量 (2秒)
N = length(t);
% 构造分段信号:不同时间段包含不同频率成分
signal = zeros(size(t));
% 第一段 (0-0.5s): 100 Hz 正弦波
idx1 = t >= 0 & t < 0.5;
signal(idx1) = sin(2*pi*100*t(idx1));
% 第二段 (0.5-1s): 50 Hz 正弦波
idx2 = t >= 0.5 & t < 1;
signal(idx2) = sin(2*pi*50*t(idx2));
% 第三段 (1-1.5s): 100 Hz 正弦波
idx3 = t >= 1 & t < 1.5;
signal(idx3) = sin(2*pi*100*t(idx3));
% 第四段 (1.5-2s): 10 Hz + 80 Hz 混合信号
idx4 = t >= 1.5 & t < 2;
signal(idx4) = sin(2*pi*40*t(idx4)) + 0.5*sin(2*pi*80*t(idx4));
% 添加少量噪声
signal = signal + 0.1*randn(size(signal));
%% 傅里叶变换分析
%% 小波变换分析
%% 短时傅里叶变换(STFT)作为对比
%% 绘图对比
完整代码下载链接:
https://download.csdn.net/download/callmeup/92449772
或⬇️
如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者
更多推荐


所有评论(0)