Hi all, Consider a FIR filter with coefficients [1 2 3 2 1] I know the group delay is 2, (5-1)/2. Can anyone tell how to deduce the group delay of 2 without going through the d(theta)/d(omega) mathematics? Is there an easy way to find the group delay? cfy30
group delay of FIR filter
Started by ●March 21, 2009
Reply by ●March 21, 20092009-03-21
cfy30 wrote:> Hi all, > > Consider a FIR filter with coefficients [1 2 3 2 1] > > I know the group delay is 2, (5-1)/2. Can anyone tell how to deduce the > group delay of 2 without going through the d(theta)/d(omega) mathematics? > Is there an easy way to find the group delay?You just found it. What more do you want? (5-1)/2 bypasses d(theta)/d(omega). Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by ●March 21, 20092009-03-21
On 21 Mar, 20:02, "cfy30" <cf...@yahoo.com> wrote:> Hi all, > > Consider a FIR filter with coefficients [1 2 3 2 1] > > I know the group delay is 2, (5-1)/2. Can anyone tell how to deduce the > group delay of 2 without going through the d(theta)/d(omega) mathematics? > Is there an easy way to find the group delay?Well, there is the difference between *deriving* the group delay (that is, finding the formula), and *computing* the group delay. You can do the computation in two ways: - Observe that the filter's impulse response is symmetric, so the filter is linear phase and thus the group delay is constant (N-1)/2 = 2. I can't imagine anything easier than that. - A somewhat more involved way is to compute the spectrum, unwrap the phase, and find the gradient of the phase vs w. Rune
Reply by ●March 21, 20092009-03-21
On 21 Mrz., 20:02, "cfy30" <cf...@yahoo.com> wrote:> Consider a FIR filter with coefficients [1 2 3 2 1] > > I know the group delay is 2, (5-1)/2. Can anyone tell how to deduce the > group delay of 2 without going through the d(theta)/d(omega) mathematics? > Is there an easy way to find the group delay?For this kind of filter you mentioned (symmetric + odd number of taps) it is easy. It's always group delay = (number of taps-1)/2. Let H(z) be the transfer function of such a filter, let k=(number of taps-1)/2, let G(z)=z^k. Note: The filter that corresponds to G(z) has a group delay of -k. Let's compose both filters: Now, F(z) := H(z)*G(z) is of the form F(z) = a_0 + a_1 * (z+z^-1) + a_2 * (z^2+z^-2) + ... + a_k * (z^k z^-k) Observe that z^p+z^-p is real for |z|=1. That makes F(z) real for | z|=1. So, the phase response of F doesn't change with the frequency. So, the group delay of F is zero. Since F=H*G has a group delay of zero and G has a group delay of -k and group delay of F = group delay of H + group delay of G, H has a group delay of k. q.e.d. You can prove this similarily for all remaining combinations of symmetric/antisymmetric + even/odd. Cheers! SG
Reply by ●March 21, 20092009-03-21
On Sat, 21 Mar 2009 14:02:09 -0500, "cfy30" <cfy30@yahoo.com> wrote:>Hi all, > >Consider a FIR filter with coefficients [1 2 3 2 1] > >I know the group delay is 2, (5-1)/2. Can anyone tell how to deduce the >group delay of 2 without going through the d(theta)/d(omega) mathematics? >Is there an easy way to find the group delay? > > >cfy30In a very basic sense, the amount of delay to the filter's peak coefficient is the group delay. You've picked a symmetric filter so that the assumption that the peak is in the middle holds. If you want an analytical reason for that, the coefficient set is the impulse response, and the location of the peak coefficient is usually taken to be the location of "the impulse" in the output stream. So, the delay to the peak coefficient is, in a basic sense, the group delay. Eric Jacobsen Minister of Algorithms Abineau Communications http://www.ericjacobsen.org Blog: http://www.dsprelated.com/blogs-1/hf/Eric_Jacobsen.php
Reply by ●March 22, 20092009-03-22
Thanks all! Hi SG, Your proof is insightful! Simple and elegant! Hi Eric, "The amount of delay to the filter's peak coefficient is the group delay." Finding group delay from the impulse response is new to me. Does it apply to all filters? Thanks, cfy30>On Sat, 21 Mar 2009 14:02:09 -0500, "cfy30" <cfy30@yahoo.com> wrote: > >>Hi all, >> >>Consider a FIR filter with coefficients [1 2 3 2 1] >> >>I know the group delay is 2, (5-1)/2. Can anyone tell how to deduce the >>group delay of 2 without going through the d(theta)/d(omega)mathematics?>>Is there an easy way to find the group delay? >> >> >>cfy30 > >In a very basic sense, the amount of delay to the filter's peak >coefficient is the group delay. You've picked a symmetric filter so >that the assumption that the peak is in the middle holds. > >If you want an analytical reason for that, the coefficient set is the >impulse response, and the location of the peak coefficient is usually >taken to be the location of "the impulse" in the output stream. So, >the delay to the peak coefficient is, in a basic sense, the group >delay. > >Eric Jacobsen >Minister of Algorithms >Abineau Communications >http://www.ericjacobsen.org > >Blog: http://www.dsprelated.com/blogs-1/hf/Eric_Jacobsen.php >
Reply by ●March 22, 20092009-03-22
cfy30 wrote:> Thanks all! > > Hi SG, > > Your proof is insightful! Simple and elegant! > > Hi Eric, > > "The amount of delay to the filter's peak coefficient is the group delay." > Finding group delay from the impulse response is new to me. Does it apply > to all filters?No. it applies only to filters with constant group delay. ... Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by ●March 22, 20092009-03-22
On Sun, 22 Mar 2009 11:42:35 -0400, Jerry Avins <jya@ieee.org> wrote:>cfy30 wrote: >> Thanks all! >> >> Hi SG, >> >> Your proof is insightful! Simple and elegant! >> >> Hi Eric, >> >> "The amount of delay to the filter's peak coefficient is the group delay." >> Finding group delay from the impulse response is new to me. Does it apply >> to all filters? > >No. it applies only to filters with constant group delay.Correct, and in cases where the delay in the passband is reasonably constant. Another caveat is that the amount of energy in the peak, or the size of the peak coefficient relative to the rest, gives a hint to how well the generalization might hold. Eric Jacobsen Minister of Algorithms Abineau Communications http://www.ericjacobsen.org Blog: http://www.dsprelated.com/blogs-1/hf/Eric_Jacobsen.php
Reply by ●March 22, 20092009-03-22
On Sat, 21 Mar 2009 14:02:09 -0500, cfy30 wrote:> Hi all, > > Consider a FIR filter with coefficients [1 2 3 2 1] > > I know the group delay is 2, (5-1)/2. Can anyone tell how to deduce the > group delay of 2 without going through the d(theta)/d(omega) > mathematics? Is there an easy way to find the group delay? > > > cfy30For a symmetric filter it is easy. First, consider the World's Simplest Filter. It has coefficient [1], meaning that it's input/output relationship is y_n = x_n, and all it does is passes the input to the output identically. Clearly it does nothing at all because it isn't really even a filter. Now consider the World's Second Most Simple Filter. It has coefficients [0 0 ... 1], meaning it's input/output relationship is y_n = x_{n-m}, and all it does is delay the input by m samples. Now consider a filter whose coefficients are perfectly symmetrical around zero delay, i.e. y_n = a_0 x_n + a_1(x_{n-1} + x_{n+1}) + ... This filter has a serious problem in that it must look into the future (the x_{n+1} and other future-looking terms), but it has exactly zero delay. You can see* that it must not have any delay because anything that happens in the past to delay things is balanced by the exact same thing happening in the future to "advance" things. So there can be attenuation or gain, but no delay or advance. A "normal", i.e. realizable, FIR filter just combines the impossible 'perfect' symmetrical filter with the World's Second Most Simple Filter. The phase delays add, so you just get 0 + m samples. Now toss in the (unproven) assertion that it still works for a half-sample delay, and you're done. * You asked for no math, so -- no math. Instead, I give you hand- waving. If you want math, start with the property of the Fourier transform that states that the Fourier transform of a real-valued, even- symmetric function must be real-valued and even-symmetric, and see how many steps you need to prove zero phase shift over all frequencies. -- http://www.wescottdesign.com
Reply by ●March 24, 20092009-03-24
On Sat, 21 Mar 2009 14:02:09 -0500, "cfy30" <cfy30@yahoo.com> wrote:>Hi all, > >Consider a FIR filter with coefficients [1 2 3 2 1] > >I know the group delay is 2, (5-1)/2. Can anyone tell how to deduce the >group delay of 2 without going through the d(theta)/d(omega) mathematics? >Is there an easy way to find the group delay? > > >cfy30Hi cfy30, your question has, what I consider to be, a fairly deep (significant underlying) meaning. I like Tim's "hand waving" explanation. Sometimes in their algebraic derivations of z-domain transfer functions, some authors arrive at a transfer function equation of some network whose impulse response begins before an impulse input is applied. They call such networks "acausal". Then they say something like: "To make the network causal, we add a delay to the network." That kind of explanation always irritates me because how can they add a delay to a network when that network cannot exist in our physical universe? Ha ha. By the way, you asked for ways to compute "group delay of without going through the d(theta)/d(omega) mathematics". You might have a look at: http://www.dsprelated.com/showarticle/69.php The above scheme avoids the "d(theta)/d(omega) mathematics" but still has plenty of other mathematics. See Ya', [-Rick-]






