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

📄 ftf.m

📁 该程序是用MATLAB编写的自适应信号处理中的FTF算法.该算法用四个 滤波器来实现对权值的更新
💻 M
字号:
clear all
clc
N=100;
M=2; %滤波器阶数
del=0.001;
a1=1.558;
a2=-0.81;
v=randn(1,N);
u(1)=v(1);
for n=2:N-1
    u(2)=a1*u(1)+v(2);
    u(n+1)=a1*u(n)+a2*u(n-1)+v(n+1); 
    d(2)=0.2*u(2)+0.7*u(1);
    d(n+1)=0.2*u(n+1)+0.7*u(n);
end
%初始化
am=zeros(N,M);
bm=zeros(N,M);
wm=zeros(N,M);
gm=zeros(N,M);
k=0;
r(1,:)=ones(1,M+1);
r(2,:)=ones(1,M+1);
epsf=del;
epsb=del;
km=zeros(1,M);  
for n=3:N  
    uf=[u(n-1) u(n-2)];
    ub=[u(n) u(n-1)];
    ef(n,n-1)=u(n)-uf*am(n-1,:)';
    ef(n,n)=r(n-1,M)*ef(n,n-1);%ef是标量
    epsf0=epsf;
    epsf=epsf+ef(n,n-1);
    am(n,:)=am(n-1,:)+ef(n,n-1)*gm(n-1,:);
    r(n,M+1)=epsf0*r(n-1,M)/epsf;
    km1=[0 gm(n-1,:)]+ef(n,n)/epsf*[1 -am(n,:)];
   for m=1:M
       km(m)=km1(m);
   end
   k=km1(end);
    eb(2,n-1)=ub*bm(n-1,:)';
    eb(n+1,n-1)=u(n+1-M)-ub*bm(n-1,:)';
    r(n,M)=1/(1-k*eb(n,n-1))*r(n,M+1);
    eb(n,n)=r(n,M)*eb(n,n-1); 
    epsb=epsb+eb(n,n)*eb(n,n-1);
    gm(n,:)=(km+k*bm(n-1,:))*r(n,M)/r(n,M+1);
    bm(n,:)=bm(n-1,:)+gm(n,:)*eb(n,n-1);
    e(n,n-1)=d(n)-ub*wm(n-1,:)';
    wm(n,:)=wm(n-1,:)+gm(n,:)*e(n,n-1);  
end
plot(wm)

⌨️ 快捷键说明

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