基于MATLAB写一段程序,要求画出2阶格型滤波器
时间: 2024-02-19 15:59:05 浏览: 20
好的,以下是基于MATLAB画出2阶格型滤波器的程序:
```
% 定义滤波器参数
fp = 100; % 通带截止频率
fs = 200; % 阻带截止频率
wp = 2*pi*fp; % 通带截止角频率
ws = 2*pi*fs; % 阻带截止角频率
% 计算滤波器参数
R = 1; % 电阻值
C = 1/(R*wp); % 电容值
A = sqrt(10^(0.1*3)-1); % 通带增益
delta = sqrt(10^(0.1*30)-1); % 阻带衰减
ep = sqrt(1/(delta^2)-1); % 截止频率位置
K = ep/sqrt(2); % K值
% 计算分子和分母系数
num = [A*K 0 A*K];
den = [1 -2*ep*cos(wp*R*C) (ep^2)];
% 画出滤波器的幅频响应和相频响应
[H, w] = freqz(num, den);
figure();
subplot(2, 1, 1);
plot(w/pi*fp/2, 20*log10(abs(H)));
title('2nd Order GIC Filter Amplitude Response');
ylabel('Magnitude (dB)');
ylim([-40 10]);
grid on;
subplot(2, 1, 2);
plot(w/pi*fp/2, angle(H)*180/pi);
title('2nd Order GIC Filter Phase Response');
xlabel('Frequency (Hz)');
ylabel('Phase (degrees)');
grid on;
```
运行以上程序,就可以画出2阶格型滤波器的幅频响应和相频响应图像。其中,第一个子图为幅频响应,第二个子图为相频响应。