||
小波分析在分离信号的不同成分中的应用。
1.正弦信号加白噪声
下面使用小波分析一个由正弦信号(正弦信号的周期约为200)加白噪声组成的信号,说明小波分析如何分离这两种信号。
程序代码如下所示:
load noissin;
x=noissin;
figure;
subplot(611);
plot(x);
ylabel('x');
%使用db5对信号进行5层分解。
[c,l]=wavedec(x,5,'db5');
for i=1:5
%对分解的第5层到第1层的低频系数进行重构
a=wrcoef('a',c,l,'db5',6-i);
subplot(6,1,i+1);
plot(a);
ylabel(['a',num2str(6-i)]);
end
figure;
subplot(611)
plot(x);
ylabel('x');
for i=1:5
%对分解的第5层到第1层的高频系数进行重构
d=wrcoef('d',c,l,'db5',6-i);
subplot(6,1,i+1);
plot(d);
ylabel(['d',num2str(6-i)]);
end
小波分解的细节信号是由白噪声分解得到的,而正弦信号可以在图中的近似信号a5得到,因为这一层噪声对正弦信号的影响可以忽略了。
2.正弦信号加三角波
下面通过使用小波分析一个由正弦信号(正弦信号的周期为20)加三角波组成的信号,说明小波分析如何分离这两种信号。
程序代码如下:
load trsin;
x=trsin;
subplot(711);
plot(x);
axis tight;
ylabel('x');
%使用db5对信号进行6层分解。
[c,l]=wavedec(x,6,'db5');
for i=1:6
%对分解的第6层到第1层的低频系数进行重构
a=wrcoef('a',c,l,'db5',7-i);
subplot(7,1,i+1);
plot(a);
axis tight;
ylabel(['a',num2str(7-i)]);
end
figure;
subplot(711);
plot(x);
axis tight;
ylabel('x');
for i=1:6
%对分解的第5层到第1层的高频系数进行重构
d=wrcoef('d',c,l,'db5',7-i);
subplot(7,1,i+1);
plot(d);
axis tight;
ylabel(['d',num2str(7-i)]);
end
以上程序可在MATLAB6.5命令窗口下直接运行。
Archiver|科学网 ( 京ICP备14006957 )
GMT+8, 2015-1-14 00:14
Powered by ScienceNet.cn
Copyright © 2007-2014 中国科学报社