matlab将x(t) = [-2cos(5t) + cos(10t) + 4sin(20t)]u(t)信号输入巴特沃斯滤波器
时间: 2023-07-31 17:09:50 浏览: 82
基于MATLAB的巴特沃斯滤波程序
4星 · 用户满意度95%
首先需要将信号进行采样,得到离散时间序列样本。然后可以使用MATLAB中的函数`butter`设计巴特沃斯滤波器,指定截止频率和滤波器阶数。接下来使用`filter`函数对信号进行滤波。具体代码如下:
```matlab
% 采样频率
fs = 1000;
% 采样时间
t = 0:1/fs:1;
% 信号
x = (-2*cos(5*t) + cos(10*t) + 4*sin(20*t)).* (t>=0);
% 截止频率
fc = 100;
% 滤波器阶数
n = 6;
% 设计巴特沃斯滤波器
[b,a] = butter(n,fc/(fs/2));
% 滤波
y = filter(b,a,x);
% 画图
subplot(2,1,1);
plot(t,x);
title('原始信号');
subplot(2,1,2);
plot(t,y);
title('滤波后信号');
```
其中,`subplot`函数用于将两个图像画在一个图像窗口中,第一个参数表示总行数,第二个参数表示总列数,第三个参数表示当前绘制的子图所处位置。
阅读全文