ulab.utils — ulab segédfüggvények¶
A ulab.utils almodul egy kis halmaz segédfüggvényt biztosít, amelyek numpy.ndarray objektumokon működnek, de a szabványos NumPy / SciPy felületen kívül esnek. A segédfüggvények a beágyazott célokon gyakori adatfolyam-mintázatokhoz vannak hangolva – 16 bitnél szélesebb periféria-pufferek, allokációmentes magnitúdóspektrumok.
Pufferkonvertálók¶
A szabványos numpy.frombuffer() csak azokat a dtype-okat kezeli, amelyeket maga a numpy definiál (uint8, int8, uint16, int16, float). Az alábbi segédfüggvények kiterjesztik ezt a lefedettséget az int16 / uint16 / int32 / uint32 bájtpufferekre, és egyetlen menetben float típusú numpy.ndarray-t adnak vissza.
- ulab.utils.from_int16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Egy
int16mintákból álló puffert egyetlen menetben float típusúnumpy.ndarray-vé alakít.- Paraméterek:
buffer – egy
bytes-szerű puffer, amely a mintákat tartalmazza.count – a beolvasandó elemek száma. A
-1az egész puffert beolvassa azoffsetpozíciótól a végéig.offset – a puffer elején átugrandó bájtok száma.
out – opcionális, előre lefoglalt float típusú
numpy.ndarray, amelybe az eredményt írja. Ha meg van adva, nem foglal le új tömböt.byteswap – az egyes elemek bájtsorrendjének megfordítása a konvertálás előtt – a megfelelő beállítás akkor, ha a puffer egy olyan perifériából érkezett, amely a kamera CPU-jával ellentétes bájtsorrendben írt.
- Visszatérési érték:
egy
counthosszúságú float típusúnumpy.ndarray(vagy az elérhető minták száma, ha acountértéke-1).
- ulab.utils.from_uint16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Egy
uint16mintákból álló puffert egyetlen menetben float típusúnumpy.ndarray-vé alakít.- Paraméterek:
buffer – egy bytes-szerű puffer, amely a mintákat tartalmazza.
count – a beolvasandó elemek száma. A
-1az egész puffert beolvassa azoffsetpozíciótól a végéig.offset – a puffer elején átugrandó bájtok száma.
out – opcionális, előre lefoglalt float típusú
numpy.ndarray, amelybe az eredményt írja. Ha meg van adva, nem foglal le új tömböt.byteswap – az egyes elemek bájtsorrendjének megfordítása a konvertálás előtt – a megfelelő beállítás akkor, ha a puffer egy olyan perifériából érkezett, amely a kamera CPU-jával ellentétes bájtsorrendben írt.
- Visszatérési érték:
egy
counthosszúságú float típusúnumpy.ndarray(vagy az elérhető minták száma, ha acountértéke-1).
- ulab.utils.from_int32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Egy
int32mintákból álló puffert egyetlen menetben float típusúnumpy.ndarray-vé alakít.- Paraméterek:
buffer – egy bytes-szerű puffer, amely a mintákat tartalmazza.
count – a beolvasandó elemek száma. A
-1az egész puffert beolvassa azoffsetpozíciótól a végéig.offset – a puffer elején átugrandó bájtok száma.
out – opcionális, előre lefoglalt float típusú
numpy.ndarray, amelybe az eredményt írja. Ha meg van adva, nem foglal le új tömböt.byteswap – az egyes elemek bájtsorrendjének megfordítása a konvertálás előtt – a megfelelő beállítás akkor, ha a puffer egy olyan perifériából érkezett, amely a kamera CPU-jával ellentétes bájtsorrendben írt.
- Visszatérési érték:
egy
counthosszúságú float típusúnumpy.ndarray(vagy az elérhető minták száma, ha acountértéke-1).
- ulab.utils.from_uint32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Egy
uint32mintákból álló puffert egyetlen menetben float típusúnumpy.ndarray-vé alakít.- Paraméterek:
buffer – egy bytes-szerű puffer, amely a mintákat tartalmazza.
count – a beolvasandó elemek száma. A
-1az egész puffert beolvassa azoffsetpozíciótól a végéig.offset – a puffer elején átugrandó bájtok száma.
out – opcionális, előre lefoglalt float típusú
numpy.ndarray, amelybe az eredményt írja. Ha meg van adva, nem foglal le új tömböt.byteswap – az egyes elemek bájtsorrendjének megfordítása a konvertálás előtt – a megfelelő beállítás akkor, ha a puffer egy olyan perifériából érkezett, amely a kamera CPU-jával ellentétes bájtsorrendben írt.
- Visszatérési érték:
egy
counthosszúságú float típusúnumpy.ndarray(vagy az elérhető minták száma, ha acountértéke-1).
Spektrogram¶
- 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¶
Visszaadja a bemenet diszkrét Fourier-transzformációjának magnitúdóját, ami fogalmilag egyenértékű az
np.sqrt(real * real + imag * imag)kifejezéssel egynumpy.fft.fft()hívás után – anélkül, hogy lefoglalná azokat a köztes puffereket, amelyeket az explicit forma igényelne.- Paraméterek:
r – a bemenet valós része 1-D float típusú
numpy.ndarrayformájában. Hosszának kettő hatványának kell lennie.imag – a bemenet opcionális képzetes része, az r-rel azonos alakkal. Ha kimarad, a bemenetet tisztán valósnak tekinti.
scratchpad – opcionális munkapuffer az FFT-hez. Ha meg van adva, nem foglal le ideiglenes munkatömböt.
out – opcionális, előre lefoglalt céltároló-puffer a magnitúdóspektrum számára. Ha meg van adva, az eredményt közvetlenül abba írja.
log – ha
True, a magnitúdó természetes logaritmusát adja vissza maga a magnitúdó helyett.
- Visszatérési érték:
egy r-rel azonos hosszúságú float típusú
numpy.ndarray, amely az egyes frekvenciasávokhoz tartozó magnitúdót (vagy annak logaritmusát) tartalmazza.