1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Fast Walsh Transforms

  1. Nov 13, 2015 #1
    I need to do a realtime 512 point autocorrelation for a seismic project but my poor little Parallax computer is getting swamped by all the floating point multiplies. The answer seems to be in the fast Walsh Transform. I bought some IEEE papers on the subject but they are a little deep! Does anyone have any words of encouragement? According to Wiener-Khinchin I can get the same effect by taking the fft of the data, multiplying by the complex conjugate, and taking the inverse FFT. I tried this too on Scilab but it doesnt seem to really work. Any thoughts appreciated.
  2. jcsd
  3. Nov 13, 2015 #2
    When testing code, two approaches I like to use are using an input for which the output is known and testing the output between a known good method and the code being tested.

    If you have a known good method that is slow, test with that, possibly on a faster computer like a PC. Even slow Fourier methods are fast on modern PCs with only 512 data points.
  4. Nov 13, 2015 #3
    Thanks for the reply. This is for a remote sensing application with very limited power available. A PC is not an option but I do use it to verify my code. I am using a very low power (battery supplied) micorcontroller. I need to do a 512 point autocorrelation every 5 seconds and the brute forced lagged-product technique is too processor intensive. I know the autocorrelation can be done much simpler and faster using Walsh, for example. I am sure Matlab uses some such technique.since it can do huge autocorrelations instantly. All of these techniques are similar with butterflies and exotic orderings. But if you are a newcomer it is hard to see the forest for the trees. It is more like solving a Rubbix Cube than calculus. 'Preciate it...
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook