Thank you for the input! It sounds like Fourier methods will be fastest, by design, for sample counts of hundreds to thousands.
I currently do steps like: Im1 = get_stream_array_data() Im2 = load_template_array_data(fh2) ##note: len(im1)==len(im2) Ffft_im1=fftpack.rfft(Im1) Ffft_im2=fftpack.rfft(Im2) R1= (Ffft_im1 * Ffft_im2.conjugate()) R2= (abs(Ffft_im1) * abs(Ffft_im2)) R = R1 / R2 IR=fftpack.irfft(R) flat_IR = numpy.ravel(numpy.transpose(IR)).real I= numpy.argmax(flat_IR) phase_offset = (I % len(Im1)) At 09:29 AM 3/4/2008, Anne Archibald wrote: > * What do you want to happen at the endpoints? Without padding, only a > small interval (the difference in lengths plus one) is valid. > Zero-padding works, but guarantees a fall-off at the ends. Circular > correlation is easy to implement but not appropriate most of the time. How much should I be concerned?, since the only desired information from this is the scalar best-fit phase value, presumably the argmax() of the xcorr. In current operation, imagine a tone pattern/template of n samples which we want to align to streaming data; the desired result (at least in my current FFT code) is the sample number of recent ADC data where the zero'th sample of the pattern best aligns. Since it is a repeating pattern, we know that it will always align somewhere in the latest n samples. > * Do you care about sub-sample alignment? How much accuracy do you > really need? Integer alignment is sufficient, due both to electronic noise, and desired phase > The other common application is to have a template (that presumably > falls to zero at its endpoint) and to want to compute a running > correlation against a stream of data. This too can be done both ways, > depending on the size of the template; all that is needed is to think > carefully about overlaps. This is very much what the application is, although the template does not terminate at zero. It does terminate at a value near the zero'th value however, and I assumed the FFTs would be well-behaved. Ray -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.516 / Virus Database: 269.21.4/1310 - Release Date: 3/4/2008 8:35 AM _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion