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

📄 mine.asv

📁 本压缩包括最小均方滤波器的源码
💻 ASV
字号:
function v=minE(yn,dn,k)
%实现时域最小平方误差逆滤波器;
%yn为受干扰信号;
%dn为理想输出信号;
%M为分子系数的个数;
%N为分母系数的个数;
%Ryy为输入信号的自相关矩阵;
%Ryd为输入信号和理想输出信号的互相关矩阵;
M=length(yn);                                 %计算输入信号的长度
N=length(dn);                                 %计算理想输出信号的长度
if M==N
   dn1=[dn 0 0 0];
   N=N+3;
else
   dn1=dn;
end
Ryy=selfcorr(yn,N);                           %调用自相关矩阵函数
Ryd=intcorr(yn,dn1,N);                         %调用互相关矩阵函数
h=Ryy\Ryd;                                    %得到中间h(n)
if k>M+N                                      %检验要求项数合理与否
    disp('请检查输入的期望输出项数k是否合理。');
    else if k/2>M  
            k1=M;
            k2=N-M;
        else
            [k1,k2]=optimizek(k);             %优化分母、分子项数
        end
end
h1=Toeplitz1(h,k1,k2);                        %得到h1
h2=Toeplitz2(h,k1,k2);                        %得到h2
a=h1\h2;                                      %得到分母系数;
b=numerator(h,a',k1);                         %得到分子系数;
a=[1 a'];
disp('分子系数为:');
num=b
disp('分母系数为:');
den=a
[C A B]=dir2cas(b,a);                       
[r p k]=residuez(b,a);                        %计算极点
yn1=[yn 0 0 0 0 0];
v=filter(b,a,yn1);                             %求输出序列

figure(1)
subplot(2,1,1);stem(dn,'b','.');
subplot(2,1,2);stem(v,'r','x');
title('蓝色表示理想输出,红色表示时域最小平方逼近');


figure(2)
m=length(dn);
v1=v(1:1:m);
xn=v1-dn;
energy(xn);

⌨️ 快捷键说明

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