یونٹ 3 / 12

سگنل پروسیسنگ: فلٹرز، سیمپلنگ اور فریکوئنسی تجزیہ

فائدہ:

  • AI سپورٹ کے ساتھ نمونے لینے، Nyquist اور aliasing کے تصورات کو صحیح طریقے سے بنانے اور لاگو کرنے کی صلاحیت
  • AI کے ساتھ FFT، فلٹر ڈیزائن اور ونڈونگ کے مراحل کو ڈرافٹ کوڈ اور حسابات میں ترجمہ کرنے کی صلاحیت
  • حوالہ سگنل، یونٹ کنٹرول اور پیمائش کے ساتھ AI کے ذریعہ تیار کردہ سگنل پروسیسنگ کے نتائج کی تصدیق کرنے کی صلاحیت

سگنل پروسیسنگ الیکٹرانکس اور کمیونیکیشن انجینئرنگ کا دل ہے: وولٹیج کی لہر، آواز کی ریکارڈنگ، سینسر ریڈنگ، یا ریڈیو سگنل لینے اور اس کے اندر موجود معلومات کو نکالنے، اس کے شور کو صاف کرنے اور اسے تبدیل کرنے کا فن۔ اس یونٹ میں، آپ دیکھیں گے کہ سگنل پروسیسنگ کے تصورات کو سیکھنے، فلٹر اور تبدیلی کے حساب کتاب بنانے اور ازگر کوڈ کے ساتھ تجزیہ کرنے کے لیے AI کا استعمال کیسے کیا جاتا ہے۔ لیکن شروع سے ہی ایک انتباہ: سگنل پروسیسنگ میں ایک چھوٹی سی تصوراتی غلطی (غلط سیمپلنگ فریکوئنسی، ونڈو کو چھوڑنا، مداخلت کرنے والا یونٹ) نتیجہ کو مکمل طور پر اور خاموشی سے مسخ کردے گا۔ گراف اب بھی اچھا لگتا ہے، لیکن یہ غلط ہے۔ اسی لیے یہ ضروری ہے کہ AI کے ذریعہ تیار کردہ ہر نتیجے کو ایک معروف حوالہ سگنل اور یونٹ کنٹرول کے خلاف جانچیں۔

نمونے لینے اور Nyquist: یہ سب کہاں سے شروع ہوتا ہے۔

کمپیوٹر میں ایک اینالاگ سگنل (مسلسل لہر) پر کارروائی کرنے کے لیے، ہم اسے مخصوص وقفوں سے ناپتے ہیں اور اسے ایک عدد میں تبدیل کرتے ہیں۔ اسے سیمپلنگ کہتے ہیں۔ یہ نمونے لینے کی فریکوئنسی ہے (fs، یونٹ Hz) ہم فی سیکنڈ کتنے نمونے لیتے ہیں۔ Nyquist کا معیار یہ بتاتا ہے کہ کسی سگنل کو درست طریقے سے بازیافت کرنے کے لیے، نمونے لینے کی فریکوئنسی سگنل میں سب سے زیادہ فریکوئنسی سے کم از کم دو گنا ہونی چاہیے۔ اگر اس شرط کو پورا نہیں کیا جاتا ہے، تو اعلی تعدد کم تعدد کی طرح نظر آنے لگتے ہیں۔ اسے الیاسنگ کہا جاتا ہے اور ڈیٹا مستقل طور پر کرپٹ ہو جاتا ہے کیونکہ آپ ان دو حالات میں فرق نہیں کر سکتے۔

AI اس تصور کی بہت اچھی طرح وضاحت کرتا ہے اور اسے مثالوں سے ظاہر کر سکتا ہے۔ لیکن آپ اپنے نمونے لینے کی فریکوئنسی کا انتخاب کرتے وقت فیصلہ کرتے ہیں: آپ کے سگنل کی اصل بینڈوڈتھ کیا ہے، کیا آپ کے پاس اینٹی ایلیزنگ اینالاگ فلٹر ہے، آپ کا ADC (اینالاگ-ڈیجیٹل کنورٹر: وہ چپ جو اینالاگ سگنل کو نمبر میں تبدیل کرتی ہے) دراصل آپریٹ کرتی ہے۔ AI نمونے لینے کی فریکوئنسی "تجویز" کر سکتا ہے، لیکن یہ تجویز آپ کے سگنل کے اصل سپیکٹرم کی پیمائش کیے بغیر ایک اندازہ ہے۔

