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 HzIf
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 inputFR_filter
must be fft-shifted along axis 0, but output filter isifftshift
-ed back along axis 0.If
filter_type == 'none'
fringe filter is identically one.