matlab中窗函数设置带通滤波器对高斯白噪声滤波生成一个300~500hz的窄带干扰,采样频率Fs为10khz,matlab中滤波器的截止频率如何设置
时间: 2024-05-07 14:20:31 浏览: 142
在matlab中,可以使用fir1函数设计带通滤波器,具体代码如下:
```
% 带通滤波器设计
Fs = 10000; % 采样频率
f1 = 300; % 通带下限频率
f2 = 500; % 通带上限频率
Wn = [f1 f2]/(Fs/2); % 归一化截止频率
N = 100; % 滤波器阶数
b = fir1(N, Wn, 'bandpass');
% 产生高斯白噪声
t = 0:1/Fs:1;
x = randn(size(t));
% 加入窄带干扰
f3 = 400; % 干扰频率
A = 0.5; % 干扰幅值
y = A*sin(2*pi*f3*t);
x = x + y;
% 滤波
y_filtered = filter(b, 1, x);
% 绘制滤波前后的信号
figure;
subplot(2,1,1);
plot(t, x);
title('滤波前信号');
subplot(2,1,2);
plot(t, y_filtered);
title('滤波后信号');
```
在这段代码中,我们使用fir1函数设计了一个100阶的带通滤波器,通带下限频率为300Hz,通带上限频率为500Hz。这里的截止频率是指滤波器的3dB截止频率,归一化截止频率计算公式为:Wn = [f1 f2]/(Fs/2),其中f1和f2为通带下限频率和通带上限频率,Fs为采样频率。
阅读全文