ΣSigmaStudio Ask AI Русский Log in

ADAU1466: Best way to brickwall filter before decimation?

SigmaDSP & SigmaStudio [IDC]Dragon Apr 24, 2021 00:00 0 replies Original on forum ↗
Subscribe
[IDC]Dragon Question
Apr 24, 2021 00:00

I have a use case where the incoming sample rate (i.e. 384kHz) is too high for my processing, so I'm decimating by a factor of 2. In future, I'm seeing even more multirate filtering demands, so I'm curious about a proper way. Reconstruction after upsampling will be the other side of the coin.

To avoid alias, the signal needs to be clean above later Nyquist, a brick wall filter is required. For other SigmaDSPs the decimation block offers a built-in filter, but for ADAU1466 it does not. So I assume I need to design something in front of the decimation. However, this seems wasteful, half of the samples calculated by the filter will be thrown away by the following 2:1 decimation, even worse for higher factors. The filter is expensive because it runs with the high input sample rate. Is there a smarter solution?

Speaking of filters, I ran into a strange limitation of the "Nth Order Filter" (IIR). The highest corner frequency I can enter is 30 kHz, where I need something like 96 kHz with Chebyshev type 2. I ended up manually replacing (brr) the generated coefficients in the output code by Matlab/Octave/Python results. Second try was a "General FIR Filter" set to Blackman and center frequency somewhat decreased to get enough stopband rejection. I'm not sure which filter is preferable, IIR "double precision"(?) with some phase rolloff vs. FIR unknown(?) precision. Filter order was 10 for IIR and 50 for FIR.

Thanks for clarification,

Joerg

Audio Signal Processors

SigmaDSP Audio Processors

adau1466