ulab.utils — ulab yardımcı araçları

ulab.utils alt modülü, numpy.ndarray nesneleri üzerinde işlem yapan ancak standart NumPy / SciPy yüzeyinin dışında kalan küçük bir yardımcı kümesi sağlar. Yardımcılar, gömülü hedeflerde yaygın olan akış kalıpları için optimize edilmiştir – 16 bitten geniş çevre birimi arabellekleri, ayırma içermeyen büyüklük spektrumları.

Arabellek dönüştürücüler

Standart numpy.frombuffer() yalnızca numpy modülünün kendi tanımladığı dtype türlerini işler (uint8, int8, uint16, int16, float). Aşağıdaki yardımcılar bu kapsamı int16 / uint16 / int32 / uint32 bayt arabelleklerine genişletir ve tek geçişte bir float numpy.ndarray döndürür.

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

Bir int16 örnek arabelleğini tek geçişte bir float numpy.ndarray türüne dönüştürür.

Parametreler:
  • buffer – örnekleri tutan bytes benzeri bir arabellek.

  • count – okunacak öğe sayısı. -1, arabelleğin tamamını offset konumundan sonuna kadar okur.

  • offset – arabelleğin başında atlanacak bayt sayısı.

  • out – sonucun yazılacağı isteğe bağlı, önceden ayrılmış bir float numpy.ndarray. Verildiğinde, yeni bir dizi ayrılmaz.

  • byteswap – dönüştürmeden önce her öğenin bayt sırasını tersine çevirir – arabellek, kameranın CPU’sundan ters bayt sırasıyla yazan bir çevre biriminden geldiğinde doğru ayar budur.

Dönüşler:

count uzunluğunda bir float numpy.ndarray (veya count değeri -1 olduğunda mevcut örnek sayısında).

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

Bir uint16 örnek arabelleğini tek geçişte bir float numpy.ndarray türüne dönüştürür.

Parametreler:
  • buffer – örnekleri tutan bytes benzeri bir arabellek.

  • count – okunacak öğe sayısı. -1, arabelleğin tamamını offset konumundan sonuna kadar okur.

  • offset – arabelleğin başında atlanacak bayt sayısı.

  • out – sonucun yazılacağı isteğe bağlı, önceden ayrılmış bir float numpy.ndarray. Verildiğinde, yeni bir dizi ayrılmaz.

  • byteswap – dönüştürmeden önce her öğenin bayt sırasını tersine çevirir – arabellek, kameranın CPU’sundan ters bayt sırasıyla yazan bir çevre biriminden geldiğinde doğru ayar budur.

Dönüşler:

count uzunluğunda bir float numpy.ndarray (veya count değeri -1 olduğunda mevcut örnek sayısında).

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

Bir int32 örnek arabelleğini tek geçişte bir float numpy.ndarray türüne dönüştürür.

Parametreler:
  • buffer – örnekleri tutan bytes benzeri bir arabellek.

  • count – okunacak öğe sayısı. -1, arabelleğin tamamını offset konumundan sonuna kadar okur.

  • offset – arabelleğin başında atlanacak bayt sayısı.

  • out – sonucun yazılacağı isteğe bağlı, önceden ayrılmış bir float numpy.ndarray. Verildiğinde, yeni bir dizi ayrılmaz.

  • byteswap – dönüştürmeden önce her öğenin bayt sırasını tersine çevirir – arabellek, kameranın CPU’sundan ters bayt sırasıyla yazan bir çevre biriminden geldiğinde doğru ayar budur.

Dönüşler:

count uzunluğunda bir float numpy.ndarray (veya count değeri -1 olduğunda mevcut örnek sayısında).

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

Bir uint32 örnek arabelleğini tek geçişte bir float numpy.ndarray türüne dönüştürür.

Parametreler:
  • buffer – örnekleri tutan bytes benzeri bir arabellek.

  • count – okunacak öğe sayısı. -1, arabelleğin tamamını offset konumundan sonuna kadar okur.

  • offset – arabelleğin başında atlanacak bayt sayısı.

  • out – sonucun yazılacağı isteğe bağlı, önceden ayrılmış bir float numpy.ndarray. Verildiğinde, yeni bir dizi ayrılmaz.

  • byteswap – dönüştürmeden önce her öğenin bayt sırasını tersine çevirir – arabellek, kameranın CPU’sundan ters bayt sırasıyla yazan bir çevre biriminden geldiğinde doğru ayar budur.

Dönüşler:

count uzunluğunda bir float numpy.ndarray (veya count değeri -1 olduğunda mevcut örnek sayısında).

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

Girdinin ayrık Fourier dönüşümünün büyüklüğünü döndürür; kavramsal olarak numpy.fft.fft() çağrısından sonra np.sqrt(real * real + imag * imag) ifadesine eşdeğerdir – ancak açık biçimin gerektireceği ara arabellekleri ayırmadan.

Parametreler:
  • r – girdinin gerçek kısmı; 1 boyutlu bir float numpy.ndarray olarak. Uzunluğu ikinin bir kuvveti olmalıdır.

  • imag – girdinin isteğe bağlı sanal kısmı, r ile aynı şekilde. Atlandığında, girdi tamamen gerçek olarak ele alınır.

  • scratchpad – FFT için isteğe bağlı çalışma arabelleği. Verildiğinde, geçici bir çalışma dizisi ayrılmaz.

  • out – büyüklük spektrumu için isteğe bağlı, önceden ayrılmış hedef arabellek. Verildiğinde, sonuç doğrudan buna yazılır.

  • logTrue olduğunda, büyüklüğün kendisi yerine büyüklüğün doğal logaritmasını döndürür.

Dönüşler:

r ile aynı uzunlukta, her frekans aralığındaki büyüklüğü (veya logaritmasını) tutan bir float numpy.ndarray.