arbitrary group delay filter design

2 views (last 30 days)
Mark Thompson
Mark Thompson on 3 May 2016
Commented: Mark Thompson on 11 May 2016
Hi there,
I am having difficulty understanding how to design my desired all pass filter network to produce an arbitrary group delay over a given audio frequency bandwidth. I have tried following this example here: IIR Filter Design Given a Prescribed Group Delay, however I still can't achieve my design goals. My requirements are to achieve the following:
  1. An all pass filter(s) that create my desired group delays between a nominated bandwidth
  2. System sampling frequency is 48kHz.
  3. desired lower and upper frequency bands: 20 Hz and 200 Hz respectively
  4. target curve is to be linear between 20 Hz and 200 Hz
  5. group delay at 20 Hz to be = 12.5 ms
  6. group delay at 200 Hz to be = 1.25 ms
  7. ideally the group delay would go to zero outside of these frequency bounds
Could someone please help me design this filter. I'm not too concerned with filter order just yet, so for now it can just be 10 perhaps?!
I've also tried to design this using the FDA tool however I'm not clear on how to set the parameters when I switch the frequency units to Hz. Perhaps someone may also be able to help me here?
I would really appreciate any assistance you can provide me. Many thanks.
Regards
Mark

Answers (1)

Bhavesh
Bhavesh on 9 May 2016
Hi Mark, I have used FDAtool to generate a filter of your requirement - kindly look at it and check if its what you are looking for
-
  1 Comment
Mark Thompson
Mark Thompson on 11 May 2016
Hi Bhavesh, thank you for taking the time to put together that filter for me. I tried to replicate your design parameters, however my magnitude response is different to yours (perhaps a side effect of the optimization algorithm? Are you perhaps able to send me the exported filter after you have designed it? Can you also confirm that the values in "Grpdelay vector" are in milliseconds? I assume so since we aren't using half-samples...
Here is the plot of the magnitude response, and group delay (which I'm expecting to be "smooth" between 20 Hz and 200 Hz):
and:
Also note that above 200 Hz I want the group delay to go to zero.
Any further advice/assistance? Many thanks. Mark.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!