A bi-directional recursive sinc filter - does such a thing exist?

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

I've read about Gaussian filters being implemented with bi-directional recursive filter pairs. Could sinc filters be implemented similarly, for offline processing? Would it be feasible, or even possible?

Post

What you can do is - if you already have a Gaussian lowpass G - to use the corresponding highpass 1-G (delayed original minus the lowpass) as building block.

By using multiple instances of 1-G in series you get an arbitrary steep highpass filter (1-G)^n - the inversion of this final highpass 1-(1-G)^n is a steeper lowpass and an approximation of a sinc. Figuring out the coefficients might be a little bit tricky.

This does not work the direct way without inversion to the highpass, because a series of Gauss lowpasses results again in a Gauss lowpass just with a lower cutoff.

Maybe the is a direct approach with moving averages / integrator combs without Gaussian filters - but i am not sure about that

Post

ottohalmen wrote:I've read about Gaussian filters being implemented with bi-directional recursive filter pairs. Could sinc filters be implemented similarly, for offline processing? Would it be feasible, or even possible?
Well, it won't really give you "real" gaussian but just something that is close enough for all practical purposes. The reason it works well with gaussians, even using first order filters, is because the shape isn't that far from a regular one pole shape and in most applications where you'd use gaussians the exact shape is not that critical in the first place.

That said, if you want to design bidirectional recursive filters to get linear-phase, just design a normal minimum-phase filter with a magnitude response that is a square root of the desired target response. Running the filter twice then squares the response (to get the desired total response) and if you run the second pass back-wards the phase-shift cancels out (giving you zero-phase).

To get "brickwall" filters (ie. sinc approximation), you could theoretically just use some suitably high order low-pass filter and run it twice (back and forth)... but since it's easy to use FFT convolution if you're processing in the first place, it's likely to be much slower than just using a suitable FIR so it's kinda pointless.

Post Reply

Return to “DSP and Plugin Development”