optic.dsp.equalization.volterra

volterra(x, dx, param)

Decision-directed Volterra equalizer implementation up to 3rd order for SISO receivers..

Parameters:
  • x (np.array) – Input signal to be equalized.

  • dx (np.array) – Desired (reference) signal.

  • param (optic.utils.parameters object) –

    Volterra equalizer parameters:

    • param.n1Taps: number of taps of linear part [default: 5]

    • param.n2Taps: number of taps of quadratic part [default: 3]

    • param.n3Taps: number of taps of cubic part [default: 2]

    • param.h: list of initial filter coefficients [default: None]

    • param.SpS: samples per symbol [default: 1]

    • param.mu: step size [default: 0.001]

    • param.nTrain: number of training symbols [default: 1000]

    • param.order: Volterra series order (2 for quadratic) [default: 2]

    • param.prec: precision [default: np.float32]

    • param.M: modulation order [default: 4]

    • param.constType: constellation type (‘pam’, ‘qam’, etc.) [default: ‘pam’]

    • param.trainingMode: operation mode (‘data-aided’, ‘fulltime’) [default: ‘data-aided’]

    • param.preconvIters: number of pre-convergence iterations [default: 1

Returns:

  • yEq (np.array) – Equalized output signal.

  • h (list of np.array) – Final Volterra filter coefficients [h1, h2, h3].

Notes

  • Training mode ‘data-aided’ uses the known training symbols for adaptation, while ‘fulltime’ continues to adapt using decision-directed mode even after the training phase.

  • Pre-convergence iterations can help the algorithm to converge better by restarting the adaptation process after the initial training phase.

References

[1] Diniz, P. R., da Silva, E. A. B., & Netto, S. L. (2010). Adaptive Filtering: Algorithms and Practical Implementation. Springer Science & Business Media.