# Measuring Similarity of two Transient Signals

I am trying to measure the similarity between two signals, i.e. how identical they are. A complete overlap (two lines forming a single line) should give me a value of 1, the greater the distance, between the lines and the less similar the overall trend, the closer the value should go to 0.

I have tried measuring standard deviation $\sigma$ and different variants of correlation $r$ using MATLAB functions std(), xcorr() and corr2(). They did not do the trick, as ,e.g. $\sigma_{\phi_{A}}$ was $>$ than $\sigma_{\phi_{B}}$ (see figure below).

I was thinking about using some sort of weighted average between $\sigma$ and $r$. Another possibility would be to measure the difference between areas under the curves (but then different intersecting graphs could have the same area).

There are related questions to this, but they are either: (i) discussing the generic concept of similarity or (ii) suggest using xcorr() (different variants of which did not work for me).

-

$distance(f_1,f_2)=\frac{1}{1+\|f_1-f_2\|_{L^2}}$
However, like you say, the issue of determining what you mean by 'similar' curves is not a simple problem. In fact, using the $L^2$ distance has issues in that it leads to very low 'prediction power' due to the curse of dimensionality.