[music-dsp] Vectorising IIR Filters

Rob Belcham hybridalienrob at hotmail.com
Tue Oct 11 15:26:01 EDT 2011


Can you live with some latency ?
If so, a simple approach I've taken on the Sharc DSP is to split the chain 
in half & process one half on each core, e.g

    PEx = Band 1 -> Band 2
    PEy = Band 3 -> Band 4

so the input to band 3 will always be one sample behind.

This approach doesn't scale up terribly well for many parallel cores unless 
you have a lot of filter bands to process but works fine for SSE or Sharc 
simd.

Rob

--------------------------------------------------
From: "Thomas Young" <thomas.young at rebellion.co.uk>
Sent: Tuesday, October 11, 2011 3:18 PM
To: "A discussion list for music-related DSP" <music-dsp at music.columbia.edu>
Subject: [music-dsp] Vectorising IIR Filters

> Does anyone have any thoughts on vectorising IIR filters?
>
> I can't see how an IIR filter implementation can be broken down into 
> parallelisable pieces when there is feedback involved, and I guess that 
> more broadly applies to any effect where feeding back is required.
>
> For example and perhaps to clarify, if we take a transfer function and put 
> it into direct form 1, then we will end up with the coefficients in our 
> denominator relying on previous outputs. Naively a vectorised 
> implementation would process n outputs concurrently, for example using a 4 
> float vector and vector intrinsics to process the filter 4 samples at a 
> time, however this obviously does not work when each ouput requires the 
> previous output to have been already calculated.
>
> Tom Young
> --
> dupswapdrop -- the music-dsp mailing list and website:
> subscription info, FAQ, source code archive, list archive, book reviews, 
> dsp links
> http://music.columbia.edu/cmc/music-dsp
> http://music.columbia.edu/mailman/listinfo/music-dsp
> 


More information about the music-dsp mailing list