• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-05
  • 语言: Matlab
  • 标签: ANC  

资源简介

基于FXLMS算法的主动噪声控制,完成的是单频率的前馈双通道的主动噪声控制算法

资源截图

代码片段和文件信息

% filter parameters
tic;
M=16;      % number of taps
step=0.0001;   % step-size parameteR
e_max=5024; % maximum #of epochs 
K=120;
G=170;
Y=500;
D=1000;
% constants
pi=3.14;
% initialize
pp=zeros(124);
qq=zeros(17);
pr=zeros(124);
x=zeros(121);
w1=zeros(1M);
w2=zeros(1M);
r11=zeros(1M);
r12=zeros(1M);
r21=zeros(1M);
r22=zeros(1M);
ss1=zeros(1e_max);
ss2=zeros(1e_max);
ee1=zeros(1e_max);
ee2=zeros(1e_max);
dd=zeros(1e_max);
hp=[1 0.05 0.1 0.09 0.05 0.5 0.002];
hr=[1 0.5 0.02 0.05];
h11=[1 0.5 0.01 0.9 0.005 0.02];
h22=[1 0.5 0.01 0.9 0.005 0.02];
h12=[1 0.6 0.02 0.8 0.05 0.004];
h21=[1 0.6 0.02 0.8 0.05 0.004];
%计算部分
for t=1:24
    pp(t)=sin((K/D)*2*pi*(25-t)+pi/5 )+sin((G/D)*2*pi*(25-t))+sin((Y/D)*2*pi*(25-t));
    pr(t)=sin((K/D)*2*pi*(25-t)+pi/5 )+sin((G/D)*2*pi*(25-t))+sin((Y/D)*2*pi*(25-t));
end
t=25;
epoch=0;
while epoch     input=sin((K/D)*2*pi*t+pi/5 )+sin((G/D)*2*pi*t)+sin((Y/D)*2*pi*t);
      for i=2:7
          pp(7-i+2)=pp(7-i+1);
      end
      pp(1)=input;
      for i=1:7
      qq(i)=pp(i);
      end
      d=dot(qqhp); 
      dd(epoch+1)=d;     %期望信号  
      for i=2:24
          pr(24-i+2)=pr(24-i+1);
      end
      pr(1)=input;
      for i=1:21
          for j=1:4 
              x(i)=x(i)+pr(i+j-1)*hr(j);             
          end
      end
      for i=1:16             
          for j=1:6  
              r11(i)= r11(i)+x(i+j-1)*h11(j);
    

评论

共有 条评论