مشورہ: AI سے نمونے لینے کا سوال پوچھتے وقت، اپنے سگنل کی سب سے زیادہ فریکوئنسی اور بینڈوتھ خود بتا دیں۔ "اگر میرے سگنل کا سب سے زیادہ جزو ~4 kHz ہے، تو مجھے fs کا انتخاب کیسے کرنا چاہیے اور مجھے اینٹی ایلیزنگ فلٹر کہاں رکھنا چاہیے؟" پسند اے آئی کو سپیکٹرم کا اندازہ نہ لگائیں۔ پیمائش

FFT اور تعدد تجزیہ

FFT (فاسٹ فوئیر ٹرانسفارم) ایک تیز الگورتھم ہے جو وقت کے محور سے فریکوئنسی محور میں سگنل کو تبدیل کرتا ہے۔ تو "اس سگنل میں کیا تعدد ہے اور کتنی طاقت کے ساتھ؟" سوال کا جواب دیتا ہے. AI بہت اچھی طرح سے کرتا ہے کہ کس طرح FFT کو نافذ کیا جائے، نتائج کی ترجمانی کی جائے، اور Python کوڈ (numpy/scipy) لکھیں۔ لیکن FFT میں عام غلطیاں ہیں، اور AI کوڈ خاموشی سے انہیں شامل کر سکتا ہے:

  • فریکوئینسی ایکسس اسکیلنگ: FFT آؤٹ پٹ کا فریکوئنسی محور نمونے لینے کی فریکوئنسی پر منحصر ہے۔ اگر fs غلط طریقے سے درج کیا گیا ہے تو، تمام تعدد غلط طریقے سے آؤٹ پٹ ہوتے ہیں، لیکن گراف نارمل دکھائی دیتا ہے۔
  • ونڈونگ: جب سگنل کا ایک محدود ٹکڑا موصول ہوتا ہے، تو کناروں پر وقفہ ہوتا ہے اور سپیکٹرم میں چھدم پھیلاؤ (سپیکٹرل رساو) کا مشاہدہ کیا جاتا ہے۔ ہین اور ہیمنگ جیسی ونڈوز اسے کم کرتی ہیں۔ اگر AI کوڈ ونڈونگ کو چھوڑ دیتا ہے، تو نتیجہ گمراہ کن ہوگا۔
  • طول و عرض نارملائزیشن: FFT آؤٹ پٹ کے طول و عرض کو اصل جسمانی قدر میں تبدیل کرنے کے لیے اسکیلنگ اور ونڈو درست کرنے کی ضرورت ہے۔ اگر چھوڑ دیا جائے تو طول و عرض غلط ہوں گے۔

فلٹر ڈیزائن

فلٹر ایک سرکٹ یا الگورتھم ہے جو سگنل سے ناپسندیدہ تعدد نکالتا ہے۔ چار بنیادی اقسام ہیں: لو پاس (کم تعدد سے گزرتا ہے)، ہائی پاس، بینڈ پاس، اور بینڈ پاس (نشان)۔ ڈیجیٹل فلٹرز کے دو بڑے خاندان ہیں: ایف آئی آر (محدود تسلسل ردعمل، مستحکم اور لکیری مرحلہ) اور آئی آئی آر (لامحدود تسلسل ردعمل، کم حساب لیکن استحکام اور مرحلے کے خطرے کے ساتھ کھڑی منتقلی)۔

AI فلٹر کے ڈیزائن کے مراحل کی وضاحت کرتا ہے (کٹ آف فریکوئنسی، پاس بینڈ، اسٹاپ بینڈ توجہ، آرڈر کا انتخاب) اور سکائپی کے ساتھ کوفیشینٹ جنریٹنگ کوڈ لکھتا ہے۔ لیکن آپ کے ڈیزائن کردہ فلٹر کی کٹ آف فریکوئنسی کو نارملائز کیا جاتا ہے (Nyquist فریکوئنسی کے نسبت)، اور یہاں fs کو غلط درج کرنا ایک بہت عام غلطی ہے۔ مزید برآں، IIR فلٹرز میں استحکام اور فیز ڈسٹورشن ایک مسئلہ ہو سکتا ہے، اور ریئل ٹائم سسٹمز میں تاخیر ایک مسئلہ ہو سکتی ہے۔ فریکوئنسی رسپانس گراف اور معلوم ٹیسٹ سگنل کے ساتھ AI سے تیار کردہ فلٹر کی تصدیق کرنا یقینی بنائیں۔

