matlab 带通滤波代码
时间: 2024-06-10 19:02:56 浏览: 172
MATLAB中实现带通滤波通常使用数字信号处理工具箱(Digital Signal Processing Toolbox),特别是`fir1`、`fir2`或`designfilt`函数来设计滤波器,然后用`filter`函数进行滤波操作。以下是一个简单的带通滤波器的例子,假设我们想要设计一个低通-高通-低通的二阶 Butterworth 带通滤波器:
```matlab
% 设定滤波器参数
fc = 10; % 中心频率
fs = 100; % 采样率
order = 2; % 滤波器阶数
[b, a] = butter(order, [fc/(fs/2), fc/(fs/2)], 'bandpass'); % 设计滤波器系数
% 使用滤波器
input_data = % 替换为你要滤波的实际信号
filtered_data = filter(b, a, input_data);
% 可视化滤波效果
figure;
plot(input_data, 'b', 'LineWidth', 1.5, 'DisplayName', 'Original');
hold on;
plot(filtered_data, 'r', 'DisplayName', 'Filtered');
legend('show');
xlabel('Sample Index');
ylabel('Amplitude');
title(sprintf('Butterworth Bandpass Filter (fc = %d Hz)', fc));
```
这里我们首先定义了滤波器的中心频率 `fc` 和采样率 `fs`,然后选择一个二阶滤波器。`fir1` 或 `butter` 函数用于设计滤波器系数。`filter` 函数则用于实际的滤波操作。
阅读全文