用MATLAB写一段代码,实现对一维信号的高通滤波
时间: 2024-02-13 17:06:58 浏览: 165
MATLAB高通滤波器程序
4星 · 用户满意度95%
好的,以下是一段MATLAB代码,实现对一维信号的高通滤波:
```matlab
% 生成一维信号
fs = 1000; % 采样率
t = 0:1/fs:1; % 时间序列
f = 10; % 信号频率
x = sin(2*pi*f*t); % 生成正弦波信号
% 设计高通滤波器
fc = 5; % 截止频率
[b,a] = butter(4,fc/(fs/2),'high'); % 4阶Butterworth高通滤波器
% 进行滤波
y = filter(b,a,x);
% 绘制滤波前后的波形
figure;
subplot(2,1,1);
plot(t,x);
title('原始信号');
xlabel('时间(秒)');
ylabel('幅值');
subplot(2,1,2);
plot(t,y);
title('高通滤波后信号');
xlabel('时间(秒)');
ylabel('幅值');
```
这段代码中,首先生成了一个10Hz的正弦波信号,并通过`butter`函数设计了一个截止频率为5Hz的4阶Butterworth高通滤波器。然后通过`filter`函数对信号进行滤波,最后绘制了滤波前后的波形。您可以根据实际需要修改代码中的参数进行不同的实验。
阅读全文