降低 FIR 滤波器输出中的信号幅度和振荡(加窗法)

信息处理 过滤器 振幅
2022-02-06 11:15:25

为了在频域中截断我的信号,我正在使用窗口方法应用低通滤波器。作为测试,我选择了汉明窗。滤波信号底部振荡的原因是什么?此外,滤波器似乎略微降低了信号的幅度。滤波后如何得到与原始信号相同的幅度?我的过滤器是否正常工作?由于这是我第一次使用过滤器,我可能会犯错误。如果有人能提供帮助,我将不胜感激。

sig = MY SIGNAL;
fs = 4000;                    % sampling freq. (GHz)
M = 400001;                   % signal length
% Filter parameters:
L = M;                         % filter length 
fcut = 1.5;                    % cutoff frequency (GHz) 
% Design the filter using the window method:
hsupp = (-(L-1)/2:(L-1)/2);
hideal = (2*fcut/fs)*sinc(2*fcut*hsupp/fs);
h = hamming(L)' .* hideal;                   % h is our filter
SIG_out = fft(sig);                          % signal
H = fft(h);                                  % filter
FILT_OUT = SIG_out .* H;                   
filt_out = ifft(FILT_OUT);
relrmserr = norm(imag(filt_out))/norm(filt_out) % check... should be zero
freqz(h, 1, 2^16, fs)
1个回答

这里发生了一些事情

  1. 与采样率相比,您的带宽非常低。对于白色输入,您将移除 99.9% 以上的能量。你的信号不是白色的,但你仍在移除能量
  2. 你的冲动反应非常长而且没有因果关系。这就是您看到的帖子和预响铃。
  3. 频域中的乘法实现循环卷积(不是线性卷积)。这就是为什么你在最后得到环绕