第一:综述:
MATLAB 进行数字滤波器的设计分为了两个步骤,步骤1:根据给定的指标,确定滤波器的阶数N 和频率尺度因子Wn。步骤2:利用这些参数和给定的纹波.
第二:阶数估计:
利用双线性转换法:
[n,Wn] = buttord(Wp,Ws,Rp,Rs)
[n,Wn] = cheb1ord(Wp,Ws,Rp,Rs)
[n,Wn] = cheb2ord(Wp,Ws,Rp,Rs)
[n,Wn] = ellipord(Wp,Ws,Rp,Rs)
Wp,Ws分别代表归一化通带和阻带截至频率,且Wp<Ws. 这些频率特点必须在0 和1之间,在这里采样频率为2。如果抽样频率是FT,通带截至频率Fp 和阻带截至频率Fs的单位为Hz,则有Wp=2Fp/FT,Ws=2FS/FT.
对于巴特沃斯滤波器,Wn是3db的截至频率,切比雪夫1型和椭圆滤波器是Wn是截至频率,切比雪夫2型Wn是阻带截至频率。
第三:滤波器设计:
主要是选择使用哪一种逼近方法:
[B,A] = butter(N,Wn)
[b,a]=cheby1(N,rp,Wn);
[b,a]=cheby2(N,rs,Wn);
[b,a]=ellip(N,rp,rs,Wn);
第四: 滤波器的实现:
[b,a] = cheby1(6,10,0.6);
freqz(b,a)
dataIn = randn(1000,1);
dataOut =