Room correction with Acourate

There’s nothing fundamentally opaque about convolution filters. It just takes a little bit more work to examine them.

I’ll grant–things are a little bit more transparent with IIR filters, but mostly because of how they are presented in software–in terms we understand.

Under the hood, Most IIR DSP is equivalent to what’s laid out in a few pages in The Audio EQ cookbook. There just isn’t a whole lot of room for magic beyond that. A butterworth filter is a butterworth filter. You can evaluate it at different levels of arithmetic precision and you can run filters in series to create more complex frequency response characteristics–that’s about it.

But FIR (convolution) filters are still pretty accessible… For example…one of my early REW-generated filters (not a good one :slight_smile: ), viewed using MATLAB’s filter visualization tool:

>> [y,Fs] = audioread('/Users/brian/Desktop/f.wav')
>> fvtool(dfilt.dffir(y),'Fs',Fs)

Frequency response:

Phase response:

Impulse response (same as waveform in the .wav file):

I haven’t done this exercise with an externally generated filter before…it’s actually pretty interesting.

If I had to guess, REW is totally based on IIR filters internally, and it computed the FIR coefficients by processing an impulse signal through the IIR filters and recording the result. This is a very simple (but correct) approach.

I’m guessing this way mostly because of how the impulse and phase responses look–neither have appearances characteristic of the usual FIR design algorithms–FIR design algorithms generate impulse responses with more obvious ringing (but cleaner phase responses).

It would be interesting to look at filters generated by other software in the same way. Maybe there’s something interesting there. Once I play with Acourate a little bit more, I’ll go through the same exercise and take a look…

There is no magic in DSP…no matter the marketing/hype that is often associated with it. It’s mostly math. The rest is engineering–deciding what you want to do and fitting it into a performance envelope.