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.