تین چھوٹے مقدمات

کیس 1 - اوور لیپنگ وائبریشن۔ ایک انجینئر 1 کلو ہرٹز پر موٹر کی کمپن کا نمونہ لیتا ہے اور FFT میں 300 ہرٹز پر ایک مضبوط چوٹی دیکھتا ہے۔ یہ چوٹی، جو انجن کے ڈیزائن سے مماثل نہیں ہے، مبہم ہے۔ اصل میں انجن میں 1300 ہرٹج کے ارد گرد ایک حقیقی جزو ہے؛ اس کے لیے 1 kHz کا نمونہ ناکافی ہے (Nyquist 500 Hz) اور 1300 Hz اوورلیپ شدہ 300 Hz۔ AI کے ساتھ بات چیت کے بعد "چاہے یہ چوٹی اصلی ہے یا عرفی" اور نمونے لینے کی فریکوئنسی کو 5 کلو ہرٹز تک بڑھانے کے بعد، چوٹی 1300 ہرٹز پر صحیح جگہ پر ظاہر ہوتی ہے۔ سبق: قابل اعتراض پہاڑی پر، پہلا سوال نمونے لینے کی کافییت۔

کیس 2 - ونڈو کو چھوڑ دیا گیا۔ ایک انٹرن AI سے FFT کوڈ کی درخواست کرتا ہے اور اس پر عمل درآمد کرتا ہے۔ وہ ایک ہی فریکوئنسی ٹیسٹ ٹون کی توقع کرتا ہے لیکن اس کو اسپیکٹرم میں وسیع پھیلاؤ نظر آتا ہے۔ مسئلہ یہ ہے کہ کوڈ ونڈونگ (سپیکٹرل لیکیج) نہیں کرتا ہے۔ اے آئی کو بتائیں کہ "ہین ونڈو شامل کریں اور طول و عرض کی اصلاح کا اطلاق کریں" اور آؤٹ پٹ متوقع تیز چوٹی پر واپس آجائے گا۔ سبق: ایک معروف سنگل فریکوئنسی سگنل کے ساتھ FFT کوڈ کی جانچ کریں۔ کھڑکی کو چیک کریں کہ آیا کوئی رساو ہے۔

کیس 3 - غلط fs. ایک انجینئر ریکارڈر سے ڈیٹا کا تجزیہ کرتا ہے۔ ڈیوائس 48 kHz پر ریکارڈ کی گئی، لیکن AI کوڈ میں ڈیفالٹ 44.1 kHz درج کیا گیا۔ تمام تعدد 8٪ کی طرف سے منتقل کر رہے ہیں؛ ایک 1000 ہرٹز ٹون 1088 ہرٹز پر ظاہر ہوتا ہے۔ پیمائش کے آلات کے اصل fs کی جانچ کرتے وقت خرابی پائی جاتی ہے۔ سبق: نمونے لینے کی فریکوئنسی تجزیہ کے سلسلے میں واحد سب سے اہم نمبر ہے۔ ماخذ سے تصدیق ہونی چاہیے۔

کاپی کرنے کے قابل پرامپٹ ٹیمپلیٹس

FFT سیٹ اپ ٹیمپلیٹ"Python (numpy/scipy) میں ایک FFT تجزیہ کوڈ لکھیں۔ ان پٹ: samplingfrequency fs=[value] Hz، سگنل سٹرنگ 'x'۔ کوڈ کو مندرجہ ذیل کام کرنے دیں: (1) Hann ونڈو کا اطلاق کریں، (2) FFT حاصل کریں، (3) f-4 کے برابر فریکوئنسی کو درست کریں۔ ونڈو کی اصلاح کے ساتھ طول و عرض سپیکٹرم "براہ کرم تبصرہ لائن میں بتائیں کہ آپ کون سا مفروضہ بنا رہے ہیں تاکہ میں اس کی تصدیق کر سکوں۔"

