自测可用,最基本的代码,无拔高。
目录
1、设计IIR模拟高低通滤波器
2、设计IIR数字滤波器
3、设计FIR数字滤波器
1、设计IIR模拟高低通滤波器
wp = 2*pi*4000;ws = 2*pi*1000;
ap = 0.1;as = 40;
[N,wc] = buttord(wp,ws,ap,as,'s');
[BH,AH] = butter(N,wc,'high','s');
fk = 0:4000/512:4000;wk = 2*pi*fk;
Hk= freqs(BH,AH,wk);
plot(fk/1000,20*log10(abs(Hk)));
[N,wc] = buttord(wp,ws,ap,as,’s’)
wp:通带截止频率 ws :阻带截止频率
ap:通带最大允许衰减 as:阻带最小允许衰减
‘s’:表示模拟滤波器,(省略s表示数字滤波器)
N: 滤波器阶数 wc: 3db截止频率
[B,A] = butter(N,wc,‘high’,’s’)
N,wc,’s’同上个函数
high: 表示设计的是高通滤波器
B:系统函数分子 A :系统函数分母
2、设计IIR数字滤波器
wpz = 0.8; wsz = 0.44; ap = 3;as = 15;
[N,wcz] = buttord(wpz,wsz,ap,as);
[BZ,AZ] = butter(N,wcz,'high');
[Hk,n] = freqz(BZ,AZ);
plot(n/pi,20*log10(abs(Hk)));
wpz,wsz皆为归一化后角频率(原角频率/pi)。
3、设计FIR数字滤波器
wp = pi/2;ws = pi/4;
Bt = wp-ws;N0 = ceil(6.2*pi/Bt);
N = N0+mod(N0+1,2);
wc = (wp+ws)/2/pi;
hn = fir1(N-1,wc,'high',hanning(N));
[Hk,n] =freqz(hn,1);
stem(hn);
figure;
plot(n/pi,20*log10(abs(Hk)/max(abs(Hk))));
wp,ws 为数字角频率。 Bt:带宽
N0:N0为窗口长度 N:保证N为奇数
wc: 6db截至频率归一化 hn:单位脉冲响应
fk = 0:4000/512:4000; wk = 2*pi*fk;
Hk= freqs(BH,AH,wk); 用于模拟信号频率分析
HKZ = freqz(BZ,AZ,N) 用于数字信号频率分析
N:缺省时默认为512
BZ,AZ为系统函数 分子、分母系数。