0-20dB-40-60-8000.10.20.30.40.50.60.7数字频率域频率?/?0.80.91
图5直接设计法设计IIR椭圆带通滤波器幅度响应
64Phase\\degree20-2-4-600.10.20.30.40.50.60.7数字频率域频率?/?0.80.91
图6直接设计法设计IIR椭圆带通滤波器相位响应
0.150.1Impulse response0.050-0.05-0.1-0.15-0.2050100n150200250
图7直接设计法设计IIR椭圆带通滤波器单位冲激响应
得到四个截止频率处的幅度响应如下: f/kHz 3.5 0.2000 0.4999 5 0.2857 0.4000 7 0.4000 47.7382 8.5 0.4857 45.0760 W/p H(f) 满足题目设定的指标要求。
(2) 利用MATLAB工具箱中cheb1ord及cheby1设计切比雪夫Ⅰ型滤波器:
%设计chebshev I带通滤波器 clc;clear all
OmegaP1=2*pi*5000;OmegaP2=2*pi*7000;%带通截止频率 OmegaS1=2*pi*3500;OmegaS2=2*pi*8500;%阻带截止频率 Rp=0.5;%通带波纹dB As=45;%阻带衰减dB
Fs=35*10^3;%抽样频率35khz
OmegaP=[OmegaP1,OmegaP2];OmegaS=[OmegaS1,OmegaS2];
wp=OmegaP/Fs/pi;ws=OmegaS/Fs/pi;%等效数字频率 w0=[wp,ws];%四个频点
[N,wc]=cheb1ord(wp,ws,Rp,As)?阶数和截至频率 [bz,az]=cheby1(N,Rp,wc);?系统函数的分子分母 Hx=freqz(bz,az,w0*pi);%计算四个频点上对应的幅度响应
[H,w]=freqz(bz,az);%计算0~1上的幅频响应
dbHx=-20*log10(abs(Hx)/max(abs(H)))%归一化并求dB
dbH=20*log10(abs(H)/max(abs(H)));%归一化的频率响应
pha=unwrap(angle(H));%计算0~1上的相频响应
figure(1)
plot(w/pi,dbH);%画幅频图
xlabel('数字频率域频率\\Omega/\\pi');ylabel('dB'); axis([0,1,-150,5]); grid
figure(2)
plot(w/pi,pha);%画相频图
xlabel('数字频率域频率\\Omega/\\pi');ylabel('Phase\\degree'); % axis([0,1,-150,5]); grid
disp('系统传递函数H(z)'); printsys(bz,az,'z'); figure(3)
h=dimpulse(bz,az); stem(h)
xlabel('n');ylabel('Impulse response'); grid
0-50dB-100-15000.10.20.30.40.50.60.7数字频率域频率?/?0.80.91
图8直接设计法设计IIR切比雪夫Ⅰ型带通滤波器幅度响应
50Phase\\degree-5-10-1500.10.20.30.40.50.60.7数字频率域频率?/?0.80.91
图9直接设计法设计IIR切比雪夫Ⅰ型带通滤波器相位响应
0.150.1Impulse response0.050-0.05-0.1-0.15-0.2050100n150200250
图10直接设计法设计IIR切比雪夫Ⅰ型带通滤波单位冲激响应
得到四个截止频率处的幅度响应如下: f/kHz 3.5 0.2000 0.4999 5 0.2857 0.4999 7 0.4000 62.4513 8.5 0.4857 51.1270 W/p H(f) 满足题目设定的指标要求。
(3) 利用MATLAB工具箱中cheb2ord及cheby2设计切比雪夫Ⅱ型滤波器:
核心语句为:
%设计chebshev Ⅱ带通滤波器 clc;clear all
OmegaP1=2*pi*5000;OmegaP2=2*pi*7000;%带通截止频率 OmegaS1=2*pi*3500;OmegaS2=2*pi*8500;%阻带截止频率 Rp=0.5;%通带波纹dB As=45;%阻带衰减dB
Fs=35*10^3;%抽样频率35khz
OmegaP=[OmegaP1,OmegaP2];OmegaS=[OmegaS1,OmegaS2]; wp=OmegaP/Fs/pi;ws=OmegaS/Fs/pi;%等效数字频率 [N,wc]=cheb2ord(wp,ws,Rp,As)ˉ阶数和截至频率 [bz,az]=cheby2(N,As,wc);ˉ系统函数的分子分母
w0=[wp,ws];%四个频点
Hx=freqz(bz,az,w0*pi);%计算两个频点上对应的幅度响应
[H,w]=freqz(bz,az);%计算0~1上的幅频响应
dbHx=-20*log10(abs(Hx)/max(abs(H)))%归一化并求dB dbH=20*log10(abs(H)/max(abs(H)));%归一化的频率响应
pha=unwrap(angle(H));%计算0~1上的相频响应
figure(1)
plot(w/pi,dbH);%画幅频图
xlabel('数字频率域频率\\Omega/\\pi');ylabel('dB'); axis([0,1,-100,5]); grid