matlab高通滤波和低通滤波
时间: 2023-12-30 22:04:06 浏览: 90
以下是使用MATLAB进行高通滤波和低通滤波的示例:
1. 高通滤波:
```matlab
% 创建一个高通滤波器
fc = 100; % 设置截止频率
fs = 1000; % 设置采样频率
order = 4; % 设置滤波器阶数
[b, a] = butter(order, fc/(fs/2), 'high'); % 使用巴特沃斯滤波器设计函数设计高通滤波器
% 输入信号
t = 0:1/fs:1; % 时间向量
x = sin(2*pi*50*t) + sin(2*pi*150*t) + sin(2*pi*300*t); % 生成包含50Hz、150Hz和300Hz的信号
% 进行滤波
y = filter(b, a, x); % 使用滤波器对信号进行滤波
% 绘制结果
subplot(2,1,1);
plot(t, x);
title('原始信号');
xlabel('时间');
ylabel('幅值');
subplot(2,1,2);
plot(t, y);
title('高通滤波后的信号');
xlabel('时间');
ylabel('幅值');
```
2. 低通滤波:
```matlab
% 创建一个低通滤波器
fc = 100; % 设置截止频率
fs = 1000; % 设置采样频率
order = 4; % 设置滤波器阶数
[b, a] = butter(order, fc/(fs/2), 'low'); % 使用巴特沃斯滤波器设计函数设计低通滤波器
% 输入信号
t = 0:1/fs:1; % 时间向量
x = sin(2*pi*50*t) + sin(2*pi*150*t) + sin(2*pi*300*t); % 生成包含50Hz、150Hz和300Hz的信号
% 进行滤波
y = filter(b, a, x); % 使用滤波器对信号进行滤波
% 绘制结果
subplot(2,1,1);
plot(t, x);
title('原始信号');
xlabel('时间');
ylabel('幅值');
subplot(2,1,2);
plot(t, y);
title('低通滤波后的信号');
xlabel('时间');
ylabel('幅值');
```
阅读全文