帮我写一个用matlab设计模拟滤波器系统函数为Ha(s)=3/(s²+4s+3)的AF的幅度特性和DF的幅度特性曲线的程序
时间: 2024-02-12 09:03:52 浏览: 74
好的,以下是用Matlab设计模拟滤波器系统函数为$H_a(s)=\frac{3}{s^2+4s+3}$的AF和DF的幅度特性曲线的程序:
```matlab
% 定义系统函数Ha(s)
num = [3];
den = [1, 4, 3];
Ha = tf(num, den);
% 计算AF的幅度特性曲线
w = linspace(0, pi, 1000);
h = freqz(num, den, w);
mag = abs(h);
fig_af = figure;
plot(w/pi, mag);
xlabel('Normalized frequency (\times\pi rad/sample)');
ylabel('Magnitude');
title('Magnitude Response of Analog Filter');
% 将AF离散化为DF
fs = 1000; % 采样率
[z, p, k] = tf2zp(num, den); % 将系统函数转化为零极点格式
[zd, pd] = bilinear(z, p, fs); % 双线性变换
numd = k * poly(zd); % 将零极点格式转化为传递函数格式
dend = poly(pd);
Hd = tf(numd, dend);
% 计算DF的幅度特性曲线
[h, w] = freqz(numd, dend, 1000, fs);
mag = abs(h);
fig_df = figure;
plot(w/pi, mag);
xlabel('Normalized frequency (\times\pi rad/sample)');
ylabel('Magnitude');
title('Magnitude Response of Digital Filter');
% 显示AF和DF的幅度特性曲线
figure(fig_af);
hold on;
plot(w/pi, mag, 'r');
hold off;
legend('AF', 'DF');
```
运行该程序,将得到两个图形窗口,一个是AF的幅度特性曲线,一个是DF的幅度特性曲线,同时在同一个图形窗口中显示了AF和DF的幅度特性曲线。
阅读全文
相关推荐
















