DSPRelated.com
Forums

Group Delay to Magnitude conversion for minimum phase system.

Started by DB July 8, 2007
Hello All,

I have an application where I know the group delay of a minimum phase
system and I need to calculate the matching magnitude response of the
system.
I know how to calculate the magnitude from the phase response via the
Hilbert Transform but in this case I'm not able to obtain the phase
response. Calculating the phase from the group delay is not an option as
errors accumulate during the required integration. 
Does anyone know a way of modifying the Hilbert Transform to relate group
delay to magnitude response? 

Thanks,

Dave 


On 8 Jul, 12:52, "DB" <decbroadhu...@gmail.com> wrote:
> Hello All, > > I have an application where I know the group delay of a minimum phase > system and I need to calculate the matching magnitude response of the > system. > I know how to calculate the magnitude from the phase response via the > Hilbert Transform but in this case I'm not able to obtain the phase > response. Calculating the phase from the group delay is not an option as > errors accumulate during the required integration. > Does anyone know a way of modifying the Hilbert Transform to relate group > delay to magnitude response?
I think it would be very hard if you reject up front to integrate the group delay... Rune
On Sun, 08 Jul 2007 05:52:39 -0500, DB wrote:

> Hello All, > > I have an application where I know the group delay of a minimum phase > > system and I need to calculate the matching magnitude response of the > > system. > I know how to calculate the magnitude from the phase response via the > > Hilbert Transform but in this case I'm not able to obtain the phase > > response. Calculating the phase from the group delay is not an option as > > errors accumulate during the required integration. > Does anyone know a way of modifying the Hilbert Transform to relate group > > delay to magnitude response? > > Thanks, > > Dave
If the errors are there in your group delay all along and the integration just magnifies then then any exact transformation is going to magnify them just the way that perfect integration followed by a perfect Hilbert transform would. I'm not sure if there would be an acceptable approximation to substitute. -- Tim Wescott Control systems and communications consulting http://www.wescottdesign.com Need to learn how to apply control theory in your embedded system? "Applied Control Theory for Embedded Systems" by Tim Wescott Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html
On Jul 8, 6:52 am, "DB" <decbroadhu...@gmail.com> wrote:
> Hello All, > > I have an application where I know the group delay of a minimum phase > system and I need to calculate the matching magnitude response of the > system. > I know how to calculate the magnitude from the phase response via the > Hilbert Transform but in this case I'm not able to obtain the phase > response. Calculating the phase from the group delay is not an option as > errors accumulate during the required integration. > Does anyone know a way of modifying the Hilbert Transform to relate group > delay to magnitude response? > > Thanks, > > Dave
It is not really the Hilbert transform but something related. Let H(s) be the transfer function, and assume that H(s) is minimum phase, that is, both H(s) and 1/H(s) are holomorphic on R(s) > 0; then so is log(H(s)) holomorphic. Then if log(H(s)) goes to zero fast enough as |s| -> inf then you have the Hilbert transform relationship between the real and imaginary parts of log(H(iw)) but that does not happen for lumped element circuits. Instead you have to divide it with s(s^2 + q^2) and then you get something similar to that using the Cauchy-Poisson integral; details are in Papoulis, eq 10.68. The result for log|H(iw)| = A(w) + i.theta(w) is A(w) = A(0) - (w^2/pi) integral( theta(u)/(u(u^-w^2) du) Now perform a partial integration and note that 1/(u(u^2-w^2))= diff( log(sqrt(|u^2-w^2|)/|w|), u): integral( theta(u)/(u(u^-w^2) du) = {theta(u) log(sqrt(|u^2-w^2|)/|u|)} + integral (tau(u) log(sqrt(|u^2- w^2|)/|w|), du) Here the integrals and curly brackets are from -inf to +inf and the group delay is defined by tau(w) = -dtheta(w)/dw . Now the "kernel" log(sqrt(|u^2-w^2|)/|u|) goes to zero at the limits and if we assume that theta goes to a constant, (maybe a reasonable assumption) then you get an integral transform from tau to A, assuming also that the Cauchy principal value exists, which is probably good assumption as long as tau(w) is smooth. Finally: A(w) = A(0) + (w^2/pi) integral (tau(u) log(sqrt(|u^2-w^2|)/|w|), du)