ulab.utils — ulab-hulpprogramma’s¶
De submodule ulab.utils biedt een kleine set hulpfuncties die werken op numpy.ndarray-objecten, maar buiten het standaard NumPy / SciPy-oppervlak vallen. De hulpfuncties zijn afgestemd op de streaming-patronen die gangbaar zijn op embedded targets – breder-dan-16-bits randapparaatbuffers, allocatievrije magnitudespectra.
Bufferconversies¶
De standaard numpy.frombuffer() verwerkt alleen dtypes die numpy zelf definieert (uint8, int8, uint16, int16, float). De onderstaande hulpfuncties breiden die dekking uit naar int16 / uint16 / int32 / uint32-bytebuffers en geven in één doorgang een float numpy.ndarray terug.
- ulab.utils.from_int16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Converteer een buffer van
int16-monsters in één doorgang naar een floatnumpy.ndarray.- Parameters:
buffer – een
bytes-achtige buffer die de monsters bevat.count – aantal te lezen elementen.
-1leest de hele buffer vanoffsettot het einde.offset – aantal bytes dat aan het begin van de buffer moet worden overgeslagen.
out – optionele vooraf toegewezen float
numpy.ndarraywaarin het resultaat wordt geschreven. Indien opgegeven, wordt er geen nieuw array toegewezen.byteswap – keer de bytevolgorde van elk element om vóór de conversie – de juiste instelling wanneer de buffer afkomstig is van een randapparaat dat in de tegenovergestelde bytevolgorde schreef ten opzichte van de CPU van de camera.
- Geeft terug:
een float
numpy.ndarrayvan lengtecount(of het beschikbare aantal monsters wanneercount-1is).
- ulab.utils.from_uint16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Converteer een buffer van
uint16-monsters in één doorgang naar een floatnumpy.ndarray.- Parameters:
buffer – een bytes-achtige buffer die de monsters bevat.
count – aantal te lezen elementen.
-1leest de hele buffer vanoffsettot het einde.offset – aantal bytes dat aan het begin van de buffer moet worden overgeslagen.
out – optionele vooraf toegewezen float
numpy.ndarraywaarin het resultaat wordt geschreven. Indien opgegeven, wordt er geen nieuw array toegewezen.byteswap – keer de bytevolgorde van elk element om vóór de conversie – de juiste instelling wanneer de buffer afkomstig is van een randapparaat dat in de tegenovergestelde bytevolgorde schreef ten opzichte van de CPU van de camera.
- Geeft terug:
een float
numpy.ndarrayvan lengtecount(of het beschikbare aantal monsters wanneercount-1is).
- ulab.utils.from_int32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Converteer een buffer van
int32-monsters in één doorgang naar een floatnumpy.ndarray.- Parameters:
buffer – een bytes-achtige buffer die de monsters bevat.
count – aantal te lezen elementen.
-1leest de hele buffer vanoffsettot het einde.offset – aantal bytes dat aan het begin van de buffer moet worden overgeslagen.
out – optionele vooraf toegewezen float
numpy.ndarraywaarin het resultaat wordt geschreven. Indien opgegeven, wordt er geen nieuw array toegewezen.byteswap – keer de bytevolgorde van elk element om vóór de conversie – de juiste instelling wanneer de buffer afkomstig is van een randapparaat dat in de tegenovergestelde bytevolgorde schreef ten opzichte van de CPU van de camera.
- Geeft terug:
een float
numpy.ndarrayvan lengtecount(of het beschikbare aantal monsters wanneercount-1is).
- ulab.utils.from_uint32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Converteer een buffer van
uint32-monsters in één doorgang naar een floatnumpy.ndarray.- Parameters:
buffer – een bytes-achtige buffer die de monsters bevat.
count – aantal te lezen elementen.
-1leest de hele buffer vanoffsettot het einde.offset – aantal bytes dat aan het begin van de buffer moet worden overgeslagen.
out – optionele vooraf toegewezen float
numpy.ndarraywaarin het resultaat wordt geschreven. Indien opgegeven, wordt er geen nieuw array toegewezen.byteswap – keer de bytevolgorde van elk element om vóór de conversie – de juiste instelling wanneer de buffer afkomstig is van een randapparaat dat in de tegenovergestelde bytevolgorde schreef ten opzichte van de CPU van de camera.
- Geeft terug:
een float
numpy.ndarrayvan lengtecount(of het beschikbare aantal monsters wanneercount-1is).
Spectrogram¶
- 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¶
Geef de magnitude van de discrete Fourier-transformatie van de invoer terug, conceptueel equivalent aan
np.sqrt(real * real + imag * imag)na een aanroep vannumpy.fft.fft()– zonder de tussenliggende buffers toe te wijzen die de expliciete vorm zou vereisen.- Parameters:
r – het reële deel van de invoer als een 1-D float
numpy.ndarray. De lengte moet een macht van twee zijn.imag – optioneel imaginair deel van de invoer, met dezelfde vorm als r. Indien weggelaten, wordt de invoer als zuiver reëel behandeld.
scratchpad – optionele werkbuffer voor de FFT. Indien opgegeven, wordt er geen tijdelijk werkarray toegewezen.
out – optionele vooraf toegewezen bestemmingsbuffer voor het magnitudespectrum. Indien opgegeven, wordt het resultaat er direct in geschreven.
log – wanneer
True, geef de natuurlijke logaritme van de magnitude terug in plaats van de magnitude zelf.
- Geeft terug:
een float
numpy.ndarrayvan dezelfde lengte als r die de magnitude (of de logaritme ervan) bij elke frequentiebin bevat.