MATLAB中如何一个文件内显示两个呢freqz
时间: 2024-05-10 19:19:20 浏览: 89
在MATLAB中,可以使用subplot函数在同一图像窗口中显示多个频率响应。下面是一个示例代码,演示如何在同一窗口中显示两个freqz图:
```matlab
% 生成两个数字滤波器的系数
[b1,a1] = butter(4,0.2);
[b2,a2] = cheby1(4,0.2,0.4);
% 计算两个滤波器的频率响应
[h1,w1] = freqz(b1,a1);
[h2,w2] = freqz(b2,a2);
% 在同一窗口中绘制两个频率响应
subplot(2,1,1); % 第一个子图
plot(w1/pi,20*log10(abs(h1))); % 绘制第一个频率响应
title('Butterworth Filter');
ylabel('Magnitude (dB)');
xlabel('Normalized Frequency (\times\pi rad/sample)');
subplot(2,1,2); % 第二个子图
plot(w2/pi,20*log10(abs(h2))); % 绘制第二个频率响应
title('Chebyshev Type I Filter');
ylabel('Magnitude (dB)');
xlabel('Normalized Frequency (\times\pi rad/sample)');
```
上述代码中,我们使用subplot函数创建了一个2x1的图像网格,然后在第一个子图中绘制了Butterworth数字滤波器的频率响应,而在第二个子图中绘制了Chebyshev Type I数字滤波器的频率响应。通过这种方式,我们可以在同一窗口中方便地比较不同滤波器的频率响应。
阅读全文