用MATLAB写一段低通滤波的代码
时间: 2023-12-17 18:57:48 浏览: 71
基于MATLAB的低通滤波器
以下是一个简单的低通滤波器的MATLAB代码示例:
```matlab
% 设计一个低通滤波器
fc = 1000; % 截止频率
fs = 8000; % 采样频率
order = 4; % 阶数
% 根据截止频率和采样频率计算归一化截止频率
Wn = fc / (fs/2);
% 用Butterworth滤波器设计函数设计滤波器
[b, a] = butter(order, Wn, 'low');
% 生成一个随机信号
t = 0:1/fs:1;
x = sin(2*pi*500*t) + sin(2*pi*1500*t) + randn(size(t));
% 用滤波器滤波信号
y = filter(b, a, x);
% 绘制结果
subplot(2,1,1);
plot(t,x);
title('原始信号');
xlabel('时间 (s)');
ylabel('幅度');
subplot(2,1,2);
plot(t,y);
title('滤波后信号');
xlabel('时间 (s)');
ylabel('幅度');
```
这段代码将会生成一个低通滤波器,然后用它来过滤一个由两个正弦波和一些随机噪声组成的信号。最终的输出是滤波后的信号,可以看到高频成分被移除了。
阅读全文