用matlab求频率响应
时间: 2023-07-20 12:04:27 浏览: 90
在MATLAB中,可以使用信号处理工具箱中的freqz函数来计算数字系统的频率响应。freqz函数的语法如下:
[H,f] = freqz(b,a,N,fs)
其中,b和a是数字滤波器的分子和分母系数,N是频率响应中的点数,fs是采样率。函数返回频率响应H和频率向量f。
以下是一个示例代码,假设我们有一个数字低通滤波器,其传输函数为:
H(z) = (1 - 0.5z^-1) / (1 - 0.8z^-1)
我们可以使用freqz函数计算其频率响应并绘制幅度响应曲线和相位响应曲线:
```matlab
b = [1, -0.5];
a = [1, -0.8];
N = 1024;
fs = 1000;
[H,f] = freqz(b,a,N,fs);
figure;
subplot(2,1,1);
plot(f,abs(H));
title('Amplitude Response');
xlabel('Frequency (Hz)');
ylabel('|H(f)|');
subplot(2,1,2);
plot(f,angle(H));
title('Phase Response');
xlabel('Frequency (Hz)');
ylabel('Phase (rad)');
```
运行此代码将生成包含该数字低通滤波器幅度响应和相位响应的图形。
阅读全文