幅频响应曲线怎么用MATLAB画,请列举出代码
时间: 2024-03-23 16:43:41 浏览: 63
Matlab代码,matlab代码大全,matlab
5星 · 资源好评率100%
在MATLAB中可以使用freqz函数来绘制幅频响应曲线。下面是一个简单的例子:
```matlab
% 生成一个长度为100的离散时间信号
n = 0:99;
x = cos(2*pi*0.1*n) + randn(size(n));
% 计算信号的频率响应
[b,a] = butter(4,0.3);
[H,w] = freqz(b,a);
% 绘制幅频响应曲线
plot(w/pi,20*log10(abs(H)));
xlabel('Normalized frequency (\times\pi rad/sample)');
ylabel('Magnitude (dB)');
title('Magnitude response of a 4th-order lowpass Butterworth filter');
```
这个例子首先生成一个长度为100的离散时间信号,然后使用butter函数生成一个4阶低通Butterworth滤波器,最后使用freqz函数计算滤波器的频率响应,并绘制出幅频响应曲线。注意,在绘制幅频响应曲线时,通常使用对数坐标表示幅度,因此需要使用20*log10函数将幅度转换为分贝(dB)。
阅读全文