为什么将频域FFT幅度估计为时域?

时间:2019-07-10 01:34:52

标签: matlab fft frequency amplitude

在Matlab中,我收到了600秒的信号,并应用了 在500秒内对其进行FFT(快速傅立叶变换),以No = 1024个样本(数据为4.096秒)为单位,以获取基频的幅度 (市长在频域中尖峰)。但是,比较时 它具有时域中的振幅值,我注意到它有一个 低得多的价值。如下图所示:

Red lines delimitates the signal segment where FFT where applied.

|FFT| vs Frequency. The sampling frequency is fm=250 Hz.

可以看出,频域中的幅度几乎比时域低一个幅度。我在其他细分市场和信号中都进行了相同的测试,但从未获得正确或可剃化的值。

用于生成图形的主要段代码如下:

%Substract the mean from the signal W, where W(su,1) is the time vector, and W(su,2) is the sampling vector.         
Xo(su,1)=W(su,1);
Xo(su,2)=W(su,2)-mean(W(su,2));
% Window Time Duration(Seconds):
TT1=No/fm;
% Time instant(Seconds):
h=500;
%Time Instant at the end of the Window(Seconds):
Tf=h+TT1;
%Focused Signal Segment:
sub3=(h*250):((h+TT1)*250);
%Applying Hamming Windows to the Signal:
for g=h*250:(h+TT1)*250
   w(g)=0.54-0.46*cos(2*pi*g/No);
   Xo2(g,2)=Xo(g,2)*w(g);
end
%Getting Frequencies and the FFT of Xo2:
[freqP, xdftP, psdxP] = Mide_FFT_PSD(Xo2(sub3,1:2),fm);
%Plotting the Results:
po={'blue' , 'red' , 'green' , 'yellow'};
%Plot 1:
plot(W(:,1),W(:,2))
LineHandle1=plot(allAxesInFigure(1),[h h],get(gca,'YLim'),'Color','red','LineStyle',':');
LineHandle2=plot(allAxesInFigure(1),[Tf Tf],get(gca,'YLim'),'Color','red','LineStyle',':');
xlabel('Time (s)'); ylabel('Amplitude (g)'); title('Electromyogram of insect pump');
grid on

%Plot 2:
plot(freqP,xdftP,'Color',po{2})
xlabel('Frequency (Hz)'); ylabel('Amplitude (g)'); title('Amplitudes from FFT Window');
grid on; 

其中Mide_FFT_PSD.m执行以下操作:

function [freq, xdft, psdx, phase] = Mide_FFT_PSD(datalist,fActual)
   %Compute FFT & PSD
   Fs = fActual;
   x = datalist(:,2);
   %    x = datalist(:,1);
   N = length(x);
   freq = 0:Fs/length(x):Fs/2;
   xdft = fft(x);
   xdft = xdft(1:floor(N/2)+1);
   psdx = (1/(Fs*N)) * abs(xdft).^2;
   psdx(2:end-1) = 2*psdx(2:end-1);
   psdx = psdx';
   xdft = 1/length(x).*xdft;
   xdft(2:end-1) = 2*xdft(2:end-1);
   xdft = xdft';
   phase = unwrap(angle(xdft));
   xdft = abs(xdft);
end

我想知道我做错了什么吗? 当信号出现时,无法从FFT获得幅度值 不是纯正弦波。我读到只有能量是 在两个域中都相同,但幅度却不相同。但是我还没有 找到了任何严格的信息来确认这一点。

1 个答案:

答案 0 :(得分:1)

在时域中,波形的可见振幅可以由频域中多个频谱峰值的相长干涉组成。取决于相对相位,这种干扰可能是相长的或相消的。因此,(总是看起来是周期性的)时域波形的振幅不能总是仅通过查看频域中的幅度谱来确定。