How to make really slow filters on ADAU1466
For the thermal simulation (and limiting) of one of our products we need a 0.5 mHz filter to track a thermal time constant of something getting hot over time. I've tried an IIR filter with single order low pass parameters, but notice I'm down to the last few bits of resolution, and run into the problem that the "RC" filter doesn't seem to reach its final 'saturating' value but gets stuck at ~70% after a while.
Are there other ways to implement very slow IIR filters? Or would it be possible to somehow prescale the filter block to have it run at a different sample rate?
Thanks in advance!
-David
Audio Signal Processors
slow
SigmaDSP Audio Processors
iir filter
biquad
adau1466
Show More
It took a bunch of swearing but I figured this out; The ADAU1466 supports down- and upsamping blocks that can be placed before the IIR filter.
The upsampling block V1.02 was broken on my setup though, but using V1.01 (without the LPF) worked when selecting "Zero order hold". Also see this tread: ez.analog.com/.../upsampling-algorithm-version-1-02-broken
Hello,
You are not alone regarding swearing with SS ;)
Note for 24-bits, the closest pole to unit circle is p=1-2^-24. For a first order filter i.e. RC the corresponding cutoff Fc = (-Fs/2pi)*ln(p). For Fs=48000 Fc= 0.46 mHz so you should be able to get that using the double precision filter, unless there is some truncation/rounding happening. Anyway for such a low cutoff its smart to use decimation/interpolation as you found out, which be better numerically and you could do lower cutoff.
Hello David,
I had a similar question not too long ago. I suggested he use an envelope follower to develop a really slow moving average.
Read this thread all the way through to see if this might help you find a solution in a less conventional way.
(+) [ADAU145x] Downsampling to arbitrary value - Q&A - SigmaDSP Processors and SigmaStudio Development Tool - EngineerZone (analog.com)
Dave T
Please log in to reply.