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

📄 zaixianjianmonew.m

📁 ANC 在控制滤波器的输出 附加一个与参考信号 不相关的零均值高斯白噪声对次级通道在线建模
💻 M
字号:
clc;
clear all;
close all;

Lw=128;
Ls=64;

M1=5;
M2=10;
M3=191;

%count=1000;
t=0:0.0005:1;
p=2*sin(2*pi*t*300);
x=awgn(p,30);
datelong=length(x);
v=sqrt(0.01)*randn(1,datelong);
 
muw=0.0005;
mus=0.0005; 
w=zeros(1,Lw);  
ss=zeros(1,Ls);
d=zeros(1,datelong);
y=zeros(1,datelong);
vn=zeros(1,datelong);
y1=zeros(1,M1);
yn=zeros(1,datelong);
e=zeros(1,datelong);
x1=zeros(1,Lw);
x2=zeros(1,Ls);
xx1=zeros(1,M2);
xn=zeros(1,datelong);
xn1=zeros(1,Lw);
v1=zeros(1,Ls);
v2=zeros(1,Ls);

e_max=datelong; % maximum #of epochs
pi=3.14;
epoch=1;
a=[0.05 -0.001 0.001 0.8 0.6 -0.2 -0.5 -0.1 0.4 -0.05];
b=[0.05 -0.01 0.95 0.01 -0.9];

while epoch<e_max
 
   % shift new input into array U1
   for i=2:Lw
       x1(Lw-i+2)=x1(Lw-i+1);
   end
   x1(1)=x(epoch);
   for i=1:M2
        xx1(i)=x1(i);
   end 
%    for i=1:Ls
%         x2(i)=x1(i);
%    end  
   for i=2:Ls
       x2(Ls-i+2)=x2(Ls-i+1);
   end 
   x2(1)=x(epoch);
%    for i=2:Lw
%        for j=1:Ls
%         xn1(i)=xn1(i)+x2(i+j-1)*ss(j);
%        end 
%    end
    for i=2:Lw
        xn(Lw-i+2)=xn(Lw-i+1);
   end
%   xn1(1)=xn(epoch); 
  xn(1)=dot(x2,ss);
  y(epoch)=dot(x1,w);
  d(epoch)=dot(xx1,a);
  
  for i=2:M1
        y1(M1-i+2)=y1(M1-i+1);
  end 
  y1(1)=y(epoch);
  
  yn(epoch)=dot(y1,b);
  
  for i=2:Ls
       v1(Ls-i+2)=v1(Ls-i+1);
  end 
  v1(1)=v(epoch);
  for i=1:M1
  vv1(i)=v1(i);
  end 
  
  for i=2:Ls
       v2(Ls-i+2)=v2(Ls-i+1);
  end 
  v2(1)=v(epoch);


  vvn(epoch)=dot(v1,ss);
  vn(epoch)=dot(vv1,b);
  e(epoch)=d(epoch)+yn(epoch)-vn(epoch);
  f(epoch)=e(epoch)-vvn(epoch);
  
 
  for n=1:Lw
%     w(n)=w(n)-2*muw*e(epoch)*xn1(n);
    w(n)=w(n)-2*muw*e(epoch)*xn(n);
  end
  for n=1:Ls
    %ss(n)=ss(n)-2*mus*f(epoch)*v2(n);
    ss(n)=ss(n)-2*mus*f(epoch)*v2(n);
  end
%   for i=1:Lw
%       xn1(i)=0;
%   end
%   for i=1:Ls
%       v2(i)=0;
%   end
 epoch=epoch+1;
  end
  figure(1)
  
   freqz(b,1)
   title('s(z)的频率响应');
   hold on
 % figure(2)
   freqz(ss,1);
   
   title('ss(z)的频率响应');
   
%    
%  figure(3)
%    subplot(211);
%    plot(t,x); 
%    title('初级通道输入');
%    subplot(212);
%    plot(t,d);
%    title('初级通道输出');
   figure(2)
   subplot(211)
   plot(t,x);
   title('初级通道输入');
   subplot(212)
   plot(t,e);
   title('误差信号')';
   
  
    
  
   
   
   
   

⌨️ 快捷键说明

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