سیمپلنگ کنٹرول ٹیمپلیٹ "میرے سگنل کی سب سے زیادہ اہم تعدد تقریبا [X] ہرٹز ہے۔ نمونے لینے کی فریکوئنسی کا انتخاب کرتے وقت Nyquist مارجن، اینٹی ایلیزنگ فلٹر کی ضرورت، اور حفاظت کے عملی مارجن کی وضاحت کریں۔ ایک رینج تجویز کریں لیکن اس بات پر زور دیں کہ مجھے سگنل کے حقیقی سپیکٹرم کی پیمائش کرکے اس کی تصدیق کرنی چاہیے۔"

فلٹر ڈیزائن ٹیمپلیٹ "اسکیپی کے ساتھ ایک [لو/ہائی/بینڈ] پاس ڈیجیٹل فلٹر ڈیزائن کریں۔ کٹ آف فریکوئنسی [X] ہرٹز، سیمپلنگ فریکوئنسی fs=[Y] Hz۔ FIR اور IIR اختیارات کا موازنہ کریں (استحکام، مرحلہ، تاخیر، کمپیوٹیشنل لوڈ)۔ کوڈ میں واضح طور پر دکھائیں کہ کس طرح سے کٹ آف کوڈ کو عام تعدد کے ساتھ شامل کیا جاتا ہے۔ تعدد ردعمل گراف۔"

نتیجہ کی توثیق کا سانچہ "نیچے سگنل پروسیسنگ کوڈ کی جانچ کریں اور خاموش غلطیوں کے جھنڈے والے ذرائع: غلط fs، سکپڈ ونڈونگ، یونٹ کراسسٹالک (Hz/kHz،V/mV)، نارملائزیشن کی کمی، سنگل/ڈبل سائیڈڈ اسپیکٹرم کراسسٹالک۔ تجویز کریں کہ مجھے کس طرح ٹیسٹ کرنا چاہیے (جس کے ساتھ ہر Costepa کے لیے سگنل:۔"

کمزور فوری / مضبوط اشارہ

کمزور اشارہ: "اس سگنل کی فریکوئنسی تلاش کریں۔"

مضبوط اشارہ: "میرے پاس 10 کلو ہرٹز کے نمونے لینے کی فریکوئنسی کے ساتھ ایک سگنل سرنی ہے۔ ایک Python کوڈ لکھیں جو FFT کے ساتھ غالب فریکوئنسی اجزاء کو تلاش کرتا ہے؛ Hann ونڈو اور طول و عرض کی اصلاح کا استعمال کریں، fs کے مطابق فریکوئنسی محور کو پیمانہ کریں۔ کوڈ کے آخر میں، ایک توثیقی بلاک شامل کریں اور اگر f1 کے سنتھیٹک ٹیسٹ کے نشان کو درست دیکھیں

کمزور پرامپٹ سیاق و سباق سے پاک جواب پیدا کرتا ہے اور فرض کرتا ہے fs؛ یہ مضبوط پرامپٹ پیرامیٹرز واپس کرتا ہے اور خود تصدیق کرنے والے ٹیسٹ بلاک کے لیے اشارہ کرتا ہے۔

سگنل پروسیسنگ میں یونٹس اور مفروضوں کا جدول

تصور

بار بار غلطی

تصدیق

نمونے لینے کی فریکوئنسی (fs)

ڈیوائس کے اصل FS کے بجائے ڈیفالٹ

ریکارڈر کی ترتیب سے تصدیق

تعدد محور

اگر fs غلط ہے تو پورا محور بدل جاتا ہے۔

معلوم فریکوئنسی ٹیسٹ ٹون

کھڑکی لگانا

چھوڑنے پر سپیکٹرل لیک

مونوٹون سگنل میں چوٹی کی چوڑائی

طول و عرض

نارملائزیشن/تصحیح غائب ہے۔

معلوم طول و عرض سگنل کے ساتھ موازنہ

فلٹر کٹ

fs کے مطابق غلطی کو معمول بنائیں

تعدد ردعمل گراف

