Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive

MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

maximize crosscorrelation

  • To: mathgroup at
  • Subject: [mg125374] maximize crosscorrelation
  • From: alexxx <alexxx.magni at>
  • Date: Sat, 10 Mar 2012 06:16:55 -0500 (EST)
  • Delivered-to:

Hi guys, I hope somebody can help me with this.

I have two similar signals s1 and s2, where one is shifted with
respect to the other by an unknown amount.
These signals are captured by an oscilloscope, so you can represent
them as arrays of {t,v} time and voltage values.

Typical datafile, containing both signals:
# time        V1           V2
6.25e-011 0.787938 0.845207
4.25e-010 0.886294 0.883048

I always knew that the theory says in such cases you have to maximize
the selfcorrelation between the two signals, but I never used it until

(BTW I was surprised to find that Mathematica had it as a standalone
function, but doesnt provide it anymore)

Anyway, 1st thing since crosscorr requires integration I defined the
interpolation functions
f1= Interpolation[v1];  f2= Interpolation[v2];

then I defined the crosscorrelation thus:
cc[\[Tau]_] :=  Integrate[f1[t] * f2[t + \[Tau]], {t, a,b}]
with the time limits a and b where my functions are well defined.

Last, I believed that the plot of my cc[\[Tau]_] as a function of
varying offset would show a clear peak at the correct offset value,
but it isnt so.

So, understanding that I didnt understand a thing, I setup a mokeup
f1[t_] := Cos[t]*Exp[-t^2/20]; f2[t_] := Cos[t - 2]*Exp[-(t -
Print[Plot[{f1[t], f2[t]}, {t, -10, 10}, PlotRange -> All]];
cc[\[Tau]_] :=  Integrate[f1[t]*f2[t + \[Tau]], {t, -Infinity,
Plot[cc[\[Tau]], {\[Tau], -3, 3}, Mesh -> All, PlotPoints -> 5,
MaxRecursion -> 1, PlotRange -> All]

and it clearly works (e.g. maximum at 2), so I guess that my problem
lies 1) in the discrete nature of my data, and 2) in the fact that my
data is defined in a finite, not infinite interval.

Any ideas about how to define this problem?



  • Prev by Date: Re: Using Mathematica to typeset books
  • Next by Date: Re: new functional operator
  • Previous by thread: Re: Listplot with appendto list
  • Next by thread: Re: maximize crosscorrelation