MATLAB编写带通滤波器
时间: 2024-02-24 10:27:53 浏览: 152
在LABVIEW中实现带通滤波
下面是MATLAB编写带通滤波器的代码:
```matlab
% 定义滤波器参数
f1 = 100; % 通带低频边界
f2 = 500; % 通带高频边界
fs = 1000; % 采样频率
order = 4; % 滤波器阶数
% 计算归一化频率
w1 = 2*pi*f1/fs;
w2 = 2*pi*f2/fs;
% 设计滤波器
[b, a] = butter(order, [w1, w2], 'bandpass');
% 生成信号
t = 0:1/fs:1;
x = sin(2*pi*50*t) + sin(2*pi*150*t) + sin(2*pi*300*t) + sin(2*pi*700*t);
% 滤波
y = filter(b, a, x);
% 绘制原始信号和滤波后的信号
figure;
subplot(2,1,1);
plot(t, x);
title('原始信号');
subplot(2,1,2);
plot(t, y);
title('滤波后的信号');
```
该代码使用了MATLAB内置的butter函数来设计滤波器。首先定义了滤波器的通带低频边界f1、通带高频边界f2、采样频率fs和滤波器阶数order。然后计算出归一化频率w1和w2。接着调用butter函数设计滤波器,并将滤波器系数存储在变量b和a中。生成一个包含多个频率分量的信号x,并使用filter函数对其进行滤波,得到滤波后的信号y。最后使用MATLAB的绘图函数subplot绘制原始信号和滤波后的信号。
阅读全文