احتیاط: صرف اس وجہ سے کہ ایک FFT گراف ہموار اور قابل اعتماد نظر آتا ہے اس کا مطلب یہ نہیں ہے کہ یہ درست ہے۔ اگر فریکوئنسی محور کو غلط طریقے سے پیمانہ کیا جائے تو، تمام چوٹیاں غلط جگہ پر ہیں لیکن گراف بالکل درست نظر آتا ہے۔ ہمیشہ معروف حوالہ کے ساتھ کیلیبریٹ کریں۔

عام غلطیاں

  • ماخذ سے نمونے لینے کی فریکوئنسی کی تصدیق نہیں کرنا۔ غلط fs تمام تعدد کو بدل دیتا ہے۔
  • Nyquist کی خلاف ورزی کرنا اور عرفیت پر توجہ نہ دینا۔ مشکوک پہاڑیوں پر، پہلے نمونے لینے کی مناسبیت پر سوال کریں۔
  • FFT میں ونڈو کو چھوڑنا۔ سپیکٹرل رساو ایک حقیقی چوٹی کی طرح لگتا ہے۔
  • طول و عرض نارملائزیشن کو بھولنا۔ طول و عرض جسمانی قدر کے لیے غیر منقطع رہتے ہیں۔
  • فلٹر کٹ آف فریکوئنسی کو fs پر غلط طریقے سے نارمل کرنا۔ فلٹر توقع سے مختلف جگہ پر کاٹتا ہے۔

خلاصہ میں

اس یونٹ میں، آپ نے AI کو سگنل پروسیسنگ کے تصورات سیکھنے، FFT اور فلٹر کوڈ لکھنے، اور تجزیہ کی تعمیر میں ایک طاقتور مدد کے طور پر پوزیشن دی ہے۔ لیکن سگنل پروسیسنگ میں، نتائج کو خاموشی سے مسخ کیا جا سکتا ہے: غلط نمونے لینے کی فریکوئنسی، ونڈو کو چھوڑنا، حجم میں مداخلت، یا نارملائزیشن کی کمی گراف کو خوبصورت لیکن غلط بناتی ہے۔ اس لیے AI کی جانب سے تیار کردہ ہر کوڈ کو ایک معروف حوالہ سگنل کے خلاف جانچیں، ماخذ سے نمونے لینے کی فریکوئنسی کی تصدیق کریں، اور ہر نتیجہ کو یونٹ اور طبعی قابلیت کے لیے جانچیں۔ ہر تجزیہ کے شروع میں Nyquist اور aliasing کے تصور کو چیک کریں۔

درخواست کا کام

Python میں ایک مصنوعی ٹیسٹ سگنل بنائیں: دو معلوم فریکوئنسیوں کا مجموعہ (جیسے 1 kHz اور 3 kHz)، fs=10 kHz۔ "FFT سیٹ اپ" ٹیمپلیٹ کے ساتھ AI سے تجزیہ کوڈ کی درخواست کریں اور تصدیق کریں کہ چوٹیاں درست فریکوئنسی پر ظاہر ہوتی ہیں۔ پھر جان بوجھ کر غلط طریقے سے fs درج کریں (جیسے 8 kHz) اور دیکھیں کہ چوٹیاں کیسے بدلتی ہیں۔ آخر میں، کھڑکی کو ہٹا دیں اور اسپیکٹرل رساو کو دیکھیں۔ ہر تجربے کے نتائج کو ایک جملے میں لکھیں۔

چیک لسٹ

  • میں نے ریکارڈر کی اصل ترتیب سے نمونے لینے کی فریکوئنسی (fs) کی تصدیق کی۔
  • [ ] میں نے Nyquist کے معیار کو چیک کیا اور عرفیت کے خطرے کا اندازہ کیا۔
  • میں نے چیک کیا ہے کہ FFT کوڈ میں ونڈونگ اور طول و عرض کی اصلاح کو لاگو کیا گیا ہے۔
  • میں نے معلوم فریکوئنسی کے حوالہ سگنل کے ساتھ کوڈ کا تجربہ کیا۔
  • [ ] میں نے بصری ردعمل کے ذریعہ تصدیق کی کہ فلٹر کٹ آف فریکوئنسی کو fs پر درست طریقے سے معمول بنایا گیا تھا۔
  • میں نے تمام اکائیوں (Hz/kHz, V/mV) کو ہم آہنگ بنایا۔