مقدمه:
میدانیم که برای دستیابی به مخابرات امن و اینکه اطلاعات دیجیتال بدون خطا و همچنین بدون کم و زیاد شدن بیتها انتقال یابند احتیاج به استفاده از یک سری تکنیکهایی میباشد.
یکی از این تکنیکها به کار بردن کدهای کنترل خطا که به نام کدینگ کانال نیز معروف است می باشد.
بطور خیلی مختصر کد کردن به منظور کنترل خطا به کار بردن حساب شده رقمهای افزون می باشد.
قالبهای تابعی که عمل کدینگ کنترل خطا را انجام می دهند کد کننده کانال و آشکار ساز کانال میباشند.
کد کننده کانال به روش سیستماتیک رقمهائی را به رقمهای پیام ارسال اضافه می کند.
این رقمهای اضافی، در حالی که خود حامل هیچگونه اطلاعاتی نیستند، تشخیص و تصحیح خطا در رقمهای حاصل اطلاعات را برای آشکار سازی کانال ممکن می سازند، تشخیص و تصحیح خطا، احتمال خطای کل سیستم را پائین می آورد.
در این بحث ابتدا به بررسی انواع خطاها و کدینگهای مورد استفاده جهت از بین بردن آنها میپردازیم که از این بین فقط در مورد دو نوع از این کدها ) BCH ,کانوولوشن( توضیح بیشتری داده شده است چرا که این دو نوع کدینگ در بحث EP از اهمیت بالایی برخودار میباشند.
در این بحث ابتدا به بررسی انواع خطاها و کدینگهای مورد استفاده جهت از بین بردن آنها میپردازیم که از این بین فقط در مورد دو نوع از این کدها ) BCH ,کانوولوشن( توضیح بیشتری داده شده است چرا که این دو نوع کدینگ در بحث EP از اهمیت بالایی برخودار میباشند.
شکل 1 تقسیم بندی کلی محافظت الکترونیک در شاخه کخابرات و زیر شاخه مربوط به کدینگ را نشان میدهد همان طور که مشاهده می شود انواع کدینگ به دو دسته اصلی کدهای بلوکی و کانولوشن تقسیم بندی می شوند.
در ادامه به بررسی انواع خطاها و کدینگهای مورد استفاده جهت مقابله با آنها به منظور ایجاد محافظت الکترونیکی در شاخه سیستمهای مخابراتی میپردازیم.
شکل 1 : تقسیم بندی محافظت الکترونیک در شاخه کدینگ انواع خطاها: خطاهای موجود در یک کانال مخابراتی به دو دسته : الف) اغتشاش گوسی ب) اغتشاش ضربه ای تقسیم بندی میشوند.
اغتشاش گوسی در طراحی و ارزیابی مدولاتورها و دمدولاتورها برای انتقال مورد توجه اصلی میباشند.
منابع اغتشاشی گوسی شامل اغتشاش حرارتی و ساجمه ای در تجهیزات فرستنده و گیرنده، اغتشاش حرارتی در کانال و تشعشع دریافتی توسط آنتن گیرنده هستند.
اغلب چگالی طیف توان اغتشاش گوسی در ورودی گیرنده سفید است.
خطاهای انتقال ناشی از اغتشاش سفید گوسی طوری هستند که وقوع خطا در یک فاصله خاص ارسال سیگنال، اثری روی کارآئی سیستم در فواصل ارسال سیگنال بعدی ندارد.
کانال گسسته را در این حالت می توان با یک کانال باینری متقارن مورد بحث قرار داده و مدلسازی کرد.
خطاهای انتقال ناشی از اغتشاش سفید گوسی را خطاهای تصادفی مینامند.
نوع دوم اغتشاش که غالباً در یک کانال مخابراتی با آن روبرو هستیم اغتشاش ضربهای است که توسط فواصل آرامش طولانی و به دنبال آن قطارهای اغتشاش با دامنه بالا مشخص می شود.
این نوع اغتشاش ناشی از بسیاری از عوامل طبیعی و ساخت بشر مانند آذرخش و حالت گذاری کلیدهای قطع و وصل می باشد.
هنگامیکه یک قطار اغتشاش اتفاق می افتد، بر بیش از یک بیت یا سمبول اثر می گذارد و معمولاً در سمبولهای انتقال بعدی نوعی تابعیت خطا وجود خواهد داشت.
بنابراین خطاها به صورت قطاری اتفاق میافتند شماهای کنترل خطا که با خطاهای تصادفی سر و کار دارند به کدهای تصحیح تصادفی و شماهای کد کردن که برای تصحیح قطار خطاها طراحی می شوند به کدهای تصحیح قطار خطا موسومند.
انواع کدها: کدهای کنترل خطا غالباً به دو دسته تقسیم می شوند: کدهای قالبی، کدهای کانولوشن کدهای قالبی و کدهای کانولوشن نیز به نوبه خود به چند قسمت تقسیم بندی می شوند که در اینجا اجمالاً به توضیح هر کدام از انواع کدها می پردازیم.
در کدهای قالبی یک قالب مرکب از K بیت اطلاعات توسط یک گروه مرکب از r بیت چک که از روی قالب بیتهای اطلاعات به دست می آیند دنبال می شود.
در گیرنده، بیتهای چک برای بررسی بیتهای اطلاعات در قالب مقدم بر بیت های چک به کار برده می شوند.
در کدهای کانولوشن، بیتهای چک به طور پیوسته لابلای بیتهای اطلاعات قرار میگیرند.
بیتهای چک نه فقط برای بررسی بیتهای اطلاعات در قالب مقدم بر بیتهای چک، بلکه برای بررسی سایر قالبها نیز به کار برده می شوند.
در حالی که امکان بررسی ریاضی کدهای قالبی و کانولوشن به صورت متحد الشکل میسر است اما چنین تشریحی اغلب خیلی پیچیده خواهد بود.
از این رو این دو نوع کد را به صورت جدا تشریح می نمائیم.
کدهای قالبی خطی: در این قسمت به بررسی کدهای قالبی که در آنها قالبهای پیام k بیتی به قالبهای n>k بیتی با افزایش n-k بیت چک به دست آمده از روی k بیت پیام، کد می شوند می پردازیم.
در ابتدا بایستی برای دانستن قدرت تصحیح و تشخیص خطا در کدهای قالبی برخی از اصطلاحات اساسی ککه در تعریف آنها به کار میشوند را معرفی نمایم.
1- اولاً وزن همینگ یک بردار کد C به صورت تعداد مولفه های غیر صفرC تعریف می شود.
2- فاصله همینگ بین دو بردار و به صورت تعداد مولفه های غیر مساوی آنها تعریف میشود.
بالاخره فاصله حداقل یک کد قالبی کوچکترین فاصله بین هر جفت کلمات کد می باشد.
در اینجا برای فاصله یک کد قالبی قضیه ای آورده شده است.
فاصله حداقل یک کد قالبی خطی برابر است با وزن حداقل کلمات غیر صفر موجود در کد.
یک کد قالبی خطی با فاصله حداقل میتواند تا خطا را تصحیح کند و تا ( 1 -) خطا را تشخیص دهد.
بیانگر بزرگترین عدد صحیح کوچکتر یا مساوی می باشد.
کدهای گردشی باینری: کدهای گردشی باینری زیر گروهی از کدهای قالبی خطی بیان شده در بخش قبل را تشکیل می دهند.
کدهای گردشی به دو دلیل جالب توجه اند.
اولاً: کد کردن و محاسبات علامت مشخصه با استفاده از شیفت رجیسترهای ساده همراه با فیدبک به سادگی انجام پذیر است.
ثانیاً: این کدها ساختمان ریاضی نسبتاً ساده ای دارند بطوری که امکان طراحی کد با خواص تصحیح خطای مفید را می دهند می دانیم که کدهای قالبی خطی را می توان با استفاده از نمایش ماتریس بیان نمود.
در اینجا نیز میتوان کدهای گردشی را به صورت چند جلمه ای نمایش داد و برای بیان روش کد کردن و محاسبات مربوط به علامت مشخصه به کار برد.
کدهای گردشی انواع مختلفی دارند که در ادامه به معرفی آنها میپردازیم.
کدهای BCH: دسته مخصوصی از کدهای گردشی کدهای BCH میباشد.
طراحی بهینه کدهای تصحیح مرکب از طرح یک کد با اندازه قالب حدا n ، برای یک اندازه قالب پیام (k) داده شده و برای یک فاصله حداقل مورد نظر می باشد.
الگوریتمهای آشکارسازی برای کدهای BCH با مقادیر قابل قبول تجهیزات، قابل ساختند.
تشریح جزئیات ریاضی کدهای BCH نیاز به استفاده جامع از جبر مدرن دارد.
و بحث جبر مدرن از محدوده این مقوله خارج است.
کدهای قابل کشف منطقی اکثریت: این کدها دسته کوچکتری از کدهای گردشی را نسبت به کدهای BCH تشکیل می دهند.
همچنین از نظر قدرت تصحیح خطا برای اغلب مقادیر طول کلمات و بهره مورد نظر کمی پائین تر از کدهای BCH هستند.
مزیت اصلی کدهای قابل کشف منطقی اکثریت در این است که عملیات آشکارسازی توسط مدارات ساده قابل انجام است.
آشکارساز برای این کدها تشکیل شده از جمع کننده های هنگ 2 و چند لایه از دروازه های اکثریت.
کدهای گردشی کوتاه شده: کدهای گردشی که در بحثهای پیش گفتیم دارای چند جملهای مولدی هستند که مقسوم علیه میباشند عموماً چند جملهای تعداد نسبتاً کمی مقسوم علیه دارد و در نتیجه تعدادی خیلی محدود کدهای گردشی با طول کلمات داده شده موجودند.
برای غلبه بر این مشکل و افزایش تعداد جفتهای (n,k) که برای آنها کدهای مفید قابل ساخت هستند، کدهای گردشی قالبی به فرم کوتاه شده به کار می روند.
در فرم کوتاه شده، i رقم اطلاعات آخر، همیشه برابر صفر فرض می شوند.
( یعنی، آخرین i بیت کلمات کد، با صفر پر میشوند.) این بیتها ارسال نمیشوند و آشکارساز کد گردشی اصلی میتواند کلمات کد کوتاه شده را با پر کردن بردار دریافتی (n-i) تایی با i صفر آشکار سازی مینماید.
از این رو، برای یک کد گردشی (n,k) داده شده، همواره امکان ساخت یک کد گردشی کوتاه شده (n-i,k-i) وجود دارد.
کد گردشی کوتاه شده مجموعهای از کد گردشی است که از روی آن ساخته شده و بنابراین فاصله حداقل و قدرت تصحیح خطای آن لااقل به اندازه مقادیر متعلق به کد اصلی خواهد بود.
عمل کدکردن، محاسبه علامت مشخصه و روشهای اصلاح خطا برای کد گردش کوتاه شده مشابه روشهای بیان شده برای کدهای گردشی است.
در نتیجه کدهای گردشی کوتاه شده تقریباً تمام مزایای ساختمانی و خیلی از مزایای ترکیب ریاضی کدهای گردشی را به ارث میبرند.
کدهای تصحیح خطای قطاری: کد کردن برای کانالهایی که در آنها خطاها در محلهای متفاوت برای یک کلمه بوجود میآیند را توضیح دادیم.
در اینجا کدهای گردشی کوتاه شده را برای تصحیح قطار خطاهای ناشی از اغتشاش ضربهای در کانال مخابراتی بیان میکنیم.
اغتشاش ضربهای باعث میشود خطاهای انتقال به صورت قطارهائی ظاهر شوند.
کدهائی که برای تصحیح خطاهای تصادفی طراحی شدهاند در حالت کلی برای تصحیح خطای قطاری مفید نیستند.
که برای تصحیح خطاهای قطاری نیز کدهای مخصوص به خود آنها وجود دارد که در زیر به معرفی آنها میپردازیم.
کدهای تصحیح خطای قطاری و تصادفی: در غالب سیستمهای عملی، خطاها نه مستقلاً به صورت تصادفی و نه به صورت مشخص قطاری اتفاق میافتند.
در نتیجه کدهای تصحیح خطای تصادفی یا کدهای تصحیح خطای قطاری، برای برخورد با تلفیقی از خطاهای تصادفی و قطاری، غیر مؤثر یا ناکافی خواهند بود.
برای کانالهائی که در آنها هر دو نوع خطا اتفاق میافتد، بهتر است کدهایی را طراحی کنیم که قادر به اصلاح تصادفی و یا خطاهای یک یا چند قطاری باشد.
کدهای کانولوشن و مقایسه آن با کدهای قالبی: اختلاف اصلی بین کدهای قالبی مورد بحث در قسمتهای قبل و کدهای کانولوشن بازگشتی در این است که : الف) در حالت قالبی، تولید یک قالب n رقمی توسط کد کننده واحد زمانی خاص فقط وابسته به k رقم پیام ورودی در همان واحد زمانی است.
ولی در یک کد کانولوشن، تولید یک قالب n رقمی توسط کد کننده در یک واحد زمانی نه فقط وابسته به k رقم پیام ورودی در همان واحد زمانی است، بلکه وابسته به کمتر از آن قالب رقمهای پیام قبلی نیز می باشد.
ب: کدهای کانولوشن را می توان همانند کدهای قالبی برای تشخیص یا تصحیح خطا طراحی کرد.
اما به دلیل اینکه دادهها معمولاً به صورت قالبها مجدداً ارسال میشوند، کدهای قالبی برای تشخیص خطا مناسبتر بوده و کدهای کانولوشن اساساً برای تصحیح خطا بکار میروند کد کردن کانولوشن را میتوان با استفاده از شیفت رجیسترهای ساده انجام داد.
همچنین چند روش علی برای آشکارسازی نیز توسعه یافتهاند.
و همچنین کدهای کانولوشن به خوبی یا بهتر از کدهای قالبی در بسیاری از کاربردهای کنترل خطا عمل میکنند.
تجزیه و تحلیل عملکرد کدهای کانولوشن پیچیده است، زیرا عملیات کرد کردن و آشکارسازی قویاً به همدیگر وابسته اند.
برخی نتایج تحلیلی موجودند ولی فاقد جامعیت هستند.
در حالت کلی برای ارزیابی عملکرد کانولوشن، سادهتر است که عملیات کد کردن، آشکارسازی کانال یک کامپیوتر شبیه سازی کرد.
کد کننده برای کدهای کانولوشن: یک کد کننده برای کدهای کانولوشن دنباله های رقمهای پیام را گرفته و دنباله های رقمهای کد را تولید می کند که هر یک از 8 رقم واحد زمانی، یک قالب پیام مرکب از k رقم وارد کد کننده شده و کد کننده یک قالب کد مرکب از 8 رقم ( انواع آشکار سازهای کدهای کانولوشن: در اینجا فقط به معرفی انواع آشکار سازهای کدهای کانولوشن می پردازیم.
الف) روش جستجوی فراگیرا ب) روش آشکارسازی ترتیبی ج) آشکارسازی منطقی اکثریت یا آستانه