Matlab数字信号处理与应用源代码
源代码在线查看: 6-10.m
%例程6-10 方波信号削噪
% e.g.6-10.m for example6-10;
snr=3; %设置信噪比
init=21054614826; %设置随机数初值
[si,xi]=wnoise(1,11,snr,init); %产生矩形波信号和含白噪声信号
si=si(1:2000);
xi=xi(1:2000);
%用sym8小波进行三层分解并用heursure软阈值进行小波系数阈值化
xd=wden(xi,'heursure','s','one',3,'sym8');
figure
subplot(3,2,1);
plot(si);
title('原始信号');
subplot(3,2,2)
plot(xi)
title('含噪声信号');
ssi=fft(si);
ssi=abs(ssi);
xxi=fft(xi);
absx=abs (xxi);
subplot(3,2,3);
plot(ssi);
title('原始信号的频谱');
subplot(3,2,4);
plot(absx);
title('含噪信号的频谱');
%进行低通滤波
indd2=200:1800;
xxi(indd2)=zeros(size(indd2));
xden=ifft(xxi); %进行傅立叶反变换
xden=real(xden);
xden=abs(xden);
subplot(3,2,5);
plot(xd);
title('小波消噪后的信号');
subplot(3,2,6);
plot(xden);
title('傅立叶分析消噪后的信号');