📄 pinyu.asv
字号:
clear all;
syorder=8;a=0.97;
r=50/100000;
mu=0.005;
[signal,fs]=wavread('speech');
signal=signal';
n=length(signal);
m=ceil(n/syorder);
l=syorder;
ls=syorder*l-n;
wk=zeros(syorder,n);
wkk=zeros(syorder*2,n);
zeros0=zeros(syorder,1);
y=zeros(2*syorder,n);
d1=zeros(syorder,n);
y1=zeros(syorder,n);
en=zeros(syorder,n);
q1=zeros(syorder,n);
q=zeros(2*syorder,n);
E=zeros(2*syorder,n);
noise=zeros(1,n);
noise=awgn(noise,5);
U=zeros(2*l,2*l);
uk=zeros(l,2*l);
noise=[zeros(1,syorder),noise,zeros(1,ls)];
signal=[zeros(1,syorder),signal,zeros(1,ls)];
dn=signal+noise;
wkk=fft([wk(:,1);zeros(size(wk(:,1)))]);
for i=2:m-1
u(i,:)=fft(noise(i*l-l:i*l+l-1));
for k=1:2*l
U(k,k)=u(i,k);
end
y(:,i)=ifft(U*wkk);
y1(:,i)=y(syorder+1:end,i);
d1(:,i)=dn(i*l:i*l+l-1)';
en(:,i)=d1(:,i)-y1(:,i);
E(:,i)=fft([zeros0;en(:,i)]);
q(:,i)=ifft(U'*E(:,i));
q1(:,i)=q(1:syorder,i);
wkk=wkk+mu*fft([q1(:,i);zeros0]);
end
for i=2:m-1
e(i*syorder-2*syorder+1:i*syorder-syorder)=en(:,i)';
end
subplot(3,1,1)
plot(1:n-syorder-1,e,'r');
grid;
title('en');
subplot(3,1,2);
plot(1:syorder+n,signal,'b');
grid
title('signal');
subplot(3,1,3);
plot(1:n+syorder,dn,'b');
grid
title('N2n1');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -