In this post I introduce the spectral coherence function, or just coherence. It deserves its own post because the coherence is a useful detection statistic for blindly determining significant cycle frequencies of arbitrary data records.
Let’s start with reviewing the standard correlation coefficient defined for two random variables and as
where and are the mean values of and , and and are the standard deviations of and . That is,
Now consider the spectral correlation function,
which is the correlation between the two random variables and . To form the correlation coefficient, we need the variances for these two random variables,
Here we are assuming that the two variables have zero means, which is always true when there is no additive sine-wave component in the data with frequency .
For finite , then, we can form the correlation coefficient
Now, as , the numerator of converges to the spectral correlation function and
If the limit of the quotient exists, then the correlation coefficient is given by
We call this function the spectral coherence. A similar argument holds for the conjugate spectral coherence,
which is a normalization of the conjugate spectral correlation function. Since the coherence is a valid correlation coefficient, its magnitude will be less than or equal to one, and since the involved random variables are complex-valued, in general, so is the spectral correlation function and the coherence. Therefore, the coherence lies in the closed unit disk in the complex plane.
The data-block length is samples and the frequency resolution (width of in the FSM) is set to (one percent of the sampling rate, which here is ) for both the numerator spectral correlation function and the denominator PSDs.
In practice, of course, the numerator and denominator of the coherence are estimates corresponding to finite-duration data blocks. The tricky part of estimating the coherence involves good selection of the estimator for the denominator PSDs . If the PSDs are not well resolved, or contain zeros, the coherence quotient can be numerically unstable or erroneous.