www.gusucode.com > matlab通信工程仿真源码(张德丰等编著)程序书籍 > matlab_code/matlab通信工程仿真源码(张德丰等编著)/第9章/li9_1.m

    n=0:0.01:2;  %频率点
for i=1:4   %取4种滤波器
    switch i
        case 1, N=2;
        case 2; N=5;
        case 3; N=10;
        case 4; N=20;
    end
    [z,p,k]=buttap(N);  %设计Butterworth滤波器
    [b,a]=zp2tf(z,p,k); %将零点极点增益形式转换为传递函数形式
    [H,w]=freqs(b,a,n); %按n指定的频率点给出频率响应
    magH2=(abs(H)).^2;  %给出传递函数幅度平方
    hold on;
    plot(w,magH2);      %绘制传递函数幅度平方
end
xlabel('w/wc');  %显示横坐标
ylabel('|H(jw)|^2');  % 显示纵坐标
title('Butterworth模拟原型滤波器'); %标题显示
text(1.5,0.18,'n=2');  %作必要的标记
text(1.3,0.08,'n=5');
text(1.16,0.08,'n=10');
text(0.93,0.98,'n=20');
grid on;