赞
踩
- % 生成含噪声的信号
- t = 0:0.001:1;
- x = sin(2*pi*50*t) + sin(2*pi*120*t);
- xn = x + 2*randn(size(t));
-
- % 使用小波变换进行去噪
- wn = 'db1'; % 使用Daubechies小波
- [swa, swd] = swt(xn, 1, wn); % 进行小波分解
- swtThresh = swd;
- swtThresh(abs(swd) < 0.4) = 0; % 设定阈值去噪
- y = iswt(swa, swtThresh, wn); % 反变换得到去噪信号
-
- % 绘图
- subplot(3,1,1);
- plot(t, x);
- title('原始信号');
- subplot(3,1,2);
- plot(t, xn);
- title('含噪声信号');
- subplot(3,1,3);
- plot(t, y);
- title('去噪后信号');
此代码首先生成一个含有两个正弦波(50 Hz和120 Hz)和随机噪声的信号。然后,使用Daubechies小波(db1)进行单层小波变换,以提取信号的小波系数。通过设定阈值,将小波细节系数中低于该阈值的部分置零,达到去噪目的。最后,使用逆小波变换重构信号。绘图部分展示了原始信号、含噪声信号和去噪后的信号。
目录
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。