⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lms_cancellationpram.m

📁 自适应滤波器的设计
💻 M
字号:
  %自适应噪声抵消matlab编程实现—lms实现
clear all;
r1=wavread('C:\MATLAB6p5p1\work\sound1.wav'); %读入含噪语音信号
r2=wavread('C:\MATLAB6p5p1\work\noise.wav');  %读入噪声信号
 r1=r1(1:30000);         %取语音信号-写成行向量1*30000
 r2=r2(1:30000);         %取噪声信号-写成行向量1*30000
 figure(1);               %画出语音信号的时域图形
  plot(r1,'b');
  xlabel('t');
  ylabel('value of sound1');
  title('sound1');
  figure(2);         %画出噪声信号的时域图形
  plot(r2,'b');
   xlabel('t');
   ylabel('value of noise');
   title('noise'); 
 k=64;
 N=size(r1);
N=length(r1);
 error=zeros(N,1);   %误差矩阵N*1
 db_error=error;
 output=zeros(N,1);
 mu=0.01;
 win=zeros(k,1);
 for   i=k:N
      input1=r1(i);
      input2=r2(i:-1:i-k+1);
      e=input1-input2*win;       %迭代(Matrix dimensions must agree)
      output(i)=e;                   %最后的 语音输出
      win=win+2*mu*e*input2';        %win 是列向量  input2 是行向量   维数不一致
      error(i)=error(i)+e^2;    
  end;
  wavwrite(output,'cancelloutput_lms.wav');
  figure(3);   %画出抵消的误差信号变化的时域图形
  db_error=10*log10(error);
  plot(db_error,'b');
  xlabel('t');
  ylabel('value of db_error');
  title('db_error');
     figure(4);   %画出抵消后的语音信号的时域图形
  plot(output,'b');
  xlabel('t');
  ylabel('value of output');
  title('output');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -