ulab.utils --- مساعدات أدوات ulab

توفر الوحدة الفرعية ulab.utils مجموعة صغيرة من المساعدات التي تعمل على كائنات numpy.ndarray لكنها تعيش خارج السطح القياسي لـ NumPy / SciPy. وقد ضُبطت هذه المساعدات لأنماط التدفق الشائعة على الأهداف المضمَّنة -- المخازن المؤقتة للطرفيات الأعرض من 16 بت، وأطياف المقدار الخالية من التخصيص.

محوّلات المخزن المؤقت

إن numpy.frombuffer() القياسية لا تتعامل إلا مع الأنواع التي تعرّفها numpy نفسها (uint8 وint8 وuint16 وint16 وfloat). وتوسّع المساعدات أدناه تلك التغطية لتشمل مخازن البايتات من النوع int16 / uint16 / int32 / uint32 وتُعيد numpy.ndarray من الأعداد العشرية في مرور واحد.

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 من الأعداد العشرية في مرور واحد.

المعاملات:
  • buffer -- مخزن مؤقت شبيه بـ bytes يحمل العينات.

  • count -- عدد العناصر المراد قراءتها. تقرأ القيمة -1 المخزن المؤقت بأكمله من offset حتى النهاية.

  • offset -- عدد البايتات المراد تخطيها في بداية المخزن المؤقت.

  • out -- numpy.ndarray اختيارية مخصصة مسبقًا من الأعداد العشرية لكتابة النتيجة فيها. وعند تقديمها، لا تُخصَّص أي مصفوفة جديدة.

  • byteswap -- عكس ترتيب بايتات كل عنصر قبل التحويل -- وهو الإعداد الصحيح عندما يأتي المخزن المؤقت من طرفية كتبت بترتيب بايتات معاكس لترتيب وحدة المعالجة المركزية للكاميرا.

يُعيد:

numpy.ndarray من الأعداد العشرية بطول 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 من الأعداد العشرية في مرور واحد.

المعاملات:
  • buffer -- مخزن مؤقت شبيه بـ bytes يحمل العينات.

  • count -- عدد العناصر المراد قراءتها. تقرأ القيمة -1 المخزن المؤقت بأكمله من offset حتى النهاية.

  • offset -- عدد البايتات المراد تخطيها في بداية المخزن المؤقت.

  • out -- numpy.ndarray اختيارية مخصصة مسبقًا من الأعداد العشرية لكتابة النتيجة فيها. وعند تقديمها، لا تُخصَّص أي مصفوفة جديدة.

  • byteswap -- عكس ترتيب بايتات كل عنصر قبل التحويل -- وهو الإعداد الصحيح عندما يأتي المخزن المؤقت من طرفية كتبت بترتيب بايتات معاكس لترتيب وحدة المعالجة المركزية للكاميرا.

يُعيد:

numpy.ndarray من الأعداد العشرية بطول 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 من الأعداد العشرية في مرور واحد.

المعاملات:
  • buffer -- مخزن مؤقت شبيه بـ bytes يحمل العينات.

  • count -- عدد العناصر المراد قراءتها. تقرأ القيمة -1 المخزن المؤقت بأكمله من offset حتى النهاية.

  • offset -- عدد البايتات المراد تخطيها في بداية المخزن المؤقت.

  • out -- numpy.ndarray اختيارية مخصصة مسبقًا من الأعداد العشرية لكتابة النتيجة فيها. وعند تقديمها، لا تُخصَّص أي مصفوفة جديدة.

  • byteswap -- عكس ترتيب بايتات كل عنصر قبل التحويل -- وهو الإعداد الصحيح عندما يأتي المخزن المؤقت من طرفية كتبت بترتيب بايتات معاكس لترتيب وحدة المعالجة المركزية للكاميرا.

يُعيد:

numpy.ndarray من الأعداد العشرية بطول 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 من الأعداد العشرية في مرور واحد.

المعاملات:
  • buffer -- مخزن مؤقت شبيه بـ bytes يحمل العينات.

  • count -- عدد العناصر المراد قراءتها. تقرأ القيمة -1 المخزن المؤقت بأكمله من offset حتى النهاية.

  • offset -- عدد البايتات المراد تخطيها في بداية المخزن المؤقت.

  • out -- numpy.ndarray اختيارية مخصصة مسبقًا من الأعداد العشرية لكتابة النتيجة فيها. وعند تقديمها، لا تُخصَّص أي مصفوفة جديدة.

  • byteswap -- عكس ترتيب بايتات كل عنصر قبل التحويل -- وهو الإعداد الصحيح عندما يأتي المخزن المؤقت من طرفية كتبت بترتيب بايتات معاكس لترتيب وحدة المعالجة المركزية للكاميرا.

يُعيد:

numpy.ndarray من الأعداد العشرية بطول 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

إعادة مقدار تحويل فورييه المتقطع للدخل، وهو مكافئ من حيث المفهوم لـ np.sqrt(real * real + imag * imag) بعد استدعاء numpy.fft.fft() -- دون تخصيص المخازن المؤقتة الوسيطة التي تخصصها الصيغة الصريحة.

المعاملات:
  • r -- الجزء الحقيقي من الدخل بوصفه numpy.ndarray أحادية البُعد من الأعداد العشرية. يجب أن يكون طوله قوة من قوى الاثنين.

  • imag -- الجزء التخيّلي الاختياري من الدخل، بالشكل نفسه الذي لـ r. عند حذفه، يُعامَل الدخل على أنه حقيقي محض.

  • scratchpad -- مخزن مؤقت عامل اختياري لتحويل FFT. عند تقديمه، لا تُخصَّص أي مصفوفة عمل مؤقتة.

  • out -- مخزن مؤقت وجهة اختياري مخصص مسبقًا لطيف المقدار. عند تقديمه، تُكتب النتيجة فيه مباشرةً.

  • log -- عند True، يُعاد اللوغاريتم الطبيعي للمقدار بدلًا من المقدار نفسه.

يُعيد:

numpy.ndarray من الأعداد العشرية بالطول نفسه الذي لـ r تحمل المقدار (أو لوغاريتمه) عند كل نطاق ترددي.