b_asic.utils
¶
B-ASIC Utilities.
- b_asic.utils.decompose(a: Sequence[int | float | complex], factor: int) List[List[int | float | complex]] ¶
Polyphase decompose signal a into factor parts.
Return factor lists, each with every factor value.
- Parameters:
- aarray
The array to polyphase decompose.
- factorint
The number of polyphase components with.
Examples
>>> from b_asic.utils import decompose ... ... a = list(range(6)) ... decompose(a, 2) [[0, 2, 4], [1, 3, 5]] >>> decompose(a, 3) [[0, 3], [1, 4], [2, 5]]
- b_asic.utils.downsample(a: Sequence[int | float | complex], factor: int, phase: int = 0) List[int | float | complex] ¶
Downsample a sequence with an integer factor.
Keeps every factor value, starting with phase.
- Parameters:
- aarray
The array to downsample.
- factorint
The factor to downsample with.
- phaseint, default: 0
The phase of the downsampling.
Examples
>>> from b_asic.utils import downsample ... ... a = list(range(6)) ... downsample(a, 3) [0, 3] >>> downsample(a, 3, 1) [1, 4]
- b_asic.utils.interleave(*args) List[int | float | complex] ¶
Interleave a number of arrays.
- Parameters:
- *argsa number of arrays
Arrays to interleave. Must be of the same length.
Examples
>>> from b_asic.utils import interleave ... ... a = [1, 2] ... b = [3, 4] ... interleave(a, b) [1, 3, 2, 4] >>> c = [-1, 0] ... interleave(a, b, c) [1, 3, -1, 2, 4, 0]
- b_asic.utils.upsample(a: Sequence[int | float | complex], factor: int, phase: int = 0) List[int | float | complex] ¶
Upsample a sequence with an integer factor.
Insert factor - 1 zeros between every value, starting with phase zeros.
- Parameters:
- aarray
The array to upsample.
- factorint
The factor to upsample with.
- phaseint, default: 0
The phase of the upsampling.
Examples
>>> from b_asic.utils import upsample ... ... a = list(range(1, 4)) ... upsample(a, 3) [1, 0, 0, 2, 0, 0, 3, 0, 0] >>> upsample(a, 3, 1) [0, 1, 0, 0, 2, 0, 0, 3, 0]