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

📄 f-ulms.m

📁 实现自适应算法
💻 M
字号:
% filter parameters
clear all
close all
M=20;% number of taps of A filter
M1=24;
M2=10;%number of taps of M(z) filter
M3=5%number of taps of B filter
M4=10
mu=0.001;   % step-size parameter
e_max=1001; % maximum #of epochs
pi=3.14;
N=1001;

% initialize
w=zeros(1,M);
w0=zeros(1,M3);
u1=zeros(1,M1);
u2=zeros(1,M4);
u=zeros()
r1=zeros(1,M);
r2=zeros(1,M3)
w2=[0.05,-0.001,0.001,0.8,0.6,-0.2,-0.5,-0.7,0.4,-0.05];
w3=[0.95,-0.5,0.1,0.05,-0.005];
uu=zeros(1,10);
O1=zeros(1,N);
O2=zeros(1,N);
O=zeros(1,N)
e=zeros(1,N);

% generate signal
t=0:0.001:1;
s=sin(2*pi*50*t) ;
%butterworth fillter
%s1=rand(size(t))
%[b,a]=butter(8,100/500)
%s=filter(b,a,s1)


epoch=1;

while epoch<e_max
 
   % shift new input into array U1
   for i=2:M1
       u1(M1-i+2)=u1(M1-i+1);
   end
   u1(1)=s(epoch);

   for i=1:M2
        uu1(i)=u1(i);
   end   
%compute reference singal U1*M(Z)
 output=dot(uu1,w2);
 O(epoch)=output;
%compute r1=u1*P(z)
 for i=1:M
     for j=1:5
         r1(i)=r1(i)+u1(i+j-1)*w3(j);
      end
 end
%compute output1
output1=dot(r1,w);
O1(epoch)=output1;

%compute filter B
% shift new input into array U2
for i=2:M4
       u2(M4-i+2)=u2(M4-i+1);
end
for i=1:M4-1
    uu2(i)=u2(i+1);
end
%compute r2=uu2*P(z)
 for i=1:M3
     for j=1:5
         r2(i)=r2(i)+uu2(i+j-1)*w3(j);
      end
 end
%computer output2
output2=dot(r2,w0);
O2(epoch)=output2;
u2(1)=output1+output2;

 %compute error
 e(epoch)=output2+output1+output;
 % update weights
  for n=1:M
    w(n)=w(n)-2*mu*e(epoch)*r1(n);
  end
  for n=1:M3
    w0(n)=w0(n)-2*mu*e(epoch)*r2(n);
  end
  for i=1:M
    r1(i)=0;
  end
  for i=1:M3
      r2(i)=0;
  end
 epoch=epoch+1;
end
% plot noise and filtered signal
   figure(1)
   subplot(211);
   plot(t,s); 
   title('初级通道输入');
   
   
   subplot(212);
   plot(t,O);
   title('初级通道输出');
  

   
   
   figure(2)
   subplot(211);
   plot(t,O2);
   title('滤波器B输出信号');
 
   subplot(212);
   plot(t,e);
   title('误差信号')';



    
    
   
    
    
    
    
    

⌨️ 快捷键说明

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