带通滤波器MATLAB代码
时间: 2024-11-19 07:14:11 浏览: 19
巴特沃斯带通滤波器matlab代码-dcan_bold_processing:dcan-fmri管道的静止状态fMRI输出的功能连接预处理
带通滤波器是一种信号处理工具,主要用于从输入信号中保留特定频率范围内的成分并去除其他频率的噪声或干扰。在MATLAB中,我们可以使用`fir1`函数创建一个有限 impulse response (FIR) 滤波器,然后利用`filter`函数应用这个滤波器到信号上。以下是一个简单的低通到高通再到低通的全通带通滤波器的例子:
```matlab
% 设定滤波器参数
fs = 44100; % 采样率
cutoff_freq = 1000; % 截止频率(Hz)
filter_order = 100; % 滤波器阶数
% 创建带通滤波器
[b,a] = butter(filter_order, [cutoff_freq/(fs/2), cutoff_freq/(fs/2)], 'bandpass'); % Butterworth滤波器
% 生成测试信号
t = 0:1/fs:1;
x = sin(2*pi*500*t); % 高频正弦信号(假设我们希望保留这个频率)
% 应用滤波器
y = filter(b, a, x);
% 绘制原始信号和滤波后的信号
figure;
plot(t, x, 'b', t, y, 'r');
legend('原始信号', '带通滤波后');
xlabel('时间(s)');
ylabel('幅度');
阅读全文