Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
NCTM or The Math Forum.



Re: FFT
Posted:
Oct 2, 2012 5:06 PM


On Sep 30, 6:36 pm, TideMan <mul...@gmail.com> wrote: > On Monday, October 1, 2012 9:35:08 AM UTC+13, Steve wrote: > > "Jennifer " <0j...@queensu.ca> wrote in message <k4a0s7$r6...@newscl01ah.mathworks.com>... > > > > I do not know how to use fft for given raw signal data collected at 1000Hz. I have to use MATLAB to convert the time domain signal into the frequency domain for spectral analysis. > > > > Could someone provide an example? > > > > This is what I need to do: > > > > % Data sampled at 1000 Hz and there are 2000 data points > > > > load assign1.mat > > > > % > > > > % Step 1: Plot the data > > > > figure(1); > > > > plot(t,y) > > > > xlabel('Time [s]'); > > > > title('Raw signal data'); > > > > % > > > > % Step 2: Compute the frequency spectrum using FFT > > > > ??? > > > To transform any given timesignal into the frequencydomain you can simply use the command fft(). Try "help fft" in Matlab. To normalize the signal you have to divide by the length of the signal e.g. Y=fft(y)/length(y) ... If you want to plot the signal in the frequency domain you first should create a XVector for the frequency like "fs/2:df:fs/2df" where fs is your samplingfrequency and df your frequencyresolution. In order to plot a common spectrum you should also use the command fftshift() in Order to mirror the point f=0 into the middle. > > > HTH > > > church > > But this is only half the story............ > You need to transform the complex amplitudes into a magnitude using abs(Y), then to get PSD (power spectral density), you need to square the amplitudes and divide by the interval in frequency. Finally, you should plot only the positive frequencies in a loglog plot. Hide quoted text  > >  Show quoted text 
If you only show spectra at positive frequenies, multiply by 2 to account for all of the negative frequency power except that at the Nyquist freqency f = Fs/2. The sum of the spectral power may not be equal to that of the time signal power because the power at DC (f = 0) and the Nyquist frequency (f = Fs/2) have been ignored.
If ignoring those components bothers you, subtract the mean of the time signal and use a low pass filter to eliminate the Nyquist frequency component before using the fft.
Hope this helps
Greg



