InversePolyphaseFilterBank¶
- class baseband_tasks.pfb.InversePolyphaseFilterBank(ih, response, sn, pad_start=128, pad_end=128, samples_per_frame=None, frequency=None, sideband=None, dtype=None)[source] [edit on github]¶
Bases:
baseband_tasks.base.PaddedTaskBase
Dechannelize a stream produced by a polyphase filter bank.
A polyphase filterbank attempts to make channel responses squarer, by convolving an input timestream with sinc-like function before doing a Fourier transform. This class attempts to deconvolve the signal, given the polyphase filter response. Like in most convolutions, a polyphase filter generally destroys some information, especially for frequencies near the edges of the channels. To optimize the process, Wiener deconvolution is used.
The signal-to-noise ratio required for Wiener deconvolution is a combination of the response-dependent quality with which any signal can be recovered and the quality with which the signal was sampled. For CHIME, where channels are digitized with 4 bits, simulations show that if 3 levels were covering the standard deviation of the input signal,
sn=10
works fairly well. For GUPPI, which has 8 bit digitization but a response that strongly suppresses band edges,sn=30
seems a good number.The deconvolution necessarily works poorly near edges in time, so should be done in overlapping blocks. Required padding is set with
pad_start
andpad_end
(which are in addition to the minimum padding required by the response). Adequate padding depend on response; from simulations, for CHIME a padding of 32 on both sides seems to suffice, while for GUPPI 128 is needed.- Parameters
- ihtask or
baseband
stream reader Input data stream, with time as the first axis, and Fourier channel as the second.
- response
ndarray
Polyphase filter. The first dimension is taken to be the number of taps, and the second the number of channels.
- snfloat
Effective signal-to-noise ratio; see note above.
- pad_start, pad_endint, optional
Extra samples at the start and end to pad the frame being deconvolved; see note above. Default: 128.
- samples_per_frameint, optional
Number of complete output samples per frame. Default: inferred from padding such that a minimum efficiency of 75% is reached.
- frequency
Quantity
, optional Frequencies for each output channel. Default: inferred from
ih
(if available).- sidebandarray, optional
Whether frequencies are upper (+1) or lower (-1) sideband. Default: taken from
ih
(if available).
- ihtask or
See also
PolyphaseFilterBank
apply polyphase filter.
baseband_tasks.fourier.fft_maker
to select the FFT package used.
Methods Summary
task
(data)Apply the inverse polyphase filter to a frame.
Methods Documentation
- task(data)[source] [edit on github]¶
Apply the inverse polyphase filter to a frame.
Padding is removed from the result.