MATLAB利用巴特沃斯设计低通、高通、带阻滤波器
时间: 2023-08-16 15:04:42 浏览: 186
基于matlab的低通、高通、带通滤波器设计
MATLAB提供了 `butter` 函数来设计巴特沃斯滤波器。下面是如何使用 `butter` 函数来设计低通、高通、带阻滤波器的示例代码:
1.设计低通滤波器
```matlab
% 设计低通滤波器
fs = 1000; % 采样频率
fc = 100; % 截止频率
[b, a] = butter(4, fc/(fs/2)); % 4阶巴特沃斯滤波器设计
% 绘制滤波器幅频响应曲线
freqz(b, a);
```
这段代码使用 `butter` 函数设计了一个4阶低通滤波器,其截止频率为100Hz,采样频率为1000Hz。`b` 和 `a` 是滤波器的系数,可以用于后续信号滤波处理。`freqz` 函数用于绘制滤波器的幅频响应曲线。
2.设计高通滤波器
```matlab
% 设计高通滤波器
fs = 1000; % 采样频率
fc = 100; % 截止频率
[b, a] = butter(4, fc/(fs/2), 'high'); % 4阶高通巴特沃斯滤波器设计
% 绘制滤波器幅频响应曲线
freqz(b, a);
```
这段代码使用 `butter` 函数设计了一个4阶高通滤波器,其截止频率为100Hz,采样频率为1000Hz。`'high'` 参数表示高通滤波器。其他部分与低通滤波器类似。
3.设计带阻滤波器
```matlab
% 设计带阻滤波器
fs = 1000; % 采样频率
f1 = 50; % 通带1截止频率
f2 = 150; % 通带2截止频率
[b, a] = butter(4, [f1/(fs/2), f2/(fs/2)], 'stop'); % 4阶带阻巴特沃斯滤波器设计
% 绘制滤波器幅频响应曲线
freqz(b, a);
```
这段代码使用 `butter` 函数设计了一个4阶带阻滤波器,其通带1截止频率为50Hz,通带2截止频率为150Hz,采样频率为1000Hz。`'stop'` 参数表示带阻滤波器。其他部分与低通滤波器类似。
阅读全文