我正在制作一个带通滤波器,我根据正弦曲线创建了一些带有不需要的频率的信号:
Fs = 8e3; % Sampling Rate
fn = Fs/2; % Nyquist frequency
L = 1e3; % Length of signal
T = 1/Fs; % Sampling period
t = T*linspace(0,L,Fs); % Time domain
% Frequencies in Hz
f1 = 1500;
f2 = 700;
f3 = 2500;
f4 = 3500;
% Signal
x = 6*sin(2*pi*f1*t);
% Noise
noise = 3*sin(2*pi*f2*t)...
+ 2*sin(2*pi*f3*t)...
+ 1*sin(2*pi*f4*t);
x_noise = x + noise;
然后我创建一个Butterworth带通滤波器:
[b,a] = butter(10,[1000 2000]/fn,'bandpass');
带通响应(带freqz)的时间和频率空间信号如下所示:
我会从这里想出来,干脆做
xf = filter(b,a,x_noise);
我在这做错了什么?
这是完整的代码:
clear all
Fs = 8e3; % Sampling Rate
fn = Fs/2; % N