Channelize¶
- class baseband.tasks.Channelize(ih, n, samples_per_frame=1, *, frequency=None, sideband=None)[source] [edit on github]¶
Bases:
TaskBaseBasic channelizer.
Divides input into blocks of
ntime samples, Fourier transforming each block. The output sample shape is(channel,) + ih.sample_shape.- Parameters:
- ihtask or
basebandstream reader Input data stream, with time as the first axis.
- nint
Number of input samples to channelize. For complex input, output will have
nchannels; for real input, it will haven // 2 + 1.- samples_per_frameint, optional
Number of complete output samples per frame (see Notes). Default: 1.
- frequency
Quantity, optional Frequencies for each channel in
ih(channelized frequencies will be calculated). Default: taken fromih(if available).- sidebandarray, optional
Whether frequencies in
ihare upper (+1) or lower (-1) sideband. Default: taken fromih(if available).
- ihtask or
See also
baseband_tasks.fourier.fft_makerto select the FFT package used.
Notes
Instances initialize an FFT that acts upon axis 1 of an input with shape:
(samples_per_frame, n) + ih.sample_shape
Setting
samples_per_frameto a number larger than 1 results in the FFT performing channelization on multiple blocks per call. Depending on the backend used, this may speed up sequential channelization, though for tests usingnumpy.fftthe performance improvement seems to be negligible.Attributes Summary
Data type of the output.
Number of dimensions of the output.
Number of complete samples per second.
Shape of a complete sample.
Number of samples per frame of data.
Shape of the output.
Number of component samples in the output.
Start time of the output.
Time at the end of the output, just after the last sample.
Time of the sample pointer's current offset in the output.
Methods Summary
close()Close task.
inverse(ih)Create a Dechannelize instance that undoes this Channelization.
read([count, out])Read a number of complete samples.
seek(offset[, whence])Change the sample pointer position.
task(data)tell([unit])Current offset in the file.
Attributes Documentation
- closed = False¶
- complex_data¶
- dtype¶
Data type of the output.
- meta = None¶
- ndim¶
Number of dimensions of the output.
- offset = 0¶
- sample_rate¶
Number of complete samples per second.
- sample_shape¶
Shape of a complete sample.
- samples_per_frame¶
Number of samples per frame of data.
For compatibility with file readers, to help indicate what a nominal chunk of data is.
- shape¶
Shape of the output.
- size¶
Number of component samples in the output.
- stop_time¶
Time at the end of the output, just after the last sample.
See also
start_timeandtime.
- time¶
Time of the sample pointer’s current offset in the output.
See also
start_timeandstop_time.
Methods Documentation
- close() [edit on github]¶
Close task.
Note that this does not explicitly close the underlying source; instead, it just deletes the reference to it.
- inverse(ih)[source] [edit on github]¶
Create a Dechannelize instance that undoes this Channelization.
- Parameters:
- ihtask or
basebandstream reader Input data stream to be dechannelized.
- ihtask or
- read(count=None, out=None) [edit on github]¶
Read a number of complete samples.
- Parameters:
- countint or None, optional
Number of complete samples to read. If
None(default) or negative, the number of samples left. Ignored ifoutis given.- outNone or array, optional
Array to store the samples in. If given,
countwill be inferred from the first dimension; the remaining dimensions should equalsample_shape.
- Returns:
- out
ndarrayof float or complex The first dimension is sample-time, and the remaining ones are as given by
sample_shape.
- out
- seek(offset, whence=0) [edit on github]¶
Change the sample pointer position.
This works like a normal filehandle seek, but the offset is in samples (or a relative or absolute time).
- Parameters:
- offsetint,
Quantity, orTime Offset to move to. Can be an (integer) number of samples, an offset in time units, or an absolute time. For the latter two, the pointer will be moved to the nearest integer sample.
- whence{0, 1, 2, ‘start’, ‘current’, or ‘end’}, optional
Like regular seek, the offset is taken to be from the start if
whence=0(default), from the current position if 1, and from the end if 2. One can alternativey use ‘start’, ‘current’, or ‘end’ for 0, 1, or 2, respectively. Ignored ifoffsetis a time.
- offsetint,
- task(data)[source] [edit on github]¶
- tell(unit=None) [edit on github]¶
Current offset in the file.
- Parameters:
- unit
Unitor str, optional Time unit the offset should be returned in. By default, no unit is used, i.e., an integer enumerating samples is returned. For the special string ‘time’, the absolute time is calculated.
- unit
- Returns: