利用matlab 生成多频率信号加随机噪声信号,并利用小波变换 降噪,画出各尺度下的时间波形
时间: 2024-05-01 21:22:43 浏览: 14
以下是一个生成多频率信号加随机噪声信号的 MATLAB 代码示例:
```matlab
% 生成多频率信号
fs = 1000; % 采样率
t = 0:1/fs:2; % 时间轴
f1 = 10; % 第一个频率
f2 = 50; % 第二个频率
f3 = 100; % 第三个频率
x = sin(2*pi*f1*t) + sin(2*pi*f2*t) + sin(2*pi*f3*t);
% 加入随机噪声
noise = randn(size(x));
y = x + noise;
% 小波变换降噪
wname = 'db4'; % 选用 Daubechies 4 小波基
level = 4; % 分解层数
[C, L] = wavedec(y, level, wname); % 小波分解
thr = wthrmngr('dw2dcomp', 'lvd', C, L); % 计算阈值
sorh = 's'; % 选用软阈值法
xd = wdencmp('gbl', C, L, wname, level, thr, sorh); % 小波重构
% 画出各尺度下的时间波形
for i = 1:level+1
subplot(level+1, 1, i);
plot(waverec(C(1:L(i)), L(i:end), wname));
title(sprintf('Level %d', i-1));
end
```
运行上述代码,可以得到一个包含各尺度下时间波形的图像。其中,第一行是原始信号的时间波形,接下来的每一行分别是小波分解的各个尺度下的时间波形。
注意:以上代码示例仅供参考,具体实现方式可能因应用场景而异。