filter_and_resample_pwc

The Boulder Opal Toolkits are currently in beta phase of development. Breaking changes may be introduced.

filter_and_resample_pwc(pwc, cutoff_frequency, segment_count, duration=None, *, name=None)

Filter a piecewise-constant function with a sinc filter and resample it again.

Parameters
  • pwc (Pwc) – The piecewise-constant function \(\alpha(t)\) to be filtered.

  • cutoff_frequency (float) – Upper limit \(\omega_c\) of the range of angular frequencies that you want to preserve in your function.

  • segment_count (int) – The number of segments of the resampled filtered function.

  • duration (float, optional) – Force the resulting piecewise-constant function to have a certain duration. This option is mainly to avoid floating point errors when the total duration is too small. If not provided, it is set to the sum of segment durations of pwc. Defaults to None.

  • name (str, optional) – The name of the node.

Returns

The filtered and resampled piecewise-constant function.

Return type

Pwc

See also

convolve_pwc()

Create the convolution of a piecewise-constant function with a kernel.

discretize_stf()

Create a piecewise-constant function by discretizing a sampleable function.

sinc_convolution_kernel()

Create a convolution kernel representing the sinc function.

Notes

The resulting filtered function is

\[\int_{-\infty}^\infty \alpha(\tau) \frac{\sin[\omega_c (t-\tau)]}{\pi (t-\tau)} \mathrm{d}\tau = \frac{1}{2\pi} \int_{-\omega_c}^{\omega_c} e^{i \omega t} \hat\alpha(\omega) \mathrm{d}\omega\]

where

\[\hat\alpha(\omega) =\int_{-\infty}^\infty e^{-i \omega \tau}\alpha(\tau) \mathrm{d}\tau\]

is the Fourier transform of \(\alpha(t)\). Hence the filter eliminates components of the signal that have angular frequencies greater than \(\omega_c\).