ulab.utils --- ตัวช่วย utility ของ ulab¶
โมดูลย่อย ulab.utils จัดเตรียมชุดตัวช่วยขนาดเล็กที่ทำงานกับออบเจกต์ numpy.ndarray แต่อยู่นอกพื้นผิวมาตรฐาน NumPy / SciPy ตัวช่วยเหล่านี้ถูกปรับแต่งสำหรับรูปแบบการสตรีมที่พบบ่อยบนเป้าหมายแบบฝังตัว -- บัฟเฟอร์อุปกรณ์ต่อพ่วงที่กว้างกว่า 16 บิต, สเปกตรัมขนาดที่ไม่ต้องการการจัดสรรหน่วยความจำ
ตัวแปลงบัฟเฟอร์¶
numpy.frombuffer() มาตรฐานรองรับเฉพาะ dtype ที่ numpy กำหนดเอง (uint8, int8, uint16, int16, float) ตัวช่วยด้านล่างขยายการรองรับนั้นไปยังบัฟเฟอร์ไบต์ int16 / uint16 / int32 / uint32 และคืน numpy.ndarray แบบ float ในรอบเดียว
- ulab.utils.from_int16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
แปลงบัฟเฟอร์ของตัวอย่าง
int16เป็นnumpy.ndarrayแบบ float ในรอบเดียว- พารามิเตอร์:
buffer -- บัฟเฟอร์แบบ
bytesที่มีตัวอย่างcount -- จำนวนสมาชิกที่จะอ่าน
-1อ่านบัฟเฟอร์ทั้งหมดจากoffsetถึงท้ายoffset -- จำนวนไบต์ที่จะข้ามที่จุดเริ่มต้นของบัฟเฟอร์
out --
numpy.ndarrayแบบ float ที่จัดสรรล่วงหน้า (ไม่บังคับ) สำหรับเขียนผลลัพธ์ เมื่อระบุจะไม่มีการจัดสรรอาร์เรย์ใหม่byteswap -- กลับลำดับไบต์ของแต่ละสมาชิกก่อนแปลง -- การตั้งค่าที่ถูกต้องเมื่อบัฟเฟอร์มาจากอุปกรณ์ต่อพ่วงที่เขียนด้วยลำดับไบต์ตรงข้ามกับ CPU ของกล้อง
- ค่าที่คืน:
numpy.ndarrayแบบ float ที่มีความยาวcount(หรือจำนวนตัวอย่างที่มีเมื่อcountเป็น-1)
- ulab.utils.from_uint16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
แปลงบัฟเฟอร์ของตัวอย่าง
uint16เป็นnumpy.ndarrayแบบ float ในรอบเดียว- พารามิเตอร์:
buffer -- บัฟเฟอร์แบบ bytes ที่มีตัวอย่าง
count -- จำนวนสมาชิกที่จะอ่าน
-1อ่านบัฟเฟอร์ทั้งหมดจากoffsetถึงท้ายoffset -- จำนวนไบต์ที่จะข้ามที่จุดเริ่มต้นของบัฟเฟอร์
out --
numpy.ndarrayแบบ float ที่จัดสรรล่วงหน้า (ไม่บังคับ) สำหรับเขียนผลลัพธ์ เมื่อระบุจะไม่มีการจัดสรรอาร์เรย์ใหม่byteswap -- กลับลำดับไบต์ของแต่ละสมาชิกก่อนแปลง -- การตั้งค่าที่ถูกต้องเมื่อบัฟเฟอร์มาจากอุปกรณ์ต่อพ่วงที่เขียนด้วยลำดับไบต์ตรงข้ามกับ CPU ของกล้อง
- ค่าที่คืน:
numpy.ndarrayแบบ float ที่มีความยาวcount(หรือจำนวนตัวอย่างที่มีเมื่อcountเป็น-1)
- ulab.utils.from_int32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
แปลงบัฟเฟอร์ของตัวอย่าง
int32เป็นnumpy.ndarrayแบบ float ในรอบเดียว- พารามิเตอร์:
buffer -- บัฟเฟอร์แบบ bytes ที่มีตัวอย่าง
count -- จำนวนสมาชิกที่จะอ่าน
-1อ่านบัฟเฟอร์ทั้งหมดจากoffsetถึงท้ายoffset -- จำนวนไบต์ที่จะข้ามที่จุดเริ่มต้นของบัฟเฟอร์
out --
numpy.ndarrayแบบ float ที่จัดสรรล่วงหน้า (ไม่บังคับ) สำหรับเขียนผลลัพธ์ เมื่อระบุจะไม่มีการจัดสรรอาร์เรย์ใหม่byteswap -- กลับลำดับไบต์ของแต่ละสมาชิกก่อนแปลง -- การตั้งค่าที่ถูกต้องเมื่อบัฟเฟอร์มาจากอุปกรณ์ต่อพ่วงที่เขียนด้วยลำดับไบต์ตรงข้ามกับ CPU ของกล้อง
- ค่าที่คืน:
numpy.ndarrayแบบ float ที่มีความยาวcount(หรือจำนวนตัวอย่างที่มีเมื่อcountเป็น-1)
- ulab.utils.from_uint32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
แปลงบัฟเฟอร์ของตัวอย่าง
uint32เป็นnumpy.ndarrayแบบ float ในรอบเดียว- พารามิเตอร์:
buffer -- บัฟเฟอร์แบบ bytes ที่มีตัวอย่าง
count -- จำนวนสมาชิกที่จะอ่าน
-1อ่านบัฟเฟอร์ทั้งหมดจากoffsetถึงท้ายoffset -- จำนวนไบต์ที่จะข้ามที่จุดเริ่มต้นของบัฟเฟอร์
out --
numpy.ndarrayแบบ float ที่จัดสรรล่วงหน้า (ไม่บังคับ) สำหรับเขียนผลลัพธ์ เมื่อระบุจะไม่มีการจัดสรรอาร์เรย์ใหม่byteswap -- กลับลำดับไบต์ของแต่ละสมาชิกก่อนแปลง -- การตั้งค่าที่ถูกต้องเมื่อบัฟเฟอร์มาจากอุปกรณ์ต่อพ่วงที่เขียนด้วยลำดับไบต์ตรงข้ามกับ CPU ของกล้อง
- ค่าที่คืน:
numpy.ndarrayแบบ float ที่มีความยาวcount(หรือจำนวนตัวอย่างที่มีเมื่อcountเป็น-1)
สเปกโตรแกรม¶
- 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¶
คืนค่าขนาดของการแปลง Fourier แบบไม่ต่อเนื่องของอินพุต ซึ่งเทียบเท่ากับ
np.sqrt(real * real + imag * imag)หลังการเรียกnumpy.fft.fft()-- โดยไม่ต้องจัดสรรบัฟเฟอร์ชั่วคราวที่รูปแบบชัดเจนจะต้องใช้- พารามิเตอร์:
r -- ส่วนจริงของอินพุตเป็น
numpy.ndarrayแบบ float 1-D ความยาวต้องเป็นกำลังของสองimag -- ส่วนจินตภาพของอินพุต (ไม่บังคับ) รูปร่างเดียวกับ r เมื่อไม่ระบุ อินพุตจะถูกถือว่าเป็นจำนวนจริงล้วน
scratchpad -- บัฟเฟอร์ทำงานสำหรับ FFT (ไม่บังคับ) เมื่อระบุ จะไม่มีการจัดสรรอาร์เรย์ทำงานชั่วคราว
out -- บัฟเฟอร์ปลายทางที่จัดสรรล่วงหน้า (ไม่บังคับ) สำหรับสเปกตรัมขนาด เมื่อระบุ ผลลัพธ์จะถูกเขียนลงโดยตรง
log -- เมื่อเป็น
Trueจะคืนลอการิทึมธรรมชาติของขนาดแทนที่จะเป็นขนาดเอง
- ค่าที่คืน:
numpy.ndarrayแบบ float ที่มีความยาวเดียวกับ r ซึ่งมีขนาด (หรือลอการิทึมของมัน) ที่แต่ละ frequency bin