由于加窗后,如果被分析信号有DC分量,会使得第二个bin(第一个bin)为DC/2的值,可能会掩盖这个bin上原有的信号。
现在希望在FFT分析时去掉DC分量,我试了在加窗前后去掉DC分量,但是看上去都不行(FFT结果.jpg)。第二个bin的幅度都显著高于noise floor。
请大侠帮忙看看这里哪里有问题,谢谢!!!!
信号如附件(“xsignal.csv”)
Matlab代码如下:
clear
data = load('xsignal.csv');
signal = data(1:8192,2);
win = hanning(8192,'periodic');
wsignal = signal.*win;
% FFT with DC component
wfft = fft(wsignal)/8192;
% FFT without DC component after windowing
wfft_nowdc = fft(wsignal-mean(wsignal))/8192;
% FFT without DC component before windowing
wfft_nodc = fft((signal-mean(signal)).*win)/8192;
figure(1);
hold on;
plot([0:19],20*log10(abs(wfft(1:20))), 'b', 'LineWidth',2);
plot([0:19],20*log10(abs(wfft_nowdc(1:20))), 'r', 'LineWidth',2);
plot([0:19],20*log10(abs(wfft_nodc(1:20))), 'g', 'LineWidth',2);
legend('original','remove DC after windowing','remove DC before windowing');
grid on;