Monday, November 13, 2017

fourier transform - One sided frequency spectrum (Matlab vs. Origin)


There are a lot of queries on fft frequency all over the web. I guess the following point not discussed anywhere explicitly. Hope someone can provide an insight here.


If we have and even number of data points, N=10, the fft complex output arranges the data as


fft = [c0, c1, c2, c3, c4, c-5, c-4, c-3, c-2, c-1],


where the complex numbers corresponding to positive and negative frequencies. I read somewhere that MATLAB calculates the negative coefficient first, hence we have c-5 but not c5. The author did not explain the reason.


Point no. 1, that the values are not symmetric, there is an extra c-5.


When we wish to make two-sided frequency spectrum, the frequency axis ranges from [-(N/2): (N/2)-1]*Fs/ N. Fs is the sampling rate, N is the number of even data points.



If we wish to make a one-sided positive frequency spectrum, should we choose


A) [0:(N/2)]*Fs/N and ignore the fact the we are using the values corresponding to the negative frequency axis, given that the data is a real number and it is just a mirror image.


B) [0: (N/2)-1]*Fs/N represents the true positive frequency axis?


If Fs= 250 Hz, the true positive frequency axis will end at 124.9980 Hz


If we happen to choose the negative frequency axis values and ignore the frequency sign, the frequency axis ends at 125 Hz exactly.


The same data when plotted in OriginPro ends the frequency axis at 125 Hz when plotted single sidedly.


Which approach (A) or (B) is rigorously correct, and why would OriginPro plot the frequency upto 125 Hz?




No comments:

Post a Comment

digital communications - Understanding the Matched Filter

I have a question about matched filtering. Does the matched filter maximise the SNR at the moment of decision only? As far as I understand, ...