|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我对一个语音信号加噪 然后用小波做降噪,用不同的阈值选取方法来去噪,但是程序出现错误,请高手帮忙看看 错误显示如下:
On line 40 ==> c1=[a3 dd1 dd2 dd3];
程序如下
[y,fs,bits]=wavread('matlab.wav');
t=0:1/fs:(size(y)-1)/fs; %将所加噪声信号的点数调整到与原始信号相同
x2=y+rand(size(y));
sound(x2,fs)
%显示波形
subplot(231);
plot(t,y);
xlabel('样本序号 n');
ylabel('(原始信号)幅值 A');
subplot(232);
plot(x2);
xlabel('样本序号 n');
ylabel('(含噪信号)幅值 A');
%用db1小波对原始信号进行3层分解并提取系数
[c,l]=wavedec(x2,3,'db1');
a3=appcoef(c,l,'db1',3);
d3=detcoef(c,l,3);
d2=detcoef(c,l,2);
d1=detcoef(c,l,1);
%对信号进行强制性消噪处理并图示结果
dd3=zeros(1,length(d3));
dd2=zeros(1,length(d2));
dd1=zeros(1,length(d1));
c1=[a3 dd1 dd2 dd3];
s1=waverec(c1,l,'db1');
subplot(233);
plot(s1);
title('强制消噪后的信号');
xlabel('样本序号 n');
ylabel('幅值 A'); |
|