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