MATLAB Answers


mscohere function window calculation

Asked by Traian Preda on 30 Jan 2013


I am trying to figure out, how I can choose the window, noverlap and nfft for using the mscohere function to obtain the coherence between two time series. The two time series has 5459 samples. Running an FFT I oserved that the highest frequency of the spectra is 0 and the lowest one 44 Hz. If you have any suggestions please let me know.



Log in to comment.


2 Answers

Answer by Wayne King
on 30 Jan 2013

I think you may have mistated the highest frequency. "The highest frequency is 0"

Did you mean to say the lowest is 0 and the highest if 44 Hz?

At any rate, you need to know the sampling frequency of your data. You want to set your window long enough to get at least a few periods of the lowest frequency you're interested in. So let's say you really are interested in coherence at 5 Hz at the lowest. Then for a sampling frequency of 1 kHz, 5 Hz is 200 samples, so I would set the window length to 600 samples and overlap them by 50%, just to start with.


Log in to comment.

Answer by Edinburgh on 31 Jan 2013

Thank you Wayne for your answer. Just to make clear I understood your answer. You divided the sampling frequency by the frequency of interest (in this case:5 Hz) in order to obtain the number of sample / frequency of interest. After that, you multiplied that value by 2 or 3 to obtain window length (in this case:600 samples). My question is: does that means that, window = hanning(600), noverlap = [], and nfft = 600?



Yes, that's correct.

to: Wayne King

Can you please give some more detais about what means the noverlap and the nfft and how I need to choose the sampling frequency (in your case you select 1kHz)

Thank you

Log in to comment.

Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!