pychopmarg.noise

Classes

class pychopmarg.noise.NoiseCalc(L: int, Tb: float, ts_ix: int, t: ndarray[Any, dtype[Real]], vic_pulse_resp: ndarray[Any, dtype[Real]], agg_pulse_resps: list[ndarray[Any, dtype[Real]]], f: ndarray[Any, dtype[Real]], Ht: ndarray[Any, dtype[Comp]], H21: ndarray[Any, dtype[Comp]], Hr: ndarray[Any, dtype[Comp]], Hctf: ndarray[Any, dtype[Comp]], eta0: float, Av: float, snr_tx: float, Add: float, sigma_Rj: float, eps: float = 0.001)[source]

Noise calculator for COM

L = 4
Tb = 9.412e-12
ts_ix = 0
t = array([0.])
vic_pulse_resp = array([0.])
agg_pulse_resps: list[ndarray[Any, dtype[Real]]] = []
f = array([0.])
Ht = array([0.+0.j])
H21 = array([0.+0.j])
Hr = array([0.+0.j])
Hctf = array([0.+0.j])
eta0 = 0.0
Av = 0.6
snr_tx = 25.0
Add = 0.0
sigma_Rj = 0.0
fN = 53125000000.0
nspui = 32
varX = 0.0
t_irfft = array([0.])
get_aliased_freq(f: float) float[source]

Return alias of f (Hz).

from_irfft(x: ndarray[Any, dtype[Real]]) ndarray[Any, dtype[Real]][source]

Interpolate irfft() output to t and subsample at fBaud.

Parameters:

xirfft() results to be interpolated and subsampled.

Returns:

Interpolated and subsampled vector.

Raises:

IndexError – If length of input doesn’t match length of t_irfft vector.

Notes

  1. Input vector is shifted, such that its peak occurs at 0.1 * max(t), before interpolating. This is done to:

    • ensure that we don’t omit any non-causal behavior, which ends up at the end of an IFFT output vector when the peak is very near the beginning, and

    • to ensure that the majority of our available time span is available for capturing reflections.

  2. The sub-sampling phase is adjusted, so as to ensure that we catch the peak.

property Srn: ndarray[Any, dtype[Real]]

One-sided folded noise PSD at Rx sampler input, uniformly sampled over [0, PI] (rads./s norm.).

Notes

1. Re: the scaling term: 2 * self.f[-1], when combined w/ the implicit 1/N of the irfft() function, this gives df.

Sxn(agg_pulse_resp: ndarray[Any, dtype[Real]]) ndarray[Any, dtype[Real]][source]

Crosstalk PSD at Rx FFE input.

Parameters:

agg_pulse_resp – Aggressor pulse response (V).

Returns:

One-sided crosstalk PSD at Rx FFE input, uniformly sampled over [0, PI] (rads./s norm.).

property Stn: ndarray[Any, dtype[Real]]

One-sided Tx noise PSD at Rx FFE input, uniformly sampled over [0, PI] (rads./s norm.).

Todo

  1. Do I need to honor ts_ix?

property Sjn: ndarray[Any, dtype[Real]]

One-sided Noise PSD due to jitter at Rx FFE input, uniformly sampled over [0, PI] (rads./s norm.).

Rn() ndarray[Any, dtype[Real]][source]

Noise autocorrelation vector at Rx FFE input.