ulab.utils --- Helper utilitas ulab¶
Submodul ulab.utils menyediakan sejumlah kecil helper yang beroperasi pada objek numpy.ndarray tetapi berada di luar permukaan NumPy / SciPy standar. Helper ini disetel untuk pola streaming yang umum pada target tertanam -- buffer periferal lebih-dari-16-bit, spektrum magnitudo bebas-alokasi.
Konverter buffer¶
Standar numpy.frombuffer() hanya menangani dtype yang didefinisikan oleh numpy itu sendiri (uint8, int8, uint16, int16, float). Helper di bawah ini memperluas cakupan tersebut ke buffer byte int16 / uint16 / int32 / uint32 dan mengembalikan float numpy.ndarray dalam satu langkah.
- ulab.utils.from_int16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Mengonversi buffer sampel
int16menjadi floatnumpy.ndarraydalam satu langkah.- Parameter:
buffer -- buffer seperti
bytesyang menyimpan sampel.count -- jumlah elemen yang dibaca.
-1membaca seluruh buffer darioffsethingga akhir.offset -- jumlah byte yang dilewati di awal buffer.
out -- float
numpy.ndarrayyang telah dialokasikan sebelumnya secara opsional untuk menulis hasilnya. Ketika diberikan, tidak ada array baru yang dialokasikan.byteswap -- membalik urutan byte dari setiap elemen sebelum mengonversi -- pengaturan yang tepat ketika buffer berasal dari periferal yang menulis dalam urutan byte yang berlawanan dari CPU kamera.
- Kembali:
float
numpy.ndarraydengan panjangcount(atau jumlah sampel yang tersedia ketikacountadalah-1).
- ulab.utils.from_uint16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Mengonversi buffer sampel
uint16menjadi floatnumpy.ndarraydalam satu langkah.- Parameter:
buffer -- buffer seperti bytes yang menyimpan sampel.
count -- jumlah elemen yang dibaca.
-1membaca seluruh buffer darioffsethingga akhir.offset -- jumlah byte yang dilewati di awal buffer.
out -- float
numpy.ndarrayyang telah dialokasikan sebelumnya secara opsional untuk menulis hasilnya. Ketika diberikan, tidak ada array baru yang dialokasikan.byteswap -- membalik urutan byte dari setiap elemen sebelum mengonversi -- pengaturan yang tepat ketika buffer berasal dari periferal yang menulis dalam urutan byte yang berlawanan dari CPU kamera.
- Kembali:
float
numpy.ndarraydengan panjangcount(atau jumlah sampel yang tersedia ketikacountadalah-1).
- ulab.utils.from_int32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Mengonversi buffer sampel
int32menjadi floatnumpy.ndarraydalam satu langkah.- Parameter:
buffer -- buffer seperti bytes yang menyimpan sampel.
count -- jumlah elemen yang dibaca.
-1membaca seluruh buffer darioffsethingga akhir.offset -- jumlah byte yang dilewati di awal buffer.
out -- float
numpy.ndarrayyang telah dialokasikan sebelumnya secara opsional untuk menulis hasilnya. Ketika diberikan, tidak ada array baru yang dialokasikan.byteswap -- membalik urutan byte dari setiap elemen sebelum mengonversi -- pengaturan yang tepat ketika buffer berasal dari periferal yang menulis dalam urutan byte yang berlawanan dari CPU kamera.
- Kembali:
float
numpy.ndarraydengan panjangcount(atau jumlah sampel yang tersedia ketikacountadalah-1).
- ulab.utils.from_uint32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Mengonversi buffer sampel
uint32menjadi floatnumpy.ndarraydalam satu langkah.- Parameter:
buffer -- buffer seperti bytes yang menyimpan sampel.
count -- jumlah elemen yang dibaca.
-1membaca seluruh buffer darioffsethingga akhir.offset -- jumlah byte yang dilewati di awal buffer.
out -- float
numpy.ndarrayyang telah dialokasikan sebelumnya secara opsional untuk menulis hasilnya. Ketika diberikan, tidak ada array baru yang dialokasikan.byteswap -- membalik urutan byte dari setiap elemen sebelum mengonversi -- pengaturan yang tepat ketika buffer berasal dari periferal yang menulis dalam urutan byte yang berlawanan dari CPU kamera.
- Kembali:
float
numpy.ndarraydengan panjangcount(atau jumlah sampel yang tersedia ketikacountadalah-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¶
Mengembalikan magnitudo dari transformasi Fourier diskret dari masukan, secara konseptual setara dengan
np.sqrt(real * real + imag * imag)setelah pemanggilannumpy.fft.fft()-- tanpa mengalokasikan buffer perantara yang akan dibutuhkan oleh bentuk eksplisitnya.- Parameter:
r -- bagian real dari masukan sebagai float
numpy.ndarray1-D. Panjangnya harus berupa pangkat dua.imag -- bagian imajiner opsional dari masukan, bentuk sama dengan r. Ketika dihilangkan, masukan diperlakukan sebagai murni real.
scratchpad -- buffer kerja opsional untuk FFT. Ketika diberikan, tidak ada array kerja sementara yang dialokasikan.
out -- buffer tujuan yang telah dialokasikan sebelumnya secara opsional untuk spektrum magnitudo. Ketika diberikan, hasilnya ditulis langsung ke dalamnya.
log -- ketika
True, kembalikan logaritma natural dari magnitudo alih-alih magnitudo itu sendiri.
- Kembali:
float
numpy.ndarraydengan panjang sama dengan r yang menyimpan magnitudo (atau logaritmanya) pada setiap bin frekuensi.