FEC کیا ہے، اور میں اسے کیسے استعمال کروں؟
کمیونیکیشن سسٹمز، انفارمیشن تھیوری، اور کوڈنگ تھیوری میں، فارورڈ ایرر کریکشن (FEC) ایک تکنیک ہے جو ناقابل بھروسہ یا شور والے کمیونیکیشن چینلز پر ڈیٹا ٹرانسمیشن میں ہونے والی غلطیوں کو کنٹرول کرنے کے لیے استعمال ہوتی ہے۔ FEC اپنی شروعات کا مرہون منت ہے 1948 میں کلاڈ شینن کے کام کی وجہ سے شور مچانے والے ٹرانسمیشن چینلز پر قابل بھروسہ کمیونیکیشن ہے۔ شینن کا مرکزی خیال یہ تھا کہ اگر سسٹم کی سگنلنگ کی شرح چینل کی گنجائش سے کم ہے، اگر کوئی مناسب انکوڈنگ اور ڈی کوڈنگ تکنیکوں کا انتخاب کرے تو قابل اعتماد مواصلات حاصل کیے جا سکتے ہیں۔
شکل 1 کوڈڈ سسٹم کا ایک آسان ماڈل دکھاتا ہے۔ خام ٹرانسمیشن ڈیٹا کو پیغام کی ترتیب کے طور پر پیش کیا جاتا ہے۔u. FEC انکوڈر پیغام کو تبدیل کرتا ہے۔uکوڈ ورڈ میںv غیر معتبر یا شور والے چینل میں داخل ہونے سے پہلے بے کار ڈیٹا شامل کرکے۔ اضافی فالتو پن رسیور ڈیکوڈر کو محدود تعداد میں غلطیوں کا پتہ لگانے کی اجازت دیتا ہے جو پیغام میں ہو سکتی ہیں، اور اکثر ان غلطیوں کو دوبارہ منتقل کیے بغیر درست کرنے کے لیے، اس مقصد کے ساتھ کہ اصل پیغام کی ترتیبuڈیکوڈر کے آؤٹ پٹ پر کامیابی کے ساتھ بازیافت کیا جاتا ہے۔
FEC کوڈز کی اقسام
دو ساختی طور پر مختلف قسم کے کوڈز آج کل عام استعمال میں ہیں: بلاک کوڈز اور convolutional codes۔ بلاک کوڈ کے لیے انکوڈر معلومات کی ترتیب کو تقسیم کرتا ہے۔uکے میسج بلاکس میںkانفارمیشن بٹس (علامتیں) ہر ایک اور ہر پیغام کو تبدیل کرتا ہے۔uآزادانہ طور پر ایک کوڈ ورڈ میں،n-بٹ (علامتیں)v. تناسبR = k/nکوڈ کی شرح کہا جاتا ہے۔ بے کار بٹس (علامتیں)،n-k، چینل کے شور کا مقابلہ کرنے کی صلاحیت کے ساتھ کوڈ فراہم کریں۔
بلاک کوڈ کا ایک اہم پیرامیٹر کم از کم فاصلہ ہے،dمنٹ، یہ دو قریبی کوڈ ورڈز کے درمیان فاصلہ ہے، جو ایک درست کوڈ ورڈ کو دوسرے میں تبدیل کرنے کے لیے درکار ڈیٹا کی تبدیلیوں کی کم از کم تعداد کی نمائندگی کرتا ہے۔ یہ پیرامیٹر کسی کوڈ کی غلطی کا پتہ لگانے اور درست کرنے کی صلاحیتوں کا تعین کرتا ہے۔ عام طور پر ایک FEC کوڈ کا پتہ لگانے کے قابل ہوتا ہے۔dمنٹ-1 غلطیاں فی کوڈ ورڈ اور درست کریں ( تکdمنٹ-1)/2 غلطیاں فی کوڈ ورڈ۔ مثال کے طور پر، Reed Solomon code, RS (544, 514,t=15, m=10)، ایک بلاک کوڈ ہے جس میں 514 معلوماتی علامتیں اور 30 بے کار علامتیں ہیں۔ ہر علامت میں 10 بٹس ہوتے ہیں۔ اس کا کم از کم فاصلہ ہے۔dمنٹ=31 اس طرح کہ یہ ( تک درست کر سکتا ہےdمنٹ-1)/2=15 علامت کی غلطیاں فی کوڈ ورڈ۔
ایک convolutional کوڈ کے لیے انکوڈر بھی قبول کرتا ہے۔ kمعلومات کی ترتیب کے بٹ بلاکسuاور ایک انکوڈ شدہ ترتیب تیار کرتا ہے۔vکاn-علامتی بلاکس۔ تاہم، ہر انکوڈ شدہ بلاک نہ صرف متعلقہ پر منحصر ہے۔k-بٹ میسج بلاک ایک ہی وقت میں یونٹ بلکہ آن بھیmپچھلے پیغامات کے بلاکس۔ بے کار بٹس کے علاوہ،n-k، میموری آرڈر کو بڑھا کر مزید فالتو پن شامل کیا جاتا ہے۔mشور والے چینل پر قابل اعتماد ٹرانسمیشن حاصل کرنے کے لیے کوڈ کا۔
شینن تھیوری [1] کی بنیاد پر، کوڈ ورڈ جتنا لمبا ہوتا ہے اتنی ہی طاقتور غلطی کو درست کرنے کی صلاحیت فراہم کرتا ہے۔ تاہم، کوڈنگ کی پیچیدگی کوڈ ورڈ کی لمبائی کے ساتھ بھی بڑھ جاتی ہے۔ پیچیدگی اور کوڈنگ کی کارکردگی کے درمیان بہتر تجارت کو حاصل کرنے کے لیے، مختصر اجزاء کے کوڈز، جیسے پروڈکٹ کوڈز، مربوط کوڈز اور انٹرلیویڈ کوڈز سے طویل طاقتور کوڈز بنانے کی چند تکنیکیں موجود ہیں۔
شکل 2 ایک دو جہتی پروڈکٹ کوڈ کو دکھاتا ہے جو دو کوڈز C سے بنایا گیا ہے۔1(n1, k1) اور C2(n2, k2) کم از کم فاصلے کے ساتھdمنٹ 1اورdمنٹ 2بالترتیب پروڈکٹ کوڈ کی ہر قطار C1 x C2سی میں ایک کوڈ ورڈ ہے۔1اور ہر کالم C میں ایک کوڈ ورڈ ہے۔2. پروڈکٹ کوڈ (dمنٹ 1dمنٹ 2-1)/2 غلطیاں۔
شکل 3 بیرونی کوڈ C کے ساتھ ایک سطحی مربوط کوڈ کو دکھاتا ہے۔1(n1, k1) کم از کم فاصلے کے ساتھdمنٹ 1اور ایک اندرونی کوڈ C2(n2, k2) کم از کم فاصلے کے ساتھdمنٹ 2. ان کے کنکٹیشن کا کم از کم فاصلہ کم از کم ہے۔dمنٹ 1dمنٹ 2.
شکل 4 ایک انٹرلیوڈ کوڈ کی ترسیل کو ظاہر کرتا ہے۔ ایک (n,k) بلاک کوڈ C کو دیکھتے ہوئے، یہ ممکن ہے کہ ایک (λn، λk) بلاک کوڈ کو آپس میں ملا کر بنایا جائے، جو کہ صرف C میں λ کوڈ ورڈز کو ایک مستطیل صف کی λ قطاروں میں ترتیب دے کر اور پھر سرنی کالم کو بذریعہ منتقل کر کے کالم اگرچہ انٹرلیوڈ کوڈ کا کم از کم فاصلہ ابھی باقی ہے۔dمنٹانفرادی کوڈ C کے طور پر، یہ طویل برسٹ غلطیوں کو λ مختلف کوڈ ورڈز میں توڑ سکتا ہے۔
مزید جدید ایف ای سی کوڈز، جیسے ٹربو کوڈز اور کم کثافت برابری چیک (LDPC) کوڈز، ماہرین تعلیم کے ذریعہ ایجاد کیے گئے ہیں اور شینن کی حد (یا چینل کی صلاحیت) تک پہنچنے کے لیے پچھلی کئی دہائیوں میں صنعت نے اپنایا ہے۔ تاہم، ان کی بہترین کارکردگی کے فوائد عام طور پر بڑے انکوڈنگ/ڈی کوڈنگ کی پیچیدگی اور تاخیر سے ادا کیے جاتے ہیں۔
کسی خاص مواصلاتی نظام کے لیے مناسب FEC کوڈ اور کوڈنگ اسکیم کا انتخاب کرتے وقت غور کرنے کے لیے چار اہم عوامل ہیں۔ اعلی تھرو پٹ کو برقرار رکھنے یا نمایاں طور پر بڑھتے ہوئے لنک کی شرح سے بچنے کے لیےکوڈ کی شرحاعلی ہونے کی ضرورت ہے. چینل کے نقصان کی تلافی کے لیے یا ریسیور میں فیصلہ سلائسرز پر شور کے تناسب (SNR) یا بٹ ایرر ریٹ (BER) کی ضروریات میں نرمی کے لیےکوڈنگ فائدہمطلوبہ ہے. تاہم FEC کی خرابیاں ہیں۔کوڈنگ میں تاخیراورکوڈنگ کی پیچیدگیاس سے ٹرانسمیشن کا وقت اور سسٹم پاور/ لاگت میں اضافہ ہوگا۔
سیریل لنک سسٹمز کے لیے ایف ای سی ایپلی کیشنز
وائر لائن کمیونیکیشن سسٹمز کے لیے FEC ٹیکنالوجی کی زمین کی تزئین کو شکل 5 میں دکھایا گیا ہے اور اس میں برقی اور آپٹیکل دونوں لنکس شامل ہیں۔ برقی روابط کے لیے، صنعت نے حال ہی میں 25 Gb/s سے 50 Gb/s لنک ڈیٹا کی شرحوں میں منتقلی کے دوران دو سطحی سگنلنگ فارمیٹ (NRZ) سے فور لیول سگنلنگ فارمیٹ (PAM4) میں سگنلنگ فارمیٹ اپ ڈیٹس کو شامل کیا ہے۔
PAM4 SerDes کے ڈیزائن کے بڑے چیلنجوں میں سے ایک NRZ پر PAM4 کا پتہ لگانا جرمانہ ہے، تقریباً 9.54 dB یا اس سے بھی زیادہ اگر ملٹی لیول سگنل کراسنگ کی وجہ سے افقی مارجن کی کمی پر غور کیا جائے۔ لہذا، FEC اس پتہ لگانے کے جرمانے کو پورا کرنے کے لیے PAM4 سسٹم کے حل کا ایک اہم حصہ بن جاتا ہے۔ RS (544, 514, 15) FEC، جسے KP4 FEC بھی کہا جاتا ہے، PAM{10}} لنکس میں بڑے پیمانے پر اپنایا گیا ہے۔ یہ 200/400G ایتھرنیٹ سسٹمز کو 7dB تک کوڈنگ حاصل کرنے کے ساتھ فراہم کرتا ہے، جبکہ لاگت کے طور پر سینکڑوں نینو سیکنڈز (این ایس) کا لیٹنسی جرمانہ شامل کرتا ہے۔ زیادہ حاصل کرنے والے ایف ای سی کوڈز جیسے کم کثافت برابری چیک (LDPC) کوڈز اور ٹربو پروڈکٹ کوڈز (TPC) کو عام طور پر کوڈنگ میں تاخیر اور پیچیدگی کی لاگت کے ساتھ طویل فاصلے کے آپٹیکل ٹرانسمیشن سسٹمز کے لیے سمجھا جاتا ہے۔ کم لیٹنسی ایپلی کیشنز کے لیے، معتدل کوڈنگ فائدہ اور پیچیدگی کے ساتھ مختصر سادہ بلاک کوڈز استعمال کیے جا سکتے ہیں۔