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

📄 limftf.m

📁 自适应滤波器程序
💻 M
字号:
%FTF算法,选用电力系统谐波信号作为输入信号。参考书目:现代数字信号处理,皇甫堪等,电子工业出版社。166页。
clear all;close all;
f1=50;ts=1/1000;n=1:256;N=256;
d=2*sin(2*pi*f1*n*ts)+1.4*sin(2*pi*f1*7*n*ts);
y1=2*sin(2*pi*f1*n*ts);
x=sin(2*pi*f1*n*ts+pi/2);M=4;lamda=0.99;
A=zeros(M,N);
B=zeros(M,N);
W=zeros(M,N);
G=zeros(M,N);
gama=ones(M+1,M);
Ef=ones(1,M);Eb=ones(1,M);x(1)=0;x(1:M)=0;
for n=M+1:N
    for m=1:M
        if n<=m-1
        a(m)=0;
        else
           a(m)=x(n-m+1);
        end
    end
    X1=a';
        for m=2:M+1
        if n<=m-1
        a1(m-1)=0;
        else
           a1(m-1)=x(n-m+1);
        end
    end
    X2=a1';

    ef(n,n-1)=x(n)-X2'*A(:,n-1);
    ef(n,n)=gama(M,n-1)*ef(n,n-1);
    Ef(n)=Ef(n-1)+ef(n,n)*ef(n,n-1);
    A(:,n)=A(:,n-1)+ef(n,n-1)*G(:,n-1);
    gama(M+1,n)=Ef(n-1)*gama(M,n-1)/Ef(n);
    k1=[0;G(:,n-1)]+ef(n,n)/Ef(n)*[1;-A(:,n)];
    K(:,n)=k1(1:M);
    k(n)=k1(end);
        eb(n,n-1)=x(n-M)-X1'*B(:,n-1);
        gama(M,n)=(1-k(n)*eb(n,n-1))^(-1)*gama(M+1,n);
        eb(n,n)=gama(M,n)*eb(n,n-1);
        Eb(n)=Eb(n-1)+eb(n,n)*eb(n,n-1);
        G(:,n)=(K(:,n)+k(n)*B(:,n-1))*gama(M,n)/gama(M+1,n);
        B(:,n)=B(:,n-1)+G(:,n)*eb(n,n-1);
        e(n,n-1)=d(n)-X1'*W(:,n-1);
        y(n)=X1'*W(:,n-1);
        W(:,n)=W(:,n-1)+G(:,n)*e(n,n-1);
        end
        plot(y);

⌨️ 快捷键说明

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