I have understood that Coherence is a function that explains the linear relationship between an excitation signal and a response signal. I know how it is calculated and why it is bounded between 0 and 1.

In a document by Bruel&Kjaer (page 38) I found the following:

The deterministic character of impact excitation limits the use of the Coherence Function**. The Coherence Function will show a "perfect" value of 1 unless:

  • There is an antiresonance, where the signal-to-noise ratio is rather poor. No particular attention needs to be paid to this. Taking a number of averages should make the FRF curve smooth (for noise at the output choose H1).

  • The person conducting the test impacts the structure in a scattered way, with respect to point and direction. This should be minimized so that the Coherence is higher than 0,95 at the resonances. If the impact point is close to a node point the Coherence may be extremely low (≈ 0,1). This is acceptable however, since the modal strength at this point is weak, and not important for the analysis.

My worry arose since I was getting a value of "1" for all the frequencies when analyzing the coherence for some impact testing evaluation.


Why Coherence is not useful when evaluating the relationship between input and output, for experiments where impact excitation is used? Why do I always get a "perfect 1"?

  • $\begingroup$ You cannot get Coherence =1 unless all samples look identical. $\endgroup$ – Tony Stewart Sunnyskyguy EE75 Jan 28 '19 at 22:30

a good reference is:

Carter GC. Coherence and time delay estimation. Proceedings of the IEEE. 1987 Feb;75(2):236-55

The coherence is actually complex valued and bound by a magnitude of one. I believe you are referring to the magnitude squared coherence as used in Carter's paper. The term coherence by itself is used in optics.

The problem with the MSC is the probability density of the estimate of MSC, it takes a lot of independent samples to get a reasonably accurate estimate. When applied to a single sample, the confidence region is [0 1] at any type two error, which essentially implies that a single sample has to considered a deterministic signal and not the random model. The following paper covers how to calculate the pdf of the sample MSC.

T. Barnard, "Legendre polynomial expressions for the probability density function of magnitude-squared coherence estimates," in IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 29, no. 1, pp. 107-108, February 1981. doi: 10.1109/TASSP.1981.1163516 Abstract: Carter, Knapp, and Nuttall [1] presented a discrete Fourier transform (DFT) method for estimating the magnitude-squared coherence between two zero-mean wide-sense-stationary random processes. This paper shows that a simple Legendre polynomial expression can replace the hypergeometric function used in the probability density function expression of Carter et al. [1] (see also Fisher [2] and Goodman [3]) for the coherence estimate obtained from nonoverlapped DFT's. A standard Legendre polynomial recursion provides a recursive method for evaluating the density expression. keywords: {Polynomials;Probability density function;Density functional theory;Frequency;Discrete Fourier transforms;Signal processing algorithms;Random processes;Instruments;Detectors;Distributed computing}, URL: http://ieeexplore.ieee.org.mutex.gmu.edu/stamp/stamp.jsp?tp=&arnumber=1163516&isnumber=26151

If you have the symbolic toolbox, you can use the following matlab code to calculate the MSC pdf using the expression from the Carter paper.

clear all
n=[ 1 32 512 768 ]
for k=1:length(n)
%syms  C Ch
h1=legend('1', '32','512', '768');
title(h1,'Number Trials');
title(['Sample Density given $\mid \gamma \mid^2 = $',num2str(C)],'FontWeight','bold','Interpreter','latex')
h=xlabel('Sample $\mid \tilde{\gamma} \mid^2$','FontWeight','bold','Interpreter','latex');

function [p]=Magsquarecoherepdf(c,C,nd)
for i=1:length(c)
t1=log10(hypergeom([1-nd 1-nd],1 , Ch*C));
assert(~isnan(t1),'t1 nan')
assert(~isnan(t2),'t2 nan');
assert(~isnan(t3),'t3 nan');
%assert(~isnan(p(i)),['p  assert ',num2str(t1),' ', num2str(t2),' ', num2str(t3)])

If you repeat your impacts, you have an ensemble and I believe you could apply the MSC to your problem.


If you might permit an analogy. lets say you are asked to determine if a coin is fair in a toss. You can't say very much from a single flip of a coin. you have to repeat the toss , and keep on repeat tossing it. the number of tosses required for a specific accuracy is determined from a probability law. a single toss tells you nothing.

the same is true for the MSC. a single trial says nothing. it needs to be repeated and the probability density in the code above specifies the number of trials required for a specified accuracy

| improve this answer | |
  • $\begingroup$ Yes sorry, I was referring to the magnitude squared coherence. Thanks for the answer, I will take some time to go through all of it carefully and then come back. $\endgroup$ – sdiabr Jan 29 '19 at 8:08
  • $\begingroup$ I am not really experienced in DSP so I can´t understand yet many of the concepts you mention. However at the end you say "(...) you have an ensemble, and I believe you could apply the MSC to your problem". Do you mean that if I have recorded several input-output signals at some impact position, then I may average those and use MSC and its use would be valid? $\endgroup$ – sdiabr Jan 29 '19 at 8:23
  • $\begingroup$ it would require hundreds of impacts $\endgroup$ – user28715 Jan 29 '19 at 8:31
  • $\begingroup$ Thanks for the answers. I performed 20 impacts. If I evaluate the coherence at each impact, I get a perfect 1 for all frequencies. If I average the impacts, then I get a MSC that looks more reasonable, but I am not sure if this is a correct procedure for the estimation of the MSC. That is the main question $\endgroup$ – sdiabr Jan 29 '19 at 8:38
  • $\begingroup$ the correct procedure is to understand the requirements of your test and i can’t tell you that. i pointed at some papers that could help and i can answer questions about the papers but your testing is your responsibility. 20 is not hundreds. science consists of trial and error. the question you asked was why the MSC wasn’t suited to a single impact and that was answered. $\endgroup$ – user28715 Jan 29 '19 at 12:28

Coherence formula contains 3 power spectrums: Pxx, Pxy, Pyy, each of them is a random value. To get a more reliable estimation of each, you have to average each of these spectrums among a set of realizations. And only after that calculate the coherence. Look inside "mscohere" function, if you have Matlab.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.