I'm trying to implement autocorrelation as outlined in the Autotune patent, which is done with four multiply-adds per lag per sample.
Basically it involves keeping a series of moving averages across lengths ranging from a couple up to 880 samples. It's an awesomely elegant approach, but for perfect accuracy it requires that the number added is EXACTLY the number subtracted 880 samples later.
I tried filtering out the drift with a DC offset filter, and briefly tried something like an exponential moving average, but wasn't able to get any usable results from either. As far as I can tell, this approach requires equal-weight averages, and doesn't respond well to drift. The numbers not being subtracted back out is clearly visible when I plot the values
Of course my code could be wrong as well, it almost looks like it's barely subtracting the values out at all. Maybe I'm chasing a red herring here and the issue is something else.
Last edited by noouch; 01-13-2021 at 02:01 PM.
|