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 تحمل المقدار (أو لوغاريتمه) عند كل نطاق ترددي.