pybsm.simulation.functional.wiener_filter

pybsm.simulation.functional.wiener_filter(*, otf: ndarray, noise_to_signal_power_spectrum: float) ndarray

An image restoration transfer function based on the Wiener Filter.

See from Gonzalex and Woods, “Digital Image Processing,” 3 ed. Note that the filter is not normalized so that WF = 1 at 0 spatial frequency. This is easily fixed for the case where noise_to_signal_power_spectrum is a scalar: (1.0+noisetosignalPS)*WF = 1 at 0 spatial frequency. This is noteworthy because, without normalization of some kind, system MTF * WF is not a proper MTF. Also, for any frequency space sharpening kernel, be sure that sharpening does not extend past the Nyquist frequency, or, if so, ensure that the filter response wraps around Nyquist appropriately.

Parameters:
  • otf (list) – system optical transfer function

  • noiseTosignalPS (float) – ratio of the noise power spectrum to the signal power spectrum; this may be a function of spatial frequency (same size as otf) or a scalar

Returns:

WF:

frequency space representation of the wiener_filter