ulab.utils — ulab 유틸리티 헬퍼¶
ulab.utils 서브모듈은 numpy.ndarray 객체에 대해 동작하지만 표준 NumPy / SciPy 영역 밖에 있는 소수의 헬퍼를 제공합니다. 이 헬퍼들은 임베디드 타깃에서 흔한 스트리밍 패턴 – 16비트보다 넓은 주변장치 버퍼, 할당 없는 크기 스펙트럼 – 에 맞게 조정되어 있습니다.
버퍼 변환기¶
표준 numpy.frombuffer() 는 numpy 자체가 정의하는 dtype(uint8, int8, uint16, int16, float)만 처리합니다. 아래 헬퍼들은 그 범위를 int16 / uint16 / int32 / uint32 바이트 버퍼로 확장하고 한 번에 float numpy.ndarray 를 반환합니다.
- ulab.utils.from_int16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
int16표본 버퍼를 한 번에 floatnumpy.ndarray로 변환합니다.- 매개변수:
buffer – 표본을 담고 있는
bytes형 버퍼입니다.count – 읽을 요소 수입니다.
-1은offset부터 끝까지 버퍼 전체를 읽습니다.offset – 버퍼 시작에서 건너뛸 바이트 수입니다.
out – 결과를 기록할, 미리 할당된 float
numpy.ndarray(선택 사항)입니다. 전달하면 새 배열이 할당되지 않습니다.byteswap – 변환 전에 각 요소의 바이트 순서를 뒤집습니다 – 버퍼가 카메라 CPU와 반대되는 바이트 순서로 기록한 주변장치에서 온 경우에 적합한 설정입니다.
- 반환:
길이가
count인 floatnumpy.ndarray입니다(count가-1인 경우에는 사용 가능한 표본 수).
- ulab.utils.from_uint16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
uint16표본 버퍼를 한 번에 floatnumpy.ndarray로 변환합니다.- 매개변수:
buffer – 표본을 담고 있는 bytes 형 버퍼입니다.
count – 읽을 요소 수입니다.
-1은offset부터 끝까지 버퍼 전체를 읽습니다.offset – 버퍼 시작에서 건너뛸 바이트 수입니다.
out – 결과를 기록할, 미리 할당된 float
numpy.ndarray(선택 사항)입니다. 전달하면 새 배열이 할당되지 않습니다.byteswap – 변환 전에 각 요소의 바이트 순서를 뒤집습니다 – 버퍼가 카메라 CPU와 반대되는 바이트 순서로 기록한 주변장치에서 온 경우에 적합한 설정입니다.
- 반환:
길이가
count인 floatnumpy.ndarray입니다(count가-1인 경우에는 사용 가능한 표본 수).
- ulab.utils.from_int32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
int32표본 버퍼를 한 번에 floatnumpy.ndarray로 변환합니다.- 매개변수:
buffer – 표본을 담고 있는 bytes 형 버퍼입니다.
count – 읽을 요소 수입니다.
-1은offset부터 끝까지 버퍼 전체를 읽습니다.offset – 버퍼 시작에서 건너뛸 바이트 수입니다.
out – 결과를 기록할, 미리 할당된 float
numpy.ndarray(선택 사항)입니다. 전달하면 새 배열이 할당되지 않습니다.byteswap – 변환 전에 각 요소의 바이트 순서를 뒤집습니다 – 버퍼가 카메라 CPU와 반대되는 바이트 순서로 기록한 주변장치에서 온 경우에 적합한 설정입니다.
- 반환:
길이가
count인 floatnumpy.ndarray입니다(count가-1인 경우에는 사용 가능한 표본 수).
- ulab.utils.from_uint32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
uint32표본 버퍼를 한 번에 floatnumpy.ndarray로 변환합니다.- 매개변수:
buffer – 표본을 담고 있는 bytes 형 버퍼입니다.
count – 읽을 요소 수입니다.
-1은offset부터 끝까지 버퍼 전체를 읽습니다.offset – 버퍼 시작에서 건너뛸 바이트 수입니다.
out – 결과를 기록할, 미리 할당된 float
numpy.ndarray(선택 사항)입니다. 전달하면 새 배열이 할당되지 않습니다.byteswap – 변환 전에 각 요소의 바이트 순서를 뒤집습니다 – 버퍼가 카메라 CPU와 반대되는 바이트 순서로 기록한 주변장치에서 온 경우에 적합한 설정입니다.
- 반환:
길이가
count인 floatnumpy.ndarray입니다(count가-1인 경우에는 사용 가능한 표본 수).
스펙트로그램¶
- ulab.utils.spectrogram(r: numpy.ndarray, imag: numpy.ndarray | None = None, *, scratchpad: numpy.ndarray | None = None, out: numpy.ndarray | None = None, log: bool = False) numpy.ndarray¶
numpy.fft.fft()호출 후의np.sqrt(real * real + imag * imag)와 개념적으로 동등한 입력의 이산 푸리에 변환 크기를 반환하되, 명시적 형태라면 할당했을 중간 버퍼를 할당하지 않습니다.- 매개변수:
r – 1차원 float
numpy.ndarray로 표현된 입력의 실수부입니다. 그 길이는 2의 거듭제곱이어야 합니다.imag – 입력의 허수부(선택 사항)로, r 과 동일한 형태입니다. 생략하면 입력은 순수 실수로 취급됩니다.
scratchpad – FFT용 작업 버퍼(선택 사항)입니다. 전달하면 임시 작업 배열이 할당되지 않습니다.
out – 크기 스펙트럼을 위한, 미리 할당된 대상 버퍼(선택 사항)입니다. 전달하면 결과가 그 안에 직접 기록됩니다.
log –
True이면 크기 대신 크기의 자연로그를 반환합니다.
- 반환:
각 주파수 빈에서의 크기(또는 그 로그)를 담는, r 과 동일한 길이의 float
numpy.ndarray입니다.