ulab.utils — ayudantes de utilidad de ulab#
El submódulo ulab.utils proporciona un pequeño conjunto de ayudantes que operan sobre objetos numpy.ndarray pero que residen fuera de la superficie estándar de NumPy / SciPy. Los ayudantes están optimizados para los patrones de transmisión comunes en objetivos embebidos – búferes de periféricos de más de 16 bits, espectros de magnitud sin asignación de memoria.
Conversores de búfer#
El estándar numpy.frombuffer() solo maneja los dtypes que el propio numpy define (uint8, int8, uint16, int16, float). Los ayudantes que se muestran a continuación amplían esa cobertura a los búferes de bytes int16 / uint16 / int32 / uint32 y devuelven un numpy.ndarray de float en una sola pasada.
- ulab.utils.from_int16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray#
Convierte un búfer de muestras
int16en unnumpy.ndarrayde float en una sola pasada.- Parámetros:
buffer – un búfer de tipo
bytesque contiene las muestras.count – número de elementos a leer.
-1lee todo el búfer desdeoffsethasta el final.offset – número de bytes que se omiten al inicio del búfer.
out – un
numpy.ndarrayde float preasignado y opcional donde escribir el resultado. Cuando se proporciona, no se asigna ninguna matriz nueva.byteswap – invierte el orden de los bytes de cada elemento antes de la conversión – la configuración adecuada cuando el búfer proviene de un periférico que escribió en un orden de bytes opuesto al de la CPU de la cámara.
- Devuelve:
un
numpy.ndarrayde float de longitudcount(o el número de muestras disponibles cuandocountes-1).
- ulab.utils.from_uint16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray#
Convierte un búfer de muestras
uint16en unnumpy.ndarrayde float en una sola pasada.- Parámetros:
buffer – un búfer de tipo bytes que contiene las muestras.
count – número de elementos a leer.
-1lee todo el búfer desdeoffsethasta el final.offset – número de bytes que se omiten al inicio del búfer.
out – un
numpy.ndarrayde float preasignado y opcional donde escribir el resultado. Cuando se proporciona, no se asigna ninguna matriz nueva.byteswap – invierte el orden de los bytes de cada elemento antes de la conversión – la configuración adecuada cuando el búfer proviene de un periférico que escribió en un orden de bytes opuesto al de la CPU de la cámara.
- Devuelve:
un
numpy.ndarrayde float de longitudcount(o el número de muestras disponibles cuandocountes-1).
- ulab.utils.from_int32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray#
Convierte un búfer de muestras
int32en unnumpy.ndarrayde float en una sola pasada.- Parámetros:
buffer – un búfer de tipo bytes que contiene las muestras.
count – número de elementos a leer.
-1lee todo el búfer desdeoffsethasta el final.offset – número de bytes que se omiten al inicio del búfer.
out – un
numpy.ndarrayde float preasignado y opcional donde escribir el resultado. Cuando se proporciona, no se asigna ninguna matriz nueva.byteswap – invierte el orden de los bytes de cada elemento antes de la conversión – la configuración adecuada cuando el búfer proviene de un periférico que escribió en un orden de bytes opuesto al de la CPU de la cámara.
- Devuelve:
un
numpy.ndarrayde float de longitudcount(o el número de muestras disponibles cuandocountes-1).
- ulab.utils.from_uint32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray#
Convierte un búfer de muestras
uint32en unnumpy.ndarrayde float en una sola pasada.- Parámetros:
buffer – un búfer de tipo bytes que contiene las muestras.
count – número de elementos a leer.
-1lee todo el búfer desdeoffsethasta el final.offset – número de bytes que se omiten al inicio del búfer.
out – un
numpy.ndarrayde float preasignado y opcional donde escribir el resultado. Cuando se proporciona, no se asigna ninguna matriz nueva.byteswap – invierte el orden de los bytes de cada elemento antes de la conversión – la configuración adecuada cuando el búfer proviene de un periférico que escribió en un orden de bytes opuesto al de la CPU de la cámara.
- Devuelve:
un
numpy.ndarrayde float de longitudcount(o el número de muestras disponibles cuandocountes-1).
Espectrograma#
- 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#
Devuelve la magnitud de la transformada discreta de Fourier de la entrada, conceptualmente equivalente a
np.sqrt(real * real + imag * imag)tras una llamada anumpy.fft.fft()– sin asignar los búferes intermedios que requeriría la forma explícita.- Parámetros:
r – la parte real de la entrada como un
numpy.ndarrayde float 1-D. Su longitud debe ser una potencia de dos.imag – parte imaginaria opcional de la entrada, con la misma forma que r. Cuando se omite, la entrada se trata como puramente real.
scratchpad – búfer de trabajo opcional para la FFT. Cuando se proporciona, no se asigna ninguna matriz de trabajo temporal.
out – búfer de destino opcional y preasignado para el espectro de magnitud. Cuando se proporciona, el resultado se escribe directamente en él.
log – cuando es
True, devuelve el logaritmo natural de la magnitud en lugar de la propia magnitud.
- Devuelve:
un
numpy.ndarrayde float de la misma longitud que r que contiene la magnitud (o su logaritmo) en cada banda de frecuencia.