频域自适应 matlab,关于频域LMS自适应算法在回声抵消中应用的讨论

clear;

SS=15000;

N=64;

J=64;

M=SS-J+1;

u=0.020;  %  2-0

wn=zeros(N,M);

dn=zeros(M,1);

xn=zeros(N,M);

noise=wavread('noise1.wav');

noise=noise(1:SS);                                    % 初始化

b=1;

zz=[1 0.5];     %0-1

%zzz=[1 -0.999];

c=filter(b,zz,noise);

cc=c(1:SS);                                              % 白噪声变为有色噪声

yuyin=wavread('FemaleVoice.wav');

yuyin1=yuyin(14000:SS+13999);

yuyin2=wavread('signal2.wav');

v=zeros(1,18000);

v(3001:8000)=5*yuyin2(1:5000)';

x=yuyin1(1:SS)+0.4444*cc(1:SS)';                     %  读入语音信号

wx=[0.3980   -1.4098   -0.0976    0.2061    0.7556    0.7221   -0.6634   -0.0193   -0.1545    0.0759 ...

0.0746    0.2668   0.1990    0.6794    0.0390    0.0300   -0.2585    0.0132    0.0196   -0.1571...

-0.0511   -0.2134   -0.1050    0.2195  0.0860    0.0982   -0.1320   -0.1543    0.1284    0.0468 ...

0.0302    0.0479   -0.0521    0.0418   -0.0697    0.0332   -0.0545   -0.0506    0.0008   -0.0056 ...

0.0525    0.0078    0.0293    0.0361    0.0189    0.0114   -0.0044   -0.0168   0.0365   -0.0009 ...

0.0144    0.0080   -0.0061    0.0188   -0.0060   -0.0060   -0.0033   -0.0080    0.0001   -0.0003...

-0.0000   -0.0018   -0.0057   -0.0090];   %  回声路径参数

xx=zeros(J,SS-J+1);

for i=1:SS-J+1;

xx(:,i)=x(i+J-1:-1:i,1);

end

dd(1)=xx(:,1)'*wx';%+0.5*noise(1);

for i=2:SS-J+1;

dd(i)=xx(:,i)'*wx';%+0.5*noise(i);

end

dn=dd';

for i=1:M;

xn(:,i)=x(i+N-1:-1:i,1);

end                                                                %   进行必要的矩阵变换

for i=1:M

yn(i)=wn(:,i)'*xn(:,i);

e(i)=dn(i)-yn(i);

wn(:,i+1)=wn(:,i)+2*u*e(i)*xn(:,i);                            %   LMS的自适应算法  !!!

end

mse=(e-mean(e)).^2;

subplot(4,1,3);

plot(e);

%axis([1 5000  -5 5]);

ylabel('误差e');

grid

subplot(4,1,2);

plot(yn);

%axis([1 5000 -2 2]);

ylabel('回声估计')  ;

grid

subplot(4,1,1);

plot(dn);

%axis([1 18000 -1 1]);

ylabel('模拟回声 dn');

grid

subplot(4,1,4);

semilogy(mse);

ylabel('均方误差 mse');

grid                                                                 %         输出图形

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值