ulab.utils — ulabin apufunktiot

ulab.utils -alimoduuli tarjoaa pienen joukon apufunktioita, jotka toimivat numpy.ndarray -olioilla mutta sijaitsevat standardin NumPy / SciPy -pinnan ulkopuolella. Apufunktiot on viritetty sulautetuilla kohteilla yleisiin suoratoistokuvioihin – yli 16-bittisiin oheislaitepuskureihin, varauksettomiin magnitudispektreihin.

Puskurinmuuntimet

Standardi numpy.frombuffer() käsittelee vain tietotyyppejä, jotka numpy itse määrittelee (uint8, int8, uint16, int16, float). Alla olevat apufunktiot laajentavat tämän kattavuuden int16 / uint16 / int32 / uint32 -tavupuskureihin ja palauttavat liukuluku-numpy.ndarray -olion yhdellä läpikäynnillä.

ulab.utils.from_int16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray

Muunna int16 -näytteiden puskuri liukuluku-numpy.ndarray -olioksi yhdellä läpikäynnillä.

Parametrit:
  • bufferbytes -tyyppinen puskuri, joka sisältää näytteet.

  • count – luettavien alkioiden määrä. -1 lukee koko puskurin kohdasta offset loppuun.

  • offset – puskurin alusta ohitettavien tavujen määrä.

  • out – valinnainen valmiiksi varattu liukuluku-numpy.ndarray, johon tulos kirjoitetaan. Kun se annetaan, uutta taulukkoa ei varata.

  • byteswap – käännä kunkin alkion tavujärjestys ennen muunnosta – oikea asetus, kun puskuri tuli oheislaitteelta, joka kirjoitti päinvastaisessa tavujärjestyksessä kuin kameran CPU.

Palauttaa:

liukuluku-numpy.ndarray, jonka pituus on count (tai käytettävissä olevien näytteiden määrä, kun count on -1).

ulab.utils.from_uint16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray

Muunna uint16 -näytteiden puskuri liukuluku-numpy.ndarray -olioksi yhdellä läpikäynnillä.

Parametrit:
  • buffer – bytes-tyyppinen puskuri, joka sisältää näytteet.

  • count – luettavien alkioiden määrä. -1 lukee koko puskurin kohdasta offset loppuun.

  • offset – puskurin alusta ohitettavien tavujen määrä.

  • out – valinnainen valmiiksi varattu liukuluku-numpy.ndarray, johon tulos kirjoitetaan. Kun se annetaan, uutta taulukkoa ei varata.

  • byteswap – käännä kunkin alkion tavujärjestys ennen muunnosta – oikea asetus, kun puskuri tuli oheislaitteelta, joka kirjoitti päinvastaisessa tavujärjestyksessä kuin kameran CPU.

Palauttaa:

liukuluku-numpy.ndarray, jonka pituus on count (tai käytettävissä olevien näytteiden määrä, kun count on -1).

ulab.utils.from_int32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray

Muunna int32 -näytteiden puskuri liukuluku-numpy.ndarray -olioksi yhdellä läpikäynnillä.

Parametrit:
  • buffer – bytes-tyyppinen puskuri, joka sisältää näytteet.

  • count – luettavien alkioiden määrä. -1 lukee koko puskurin kohdasta offset loppuun.

  • offset – puskurin alusta ohitettavien tavujen määrä.

  • out – valinnainen valmiiksi varattu liukuluku-numpy.ndarray, johon tulos kirjoitetaan. Kun se annetaan, uutta taulukkoa ei varata.

  • byteswap – käännä kunkin alkion tavujärjestys ennen muunnosta – oikea asetus, kun puskuri tuli oheislaitteelta, joka kirjoitti päinvastaisessa tavujärjestyksessä kuin kameran CPU.

Palauttaa:

liukuluku-numpy.ndarray, jonka pituus on count (tai käytettävissä olevien näytteiden määrä, kun count on -1).

ulab.utils.from_uint32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray

Muunna uint32 -näytteiden puskuri liukuluku-numpy.ndarray -olioksi yhdellä läpikäynnillä.

Parametrit:
  • buffer – bytes-tyyppinen puskuri, joka sisältää näytteet.

  • count – luettavien alkioiden määrä. -1 lukee koko puskurin kohdasta offset loppuun.

  • offset – puskurin alusta ohitettavien tavujen määrä.

  • out – valinnainen valmiiksi varattu liukuluku-numpy.ndarray, johon tulos kirjoitetaan. Kun se annetaan, uutta taulukkoa ei varata.

  • byteswap – käännä kunkin alkion tavujärjestys ennen muunnosta – oikea asetus, kun puskuri tuli oheislaitteelta, joka kirjoitti päinvastaisessa tavujärjestyksessä kuin kameran CPU.

Palauttaa:

liukuluku-numpy.ndarray, jonka pituus on count (tai käytettävissä olevien näytteiden määrä, kun count on -1).

Spektrogrammi

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

Palauta syötteen diskreetin Fourier-muunnoksen magnitudi, käsitteellisesti vastaten lauseketta np.sqrt(real * real + imag * imag) numpy.fft.fft() -kutsun jälkeen – varaamatta välipuskureita, jotka eksplisiittinen muoto varaisi.

Parametrit:
  • r – syötteen reaaliosa yksiulotteisena liukuluku-numpy.ndarray -oliona. Sen pituuden on oltava kahden potenssi.

  • imag – syötteen valinnainen imaginaariosa, samaa muotoa kuin r. Kun jätetään pois, syöte käsitellään puhtaasti reaalisena.

  • scratchpad – valinnainen työpuskuri FFT:lle. Kun se annetaan, väliaikaista työtaulukkoa ei varata.

  • out – valinnainen valmiiksi varattu kohdepuskuri magnitudispektrille. Kun se annetaan, tulos kirjoitetaan siihen suoraan.

  • log – kun True, palauta magnitudin luonnollinen logaritmi magnitudin itsensä sijaan.

Palauttaa:

liukuluku-numpy.ndarray, jonka pituus on sama kuin r:llä ja joka sisältää magnitudin (tai sen logaritmin) kullakin taajuuslokerolla.