%ProgramP5_4
%DesignofAnalogLowpassFilter
%以上两行是注释
clf;
%清空图像
Fp=3500;Fs=4500;
%赋值两个变量
Wp=2*pi*Fp;Ws=2*pi*Fs;
%计算两个值
[N,Wn]=buttord(Wp,Ws,0.5,30,'s');
%buttord函数的用法为:[n,Wn]=buttord(Wp,Ws,Rp,Rs)其中Wp和Ws分别是通带和阻带的拐角频率(截止频率),其取值范围为0至1之间.当其值为1时代表采样频率的一半.Rp和Rs分别是通带和阻带区的波纹系数.
[b,a]=butter(N,Wn,'s');
%butter函数的用法为:[b,a]=butter(n,Wn,/ftype/)其中n代表滤波器阶数,Wn代表滤波器的截止频率,这两个参数可使用buttord函数来确定.buttord函数可在给定滤波器性能的情况下,求出巴特沃斯滤波器的最小阶数n,同时给出对应的截止频率Wn
wa=0:(3*Ws)/511:3*Ws;
%运算
h=freqs(b,a,wa);
%freqs()函数
freqs用于计算由矢量a和b构成的模拟滤波器H(s)=B(s)/A(s)的幅频响应.
h=freqs(b,a,w)用于计算模拟滤波器的幅频响应,其中实矢量w用于指定频率值,返回值h为一个复数行向量,要得到幅值必须对它取绝对值,即求模.
[h,w]=freqs(b,a)自动设定200个频率点来计算频率响应,这200个频率值记录在w中.
[h,w]=freqs(b,a,n)设定n个频率点计算频率响应.
不带输出变量的freqs函数,将在当前图形窗口中绘制出幅频和相频曲线,其中幅相曲线对纵坐标与横坐标均为对数分度.
plot(wa/(2*pi),20*log10(abs(h)));grid
%画图,并打开网格
xlabel('Frequency,Hz');ylabel('Gain,dB');
%使用标签
title('Gainresponse');
%使用标题
axis([03*Fs-605]);
%设置图像区域