sdr.FarrowFractionalDelay.__call__(x: ArrayLike, m: ArrayLike | None = None, mu: ArrayLike | None = None, mode: 'rate' | 'full' = 'rate') NDArray

Applies the fractional sample advance \(\mu(k)\) to the input signal \(x[n]\) at the given basepoint sample indices \(m(k)\).

\[y[k] = x((m(k) + \mu(k)) T_s) = x[m(k) + \mu(k)]\]

Parameters:
x: ArrayLike

The input signal \(x[n] = x(n T_s)\).

m: ArrayLike | None = None

The basepoint sample indices \(m(k)\), which are the integer sample indices of the input signal.

mu: ArrayLike | None = None

The fractional sample indices \(0 \le \mu(k) \le 1\), which is the fractional sample advance of the input signal at input sample \(m(k)\).

mode: 'rate' | 'full' = 'rate'

The convolution mode.

  • "rate": The output signal \(y[k]\) is aligned with the input signal, such that \(y[0] = x[0 + \mu]\).

    In non-streaming mode, \(L - D\) output samples are produced. In streaming mode, the first call returns \(L - D\) output samples, where \(L\) is the length of the basepoint and fractional sample indices. On subsequent calls, \(L\) output samples are produced.

  • "full": The full convolution is performed, and the filter delay \(D\) is observed, such that \(y[D] = x[0 + \mu]\).

    In non-streaming mode, \(L\) output samples are produced. In streaming mode, each call returns \(L\) output samples.

Returns:

The resampled signal \(y[k]\).

Examples

See the Farrow arbitrary resampler example.