0
$\begingroup$

I would like to be able to implement an All-Pass filter with a frequency-dependent group delay. I need a maximum group delay at low frequency of about 20 samples (for Fs = 44.1kHz), and it needs to fall to zero(-ish) at the Nyquist frequency. Ideally, I would like to specify a corner frequency and a rate at which the delay falls off either side of it. How the heck would I design such a thing?

I'm afraid I'm not sufficiently competent to follow the design approaches I can find on the web that plunge straight into poles, zeros, transfer functions and complex conjugates. What I can do, though, is implement the darned thing efficiently in code once it is designed.

I am able to use Matlab to design FIR and IIR low-pass filters, because it has a built-in tool that spits them out. But it doesn't have an All-Pass filter design tool (at least not one I can find).

$\endgroup$
  • $\begingroup$ Well as far as I know there aren't much tools because the common design for an all-pass filter is pretty simple. However, following the equation from Wikipedia might help you en.wikipedia.org/wiki/All-pass_filter $\endgroup$ – meneldal Jun 11 '15 at 4:54
  • $\begingroup$ I didn't see anything that looks "pretty simple" there :( $\endgroup$ – Richard M Jun 11 '15 at 13:42
  • $\begingroup$ Did you try using this Matlab function? $\endgroup$ – smyslov Jun 11 '15 at 14:50
  • $\begingroup$ Yes I saw that, but I don't see how to get from my baseline requirements (group delay vs frequency) to where I can make use of this function. $\endgroup$ – Richard M Jun 11 '15 at 18:38
1
$\begingroup$

This is an excerpt from the FilterScript user's guide, which should provide you with enough information on how to design the filter. Please refer to the other product resources on the tool's homepage for more information.

FilterScript code for a second order all-pass filter

$\endgroup$
  • $\begingroup$ Thanks, but you should have edited your other question. I've deleted your other answer and included the link to your website here. $\endgroup$ – Peter K. Jul 1 '16 at 11:43
  • 1
    $\begingroup$ Thanks for pointing that out! I'll bear that in mind next time. $\endgroup$ – ASN Support Jul 1 '16 at 12:56

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.