ulab.utils — ulab pomoćne funkcije

Podmodul ulab.utils pruža mali skup pomoćnih funkcija koje djeluju na objektima numpy.ndarray, ali se nalaze izvan standardne NumPy / SciPy površine. Pomoćne su funkcije prilagođene obrascima protoka uobičajenima na ugrađenim ciljnim sustavima – međuspremnicima periferije širima od 16 bita, spektrima magnitude bez alokacije.

Pretvarači međuspremnika

Standardna numpy.frombuffer() obrađuje samo dtypeove koje sam numpy definira (uint8, int8, uint16, int16, float). Pomoćne funkcije u nastavku proširuju tu pokrivenost na int16 / uint16 / int32 / uint32 bajtne međuspremnike i vraćaju float numpy.ndarray u jednom prolazu.

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

Pretvara međuspremnik int16 uzoraka u float numpy.ndarray u jednom prolazu.

Parametri:
  • buffer – međuspremnik nalik bytes koji sadrži uzorke.

  • count – broj elemenata za čitanje. -1 čita cijeli međuspremnik od offset do kraja.

  • offset – broj bajtova koje treba preskočiti na početku međuspremnika.

  • out – neobavezno unaprijed alocirano float numpy.ndarray u koje se zapisuje rezultat. Kada je dostavljeno, ne alocira se novo polje.

  • byteswap – obrće redoslijed bajtova svakog elementa prije pretvaranja – ispravna postavka kada je međuspremnik došao s periferije koja je zapisivala suprotnim redoslijedom bajtova od CPU-a kamere.

Vraća:

float numpy.ndarray duljine count (ili dostupnog broja uzoraka kada je count jednak -1).

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

Pretvara međuspremnik uint16 uzoraka u float numpy.ndarray u jednom prolazu.

Parametri:
  • buffer – međuspremnik nalik bytes koji sadrži uzorke.

  • count – broj elemenata za čitanje. -1 čita cijeli međuspremnik od offset do kraja.

  • offset – broj bajtova koje treba preskočiti na početku međuspremnika.

  • out – neobavezno unaprijed alocirano float numpy.ndarray u koje se zapisuje rezultat. Kada je dostavljeno, ne alocira se novo polje.

  • byteswap – obrće redoslijed bajtova svakog elementa prije pretvaranja – ispravna postavka kada je međuspremnik došao s periferije koja je zapisivala suprotnim redoslijedom bajtova od CPU-a kamere.

Vraća:

float numpy.ndarray duljine count (ili dostupnog broja uzoraka kada je count jednak -1).

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

Pretvara međuspremnik int32 uzoraka u float numpy.ndarray u jednom prolazu.

Parametri:
  • buffer – međuspremnik nalik bytes koji sadrži uzorke.

  • count – broj elemenata za čitanje. -1 čita cijeli međuspremnik od offset do kraja.

  • offset – broj bajtova koje treba preskočiti na početku međuspremnika.

  • out – neobavezno unaprijed alocirano float numpy.ndarray u koje se zapisuje rezultat. Kada je dostavljeno, ne alocira se novo polje.

  • byteswap – obrće redoslijed bajtova svakog elementa prije pretvaranja – ispravna postavka kada je međuspremnik došao s periferije koja je zapisivala suprotnim redoslijedom bajtova od CPU-a kamere.

Vraća:

float numpy.ndarray duljine count (ili dostupnog broja uzoraka kada je count jednak -1).

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

Pretvara međuspremnik uint32 uzoraka u float numpy.ndarray u jednom prolazu.

Parametri:
  • buffer – međuspremnik nalik bytes koji sadrži uzorke.

  • count – broj elemenata za čitanje. -1 čita cijeli međuspremnik od offset do kraja.

  • offset – broj bajtova koje treba preskočiti na početku međuspremnika.

  • out – neobavezno unaprijed alocirano float numpy.ndarray u koje se zapisuje rezultat. Kada je dostavljeno, ne alocira se novo polje.

  • byteswap – obrće redoslijed bajtova svakog elementa prije pretvaranja – ispravna postavka kada je međuspremnik došao s periferije koja je zapisivala suprotnim redoslijedom bajtova od CPU-a kamere.

Vraća:

float numpy.ndarray duljine count (ili dostupnog broja uzoraka kada je count jednak -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

Vraća magnitudu diskretne Fourierove transformacije ulaza, konceptualno ekvivalentno np.sqrt(real * real + imag * imag) nakon poziva numpy.fft.fft() – bez alociranja međumeđuspremnika koje bi eksplicitni oblik alocirao.

Parametri:
  • r – realni dio ulaza kao 1-D float numpy.ndarray. Njegova duljina mora biti potencija dvojke.

  • imag – neobavezni imaginarni dio ulaza, istog oblika kao r. Kada se izostavi, ulaz se tretira kao isključivo realan.

  • scratchpad – neobavezni radni međuspremnik za FFT. Kada je dostavljen, ne alocira se privremeno radno polje.

  • out – neobavezni unaprijed alocirani odredišni međuspremnik za spektar magnitude. Kada je dostavljen, rezultat se zapisuje izravno u njega.

  • log – kada je True, vraća prirodni logaritam magnitude umjesto same magnitude.

Vraća:

float numpy.ndarray iste duljine kao r koje sadrži magnitudu (ili njezin logaritam) u svakom frekvencijskom razredu.