hera_sim.utils.gen_fringe_filter

hera_sim.utils.gen_fringe_filter(lsts: ndarray, freqs: ndarray, ew_bl_len_ns: float, fringe_filter_type: str | None = 'tophat', **filter_kwargs) ndarray[source]

Generate a fringe rate filter in fringe-rate & freq space.

Parameters:
  • lsts – lst array [radians]

  • freqs – Frequency array [GHz]

  • ew_bl_len_ns – Projected East-West baseline length [nanosec]

  • fringe_filter_type – Options ['tophat', 'gauss', 'custom', 'none']

  • **filter_kwargs – These are specific to each fringe_filter_type.

    For filter_type == 'gauss':

    • fr_width (float or array): Sets gaussian width in fringe-rate [Hz]

    For filter_type == 'custom':

    • FR_filter (ndarray): shape (Nfrates, Nfreqs) with custom filter (must be fftshifted, see below)

    • FR_frates (ndarray): array of FR_filter fringe rates [Hz] (must be monotonically increasing)

    • FR_freqs (ndarray): array of FR_filter freqs [GHz]

Returns:

fringe_filter – 2D array in fringe-rate & freq space

Notes

If filter_type == 'tophat' filter is a tophat out to max fringe-rate set by ew_bl_len_ns.

If filter_type == 'gauss' filter is a Gaussian centered on max fringe-rate with width set by kwarg fr_width in Hz

If filter_type == 'custom' filter is a custom 2D (Nfrates, Nfreqs) filter fed as ‘FR_filter’ its fringe-rate array is fed as “FR_frates” in Hz, its freq array is fed as “FR_freqs” in GHz. Note that input FR_filter must be fft-shifted along axis 0, but output filter is ifftshift-ed back along axis 0.

If filter_type == 'none' fringe filter is identically one.