资源简介

回声消除算法比较,仿射投影APA与NLMS算法比较

资源截图

代码片段和文件信息

% v1=100;%载波频率1%
% v2=200;%载波频率2%
% v3=400;%载波频率3%
% r=1000;%采样频数%
% k=1:100;
% t=(k-1)/r;%离散时间%
% s=sin(2*pi*v1*t)+sin(2*pi*v2*t)+sin(2*pi*v3*t);%由三个不同频率正玹组合的信号%
[far fs bits]   = wavread(‘play.wav‘);  
 [near fs bits]   = wavread(‘Record.wav‘);  
 far=far‘;
 near=near‘;
 M=length(far);
 temp(1:2500)=near(1:2500);
 near(1:M-2500)=near(2500:M-1);
 near(M-2500+1:M)=temp(1:2500);
 
  mm1=19000;
 mm2=22000;
 mm=mm2-mm1;
 far=far(mm1:mm2);
 near=near(mm1:mm2);
 
 L = mm+1;       %input data size 

N1 = 10;         %filter length 
nvar = .001;    %output noise variance    
w0 = zeros(N11);    %initialization for adaptive filters 
mu = 0.1;       %step-size parameter 
epsilon = 1e-5; %regularization parameter 
gamma1 = 0.08;  %error bound 
gamma2 = 0.03; 
MCruns = 10;   %Monte Carlo simulation runs 
mse_apa1 = zeros(L1);  %MSE vectors for Monte Carlo simulations 
% mse_apa2 = zeros(L21);
% mse_apa3 = zeros(L31);
 for I = 1:MCruns     
     P = 5;      %APA order 
    %%%%%%%%%%%%%%%%%%
    %%对cd1进行apa滤波
     x=far‘;
     d=near‘;
    eAPA1 = full_apa(xdN1Pw0muepsilon); 
    mse_apa1 = mse_apa1 + eAPA1.^2;  
 
 end
 mse_apa1 = mse_apa1/MCruns; 
 
 
 
   
Rin=far; %远端信号
  % % Sinn=pecho;
Sinn=near;%近端信号——近端说话人的语音信号与回声叠加构成
N=240;
M1=mm;
 x=Rin(1:N);%  x 为远端信号截短
 w=zeros(1N);
 en1=zeros(1M1);
 a=0.0001;
 u=0.5;
 Dtemp=x(1:N-1)*x(1:N-1)‘;%滤波器输入信号的能量
 sout=zeros(1M1);
 
 for i=N:M1; 
     x(N)=Rin(i); %远端信号
     D=Dtemp+x(N).^2;
     y=dot(wx);
     en1(i)=Sinn(i)-y;  
       w=w+u*en1(i)*x/(a+D);      %远端模式,进行滤波器系数更新

     end;   
%     %%%%%%%%%更新滤波器输入信号的能量值%%%%%%%%%%
     Dtemp=D-x(1).^2;
    x(1:N-1)=x(2:N);
    
  
   figure(6);
   semilogy(1:mm+1 mse_apa1‘b-‘...
       1:mmen1‘‘r--‘);
  xlim([03000]); 
 xlabel(‘k‘) ylabel(‘MSE‘) 
% g0=[0.68301;1.18301;0.31699;-0.18301];%分解高通滤波系数%
% k=[0;1;2;3];
% g1=flipud(g0).*(-1).^k;%分解低通滤波系数%
% h0=flipud(g0)/2;%重构高通滤波系数%
% h1=flipud(g1)/2;%重构低通滤波系数%

% %分解过程%

% x=conv(farh0);
% a0=x(1:2:length(x));%卷积后采样获得第一级分解近似部分%
% x=conv(farh1);
% w0=x(1:2:length(x));%卷积后采样获得第一级分解细节部分%
% x=conv(a0h0);
% a1=x(1:2:length(x));%卷积后采样获得第二级分解近似部分%
% x=conv(a0h1);
% w1=x(1:2:length(x));%卷积后采样获得第二级分解细节部分%

% x=conv(a1h0);
% a2=x(1:2:length(x));%卷积后采样获得第三级分解近似部分%
% x=conv(a1h1);
% w2=x(1:2:length(x));%卷积后采样获得第三级分解细节部分%

%  figure(2);
%  subplot(511)
%  plot(far); 
%  ylabel(‘far‘);
% subplot(512)
%  plot(a2);
%   ylabel(‘a2‘);
%  subplot(513)
%  plot(w2);
%   ylabel(‘w2‘);
%  subplot(514)
%  plot(w1);
%   ylabel(‘w1‘);
%  subplot(515)
%  plot(w0);
%   ylabel(‘w0‘);



% figure(1); %画出信号图和其频谱图%
% subplot(211)plot(s)
% ylabel(‘signal‘);
% subplot(212)stem(linspace(-r/4r/4100)abs(fftshift(fft(s))));
% ylabel(‘幅度谱‘);

% figure(2)%画出第一级近似部分与细节部分的时间和频谱图%
% subplot(221)plot(a0)
% ylabel(‘a_0‘);
% subplot(222)stem(linspace(-r/4r/452)abs(fftshift(fft(a0))));

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        4724  2012-12-06 10:45  APA.m

评论

共有 条评论