%exam_8_35
clear;clc
T=1;                                %设置采样周期为1
fs=1/T;                              %采样频率为周期倒数
wp=[0.35*pi,0.85*pi];ws=[0.45*pi,0.65*pi];
Wp=(2/T)*tan(wp/2);Ws=(2/T)*tan(ws/2);                 %设置归一化通带和阻带截止频率
Ap=20*log10(1/0.93);As=20*log10(1/0.16);                 %设置通带最大和最小衰减
[N,Wc]=buttord(Wp,Ws,Ap,As,'s');     %调用butter函数确定巴特沃斯滤波器阶数
[B,A]=butter(N,Wc,'stop','s');      %调用butter函数设计巴特沃斯滤波器
W=linspace(0,2*pi,200*pi);          %指定一段频率值
hf=freqs(B,A,W);                    %计算模拟滤波器的幅频响应
subplot(2,1,1);plot(W/pi,abs(hf));                 %绘出巴特沃斯模拟滤波器的幅频特性曲线
grid on;title('巴特沃斯模拟滤波器','Fontsize',20);
xlabel('Frequency/Hz','Fontsize',20);ylabel('Magnitude','Fontsize',20);
set(gca,'Fontsize',20);
[D,C]= bilinear (B,A,fs);            %调用双线性变换法
Hz=freqz(D,C,W);                     %返回频率响应
subplot(2,1,2);plot(W/pi,abs(Hz));                  %绘出巴特沃斯数字低通滤波器的幅频特性曲线 
grid on;title('巴特沃斯数字滤波器','Fontsize',20);
xlabel('Frequency/Hz','Fontsize',20);ylabel('Magnitude','Fontsize',20);
set(gca,'Fontsize',20);

