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)
Reply by Tim Wescott●July 8, 20072007-07-08
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
Reply by Rune Allnor●July 8, 20072007-07-08
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
Reply by DB●July 8, 20072007-07-08
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