对信号进行滤波时,如何确定滤波函数的参数?
各位,请教:在对信号进行滤波时,调用滤波函数,但是滤波函数的中各个参数如何选择?
比如下面的带通滤波函数
a=bandp(a,0.35,3,0.2,3.5,2.5,6.5,128);
我现在知道0.35是带通左边界,3是带通右边界,0.2是衰减截止左边界,3.5是衰减截止右边界。128是采样频率。
但是,这个2.5和6.5是边带区衰减DB数,这两个参数是如何选取?选择时有什么要求吗?
bandp这个不是matlab自带的函数吧,网上搜了一下其代码是:
function y=bandp(x,f1,f3,fsl,fsh,rp,rs,Fs)
%带通滤波
%使用注意事项:通带或阻带的截止频率与采样率的选取范围是不能超过采样率的一半
%即,f1,f3,fs1,fsh,的值小于 Fs/2
%x:需要带通滤波的序列
% f 1:通带左边界
% f 3:通带右边界
% fs1:衰减截止左边界
% fsh:衰变截止右边界
%rp:边带区衰减DB数设置
%rs:截止区衰减DB数设置
%FS:序列x的采样频率
% f1=300;f3=500;%通带截止频率上下限
% fsl=200;fsh=600;%阻带截止频率上下限
% rp=0.1;rs=30;%通带边衰减DB值和阻带边衰减DB值
% Fs=2000;%采样率
%
wp1=2*pi*f1/Fs;
wp3=2*pi*f3/Fs;
wsl=2*pi*fsl/Fs;
wsh=2*pi*fsh/Fs;
wp=;
ws=;
%
% 设计切比雪夫滤波器;
=cheb1ord(ws/pi,wp/pi,rp,rs);
=cheby1(n,rp,wp/pi);
%查看设计滤波器的曲线
=freqz(bz1,az1,256,Fs);
h=20*log10(abs(h));
figure;plot(w,h);title('所设计滤波器的通带曲线');grid on;
y=filter(bz1,az1,x);
end
从这里可以看出wsl和wsh分别是切比雪夫滤波器的阻带转折频率上下限
页:
[1]