2

I am trying to analysis a system by Fourier Transform. my system has 3 dominant modes. (1,0.05) (0.51,0.01),(0.46,0.01) the pairs are defined as (freq,damping_ratio)
I've got those result with eigenvalue analysis.the system contains 3 signal.so these frequency[1,0.51,0.46] must be find in these three signals too. so I've run FFT but I didn't see these frequency in the plot. what is the problem in your mind? why these frequencies do not exist in FFT plots?
Here you can get the signal this txt file contain 3 signal in it. I put last signal FFT(PSD) here. Tnx enter image description here enter image description here
as you see those frequencies don't exist in the 3rd-signal. its same for other 2 signals too. Also I will put my codes here.

t=linspace(0,30,3012);
fS=ceil(inv(t(2)-t(1))); 
x=data(:,3);
 Nfft = 10 * 2^nextpow2(length(t));
    psd = 20.*log10(fftshift(abs(fft(x,Nfft))));
    freqs=[0:Nfft - 1].*(fS/Nfft);
    freqs(freqs >= fS/2) = freqs(freqs >= fS/2) - fS;
    freqs=fftshift(freqs);
    figure(1);
    plot(freqs, psd); 
    xlim([-1.5  1.5]);
    xlabel('Frequency / Hz');
    title (sprintf('PSD'));
SAH
  • 1,317
  • 4
  • 17
  • 39
  • 1
    Try removing the DC component, e.g. x = data(:,3) - mean(data(:,3)); and redo the FFT. – geometrikal Aug 21 '13 at 21:30
  • @geometrikal Thanks a lot, That works. would you answer another question too? when the freqs are close together I just get one result for them. like when i have 0.2Hz and 0.22Hz and 0.8Hz in my signal,FFt only will give me 0.2 and 0.8 what should i do to get all of them? Tnx again – SAH Aug 21 '13 at 22:06
  • 1
    The peak separation delta F is roughly between 2 and 3 times the sample rate divided by the length of data fed to a FFT. For finer resolution between closer frequencies, use more data. – hotpaw2 Aug 22 '13 at 02:35
  • 1
    Try zero padding the signal if you can't get more data as @hotpaw2 suggests. See http://dsp.stackexchange.com/questions/741/why-should-i-zero-pad-a-signal-before-taking-the-fourier-transform – geometrikal Aug 22 '13 at 04:04
  • @geometrikal ,@hotpaw , Hi I added this line to my codes x(end+Nfft)=0; to zeropad my signal, is that right? But there were no difference with the time I didn't zreopad it. How much I must zeropas it? Nfft is enought? Nfft = 10 * 2^nextpow2(length(t)); Tnx guys – SAH Aug 22 '13 at 08:00
  • 3
    I don't think zero padding will help resolve two components in the same bin, it will only interpolate the existing values. A longer data series will help though. – Speedy Aug 22 '13 at 09:39
  • @Speedy , Thanks. it becomes very precise about 2 modes by getting 10 times more sample points. but still it doesn't show anything for the other mode which is so close to another mode. – SAH Aug 22 '13 at 09:54
  • 1
    Are you windowing before doing the FFT? Your start and end sample are certainly not the same, so they are creating a discontinuity, which produces wide skirts around the frequencies you're interested in. Zero padding does not give you any better resolution. The only way to improve resolution is to use more time domain samples. – endolith Aug 27 '13 at 20:27
  • @endolith , Hi I didn't use window function before doing fft. but I will try to figure it out and do the windowing too.but I've tried to use more time domain sample. but it didn't help to get close modes. but it gave me precise result for other far modes. tnx – SAH Aug 28 '13 at 09:29

0 Answers0