comnum.cd_ls_taps#

comnum.cd_ls_taps(fiber, length_km, fs, n_taps, *, band_hz=None, epsilon=0.0)#

Centred taps of the least-squares dispersion-compensating FIR over the band |f| <= band_hz.

After Eghbali, Johansson, Gustafsson & Savory, J. Lightw. Technol. 32(8), 2014.

Over the whole band the taps are closed-form; over the band of the signal (fs (1 + rolloff) / (2 sps)) fewer taps reach the same error, at the price of a large response outside the band, which the receive filter must reject.

Parameters:
  • fiber (FiberParams) – the fibre.

  • length_km (float) – the length to compensate (km).

  • fs (float) – sampling rate (Hz).

  • n_taps (int) – odd number of taps.

  • band_hz (float | None) – half the band of the fit (Hz); None: fs / 2.

  • epsilon (float) – the penalty on the energy of the taps (the paper uses 1e-14 for a band-limited fit).

Returns:

the taps (complex128).

Return type:

numpy.ndarray

Raises:

ValueError – for an invalid parameter (the message names it).