So let's say I'm trying to implement something like an LPC vocoder. I analyse a speech signal by breaking it up in small chunks and determining their LPC coefficients, which are by design, the coefficients of an all-pole (IIR) filter.
So far, I understand that for an FIR filter, the impulse response is a finite
M samples, so when performing an overlap-add (OLA) block convolution, each signal of length
N is extended into a sequence of
N+M-1 length, and for a naive implementation, we can overlap and add these M-1 samples in the tail, with the next chunk.
If I want to process a buffer of audio with the IIR filter coming from the LPC analysis, the IR should be infinite, so the only way I can think of using a block convolution is by convolving a
delta with the IIR to get a long FIR and truncating it (which I think is terrible).
I also see pages like this that say to use the Block Recursion method, which seems to establish the IIR filter coefficients as columns of a matrix (states?), and that if it is causal the upper-right triangle of this matrix is filled with zeros. I don't understand how this works or why such a matrix is needed?