# [SI-LIST] Re: Causality

• To: "Jennifer Maharani" <jennifer.maharani@xxxxxxxxx>
• Date: Fri, 15 May 2009 12:18:25 -0600

```Did you look on the polar or trajectory plot of your frequency
dependences? This is a plot showing touchstone points as pairs (real,
imag) on the complex plane. Typically, for causal data we observe
clockwise rotation with frequency (because delay operator is exp(-sT)).
A persistent violation of this behavior may indicate that the delay was
"overcompensated". That is, if we multiple the dependence on inverse
delay operator, exp(+s*Tx), with Tx < T, it allows us to get "smoother"
curves, but if Tx is too large, the dependence becomes non-causal since
it internally has a multiplier that is an inverse delay operator. If
this is the case, find out what over-compensation is, and multiply your
dependence on delay operator to compensate it. Of course, I'm just
guessing, I don't know exactly what your data is.

The problem with spice simulation is that you don't see all stages of
transformation it does internally. The first and most important stage is
conversion from freq into time domain. One way to check how it's done is
this. Terminate your S-parameters with 50 Ohms everywhere (or whatever
you number is) and perform transient by applying an ideal unit step
starting at t=0 to one port, P1 (voltage source in series with same 50
Ohm). Measure time response on the other port, P2. Find derivative, that
should be Dirac pulse response, and then take FFT from it. Numerically,
this should be 0.5 * S(p2, p1). Compare this frequency dependence to

-----Original Message-----
From: Jennifer Maharani [mailto:jennifer.maharani@xxxxxxxxx]
Sent: Friday, May 15, 2009 11:51 AM
Cc: <si-list@xxxxxxxxxxxxx>
Subject: Re: [SI-LIST] Re: Causality

I guess there are some hyperlinx users in my office. I might give it a
try.

How do I know it non-causal? I used my Spar block for transient
simulation and fed in a measured current activity. This current
activity is only active starting let's say 1ns. From 0ns to 1ns it is
flat zero. At the output side of my Spar block I see some transient
behavior (ripple like). That is how I concluded that my Spar is indeed
non-causal.

I also tried to use the broadband spice generator from Agilent. It too
gives warning message that the Spar is non-causal. The tool is able to
enforce passivity, but not causality.

Based on the frequency and rise time of my signal, I only need a model
up to around 5 GHz. Just to be safe, I ran my EM simulation up to
20GHz. While the energy level converged nicely down to -60dB and the
power balance looks well, my Spar is still non passive and non causal.

Confused :(

On May 15, 2009, at 5:56 PM, "Dmitriev-Zdorov, Vladimir"
> wrote:

>
>
> Hi Jennifer,
>
> Did you try Hyperlynx's S-parameter Fitter/Viewer? It is an
> application inside Hyperlynx. With that, you can enforce causality
> and passivity of any S-parameter data file. The output is available
> in a form of tables of poles/residues, or as a SPICE compatible
> subcircuit. All stages of transformation are graphically viewable so
> you can control accuracy.
>
> With that transformer, you simple will not be able to generate non-
> causal model, even if you want to :-)
>
> If you can share your data, I'd be glad to build the model for you.
>
>
> P.S. On thing I'm curious, how exactly you observed non-causality
> from time domain simulation? Since time domain simulators all work
> in sequential manner (step after step, with increasing time) the
> response can never come ahead of the input. Although, I agree that
> time response could be very different from what you'd expect from
> you frequency dependence.
>
>
>
>
> Jennifer Maharani jennifer.maharani@xxxxxxxxx wrote:
> To: "si-list@xxxxxxxxxxxxx" <si-list@xxxxxxxxxxxxx>
> Sent: Thursday, May 14, 2009 12:48:44 PM
> Subject: [SI-LIST] Causality
>
> Dear all,
>
> I have non-passive non-causal S-parameter. I can use some commercial
> tools that can generate broadband spice with passivity enforcement.
> Not with causality enforcement, though.
>
> In transient simulation it clearly shows non-causal response.
>
> Does anybody know how to resolve this issue? Quick and dirty solution
> will also be appreciated.
>
> Many thanks.
> ------------------------------------------------------------------
>
> ------------------------------------------------------------------
> To unsubscribe from si-list:
> si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field
>
> or to administer your membership from a web page, go to:
> http://www.freelists.org/webpage/si-list
>
> For help:
> si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field
>
>
> List technical documents are available at:
>                http://www.si-list.net
>
> List archives are viewable at:
>        http://www.freelists.org/archives/si-list
> or at our remote archives:
>        http://groups.yahoo.com/group/si-list/messages
> Old (prior to June 6, 2001) list archives are viewable at:
>        http://www.qsl.net/wb6tpu
>
>
------------------------------------------------------------------
To unsubscribe from si-list:
si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field

http://www.freelists.org/webpage/si-list

For help:
si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field

List technical documents are available at:
http://www.si-list.net

List archives are viewable at:
http://www.freelists.org/archives/si-list
or at our remote archives:
http://groups.yahoo.com/group/si-list/messages
Old (prior to June 6, 2001) list archives are viewable at:
http://www.qsl.net/wb6tpu

```