Standard bandpass filters can make super precise analysis filterbanks with 1024 to 4096 filters, on reaktor4. I tried in code to used cookbook BandPass and the result was aweful.

Does someone know a precise BandPass Filter that transmits narrow bands of an intended frequency without noise and irregularity? resonance is an advantage because it takes the detected frequency's value and adds a large pure amount of that frequency as a sine wave, which is cool because ideally i would be letting through individual sine waves of given frequency. i want something of that kind. what kind of filter should be used on filterbanks? do you have an example in code?


This has already been addressed in depth here: https://stackoverflow.com/questions/5901483/simple-audio-filter-bank

and i found some c# code on the subject here:

Copied answer from SO here

Using FFT to split an Audio signal into few bands is overkill.

What you need is one or two Linkwitz-Riley filters. These filters split a signal into a high and low frequency part.

A nice property of this filter is, that if you add the low and high frequency parts you get almost the original signal back. There will be a little bit of phase-shift but the ear will not be able to hear this.

If you need more than two bands you can chain the filters. For example if you want to separate the signal at 100 and 2000Hz it would in pseudo-code somewhat like this:

low  = linkwitz-riley-low (100, input-samples)
temp = linkwitz-riley-high (100, input-samples)

mids = linkwitz-riley-low (2000, temp)
highs = linkwitz-riley-high (2000, temp);

and so on..

After splitting the signal you can for example amplifiy the three output bands: low, mids and highs and later add them together to get your processed signal.

The filter sections itself can be implemented using IIR filters. A google search for "Linkwitz-Riley digital IIR" should give lots of good hits.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.