DSPRelated.com
Forums

normalised cross correlation by fft

Started by sangthong February 26, 2008
Hi,

I have got a problem doing 2D normalised cross correlation by FFT. The
normal 2D cross correlation seems very time consuming for long signal so I
tried to use FFT. I can now get the equal result of cross correlation both
by equation and by FFT, but I can not do the normalisation to get the
result of FFT equals to the "normxcorr2" from matlab function.

Thanks,
Sangthong
On 26 Feb, 20:58, "sangthong" <sangthong2...@yahoo.com> wrote:
> Hi, > > I have got a problem doing 2D normalised cross correlation by FFT. The > normal 2D cross correlation seems very time consuming for long signal so I > tried to use FFT. I can now get the equal result of cross correlation both > by equation and by FFT, but I can not do the normalisation to get the > result of FFT equals to the "normxcorr2" from matlab function. > > Thanks, > Sangthong
There is no reason why the FFT should produce a normalized result: http://groups.google.no/group/comp.dsp/msg/d184833f2fa03ee7 Rune
>There is no reason why the FFT should produce a normalized result: > >http://groups.google.no/group/comp.dsp/msg/d184833f2fa03ee7 > >Rune >
Hi, Thank you for your comment, but when one of the two signal is very short in length it seems the result is incorrect in terms of peak location. In the normal cross correlation, I can do the normalisation in one dimension by hand and in two dimension there is a function "normscorr2" in matlab to do the normalization, but that takes very long time to run the programme, or sometimes it can't even run because of memory consuming. So I want to try the normalisation with the FFT, which may be faster. thanks, Sangthong
On 27 Feb, 23:22, "sangthong" <sangthong2...@yahoo.com> wrote:
> >There is no reason why the FFT should produce a normalized result: > > >http://groups.google.no/group/comp.dsp/msg/d184833f2fa03ee7 > > >Rune > > Hi, > > Thank you for your comment, but when one of the two signal is very short > in length it seems the result is incorrect in terms of peak location.
Hardly surprising. When the reference signal is short, the likelihood of some 'false' section of data matching it becomes large.
> In > the normal cross correlation, I can do the normalisation in one dimension > by hand and in two dimension there is a function "normscorr2" in matlab to > do the normalization, but that takes very long time to run the programme,
Of course it does. The reason is what I explained in the post at the end of the link: One has to normalize each element individually. Rune