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

📄 filter.m

📁 椭圆滤波器具有很好的窄带滤波能力
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 椭圆滤波器设计:无论信号频率怎么改变,椭圆滤波器系数都不随之改变,因此可以跟踪
%                上信号频率,做到频率跟踪滤波。而且Goertzel算法里的
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;
N=3048;N1=2048;
f1=50;f2=3*f1;f3=5*f1;fs=f1*256;Rp=0.5;Rs=60;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%左路信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
pn=0.000001;
%pn=0.0001;
u=randn(1,N);u=u*sqrt(pn);
real_left=8.00*pi/180; % hudu pi/180=0.0174532925
fi2=2*pi*rand(1);
fi3=2*pi*rand(1);
n=1:N;
t=2*pi*n/fs;
xl=sin(f1*t+real_left*ones(1,N))+0.1*sin(f2*t+fi2*ones(1,N))+0.01*sin(f3*t+fi3*ones(1,N))+u;%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%右路信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
u=randn(1,N);u=u*sqrt(pn);
real_right=12.00*pi/180;
fi2=2*pi*rand(1) ;
fi3=2*pi*rand(1) ;
n=1:N;
t=2*pi*n/fs;
xr=sin(f1*t+real_right*ones(1,N))+0.1*sin(f2*t+fi2*ones(1,N))+0.01*sin(f3*t+fi3*ones(1,N))+u;%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% filter design
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %[n1,wn]=ellipord([1.6/256,2.4/256],[1.2/256,3/256],Rp,Rs);
 [b,a]=ellip(4,0.1,60,3/256);
 xl0=filter(b,a,xl);
 xr0=filter(b,a,xr);
 Y1=abs(fft(xl));
 Y2=abs(fft(xl0));
 subplot(2,1,1);
 n=1:N;
 plot(n,abs(Y1),n,Y2,'r');% 观察滤波效果,结果显示频率改变,滤波器系数不用改变,都有很好的滤波器效果。
 for n=1:N1
    xl0(n)=xl0(n+1000);
    xr0(n)=xr0(n+1000);
end

⌨️ 快捷键说明

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