matlab绘制巴特沃斯低通滤波器的幅频响应
时间: 2023-10-08 21:09:42 浏览: 99
脉冲响应不变法设计巴特沃斯低通滤波器.doc
可以用 Matlab 中的 `freqz` 函数来绘制巴特沃斯低通滤波器的幅频响应。
首先,需要使用 `butter` 函数设计巴特沃斯低通滤波器并得到其数字滤波器系数。例如,设计一个 4 阶、截止频率为 100 Hz 的巴特沃斯低通滤波器:
```matlab
order = 4; % 滤波器阶数
cutoff_freq = 100; % 截止频率
[b, a] = butter(order, cutoff_freq/(fs/2), 'low'); % 数字滤波器系数
```
其中,`fs` 是采样率。
然后,使用 `freqz` 函数计算滤波器的频率响应:
```matlab
N = 512; % FFT 长度
[H, w] = freqz(b, a, N, fs); % 系统函数和频率向量
```
最后,用 `plot` 函数绘制滤波器的幅频响应:
```matlab
figure;
plot(w, abs(H));
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Butterworth Lowpass Filter');
```
完整代码如下:
```matlab
order = 4; % 滤波器阶数
cutoff_freq = 100; % 截止频率
fs = 1000; % 采样率
[b, a] = butter(order, cutoff_freq/(fs/2), 'low'); % 数字滤波器系数
N = 512; % FFT 长度
[H, w] = freqz(b, a, N, fs); % 系统函数和频率向量
figure;
plot(w, abs(H));
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Butterworth Lowpass Filter');
```
阅读全文