Design 2nd order sections IIR filter for high orders (more than 500) I am currently building a Reverb that needs to fit on a DSP. I am using the model proposed in this link https://ccrma.stanford.edu/~jos/pasp/Freeverb.html.
It involved to create some Feedback Comb-Filters with high orders (more than 1000). For that I use a 2nd-order section IIR filter (IIRSOS) integrated in my DSP. I am using the Matlab function &quot;tf2sos&quot; that takes numerator and denominator of the Transfer Function (TF) of the desire filter and create a matrix of Second Order Section (SOS) coefficient. With this coefficients, I can make what I want.
Problem : for high filter orders (arround order 200) the &quot;tf2sos&quot; function appears to be totally unstable. However the Matlab object called dsp.IIRFilter that use also 2nd-order section IIR seems to handle it :
Impulse response for order = 200 :

Impulse response for order = 1500 :

On the 2nd picture you can see that the filter with the tf2sos coefficients is going totally wrong. Does someone knows how I can get a functional coefficient matrix for orders like 1500 ?
Thank you.
The Schroeder/Moore implementation uses sparse IIR filters. It's extremely inefficient to implement these as regular IIR filters or biqauds. 

It's much easier and more efficient to implement these directly. See for example
https://ccrma.stanford.edu/~jos/pasp/Schroeder_Allpass_Sections.html

Both the comb filter and the schroeder allpass use the same structure as a regular IIR filter, but the delay(s) are not a single sample but much larger number. So the Schroeder allpass looks like any other 1rst order allpass except that the delay in there is big. If you want get technical about this 

The algorithm was specifically designed to be computational efficient, hence it makes no sense using standard biquads. On the downside, it typically doesn't sound very good. Feedback delay networks tend to sound a lot better.