موضوع مقاله: کدگذاری کانال | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # کدگذاری کانال | مقدمه: کد گذاری کانال به عنوان رمزگذاری خطای کنترل خطا (FECC) شناخته می شود ، فرایندی برای تشخیص و تصحیح خطاهای بیت در سیستم های ارتباطی دیجیتال است. | ## بخش 1: کدگذاری کانال | یافتن کدهایی که بتوانند با کمترین تعداد بیت‌های زائد، بیشترین تعداد خطا در بیت‌های اطلاعات منتقل‌شده را تشخیص داده و تصحیح کنند، در کانون توجه کدگذاری (کدینگ) کانال است. از روش‌های کدینگ کانال به‌طور گسترده‌ای در انتقال داده‌ها (مثلاً در شبکه‌ها، مخابرات موبایل و ...)، و نیز ذخیره‌کردن داده‌ها (مثلاً بر روی هارددیسک، دی‌وی‌دی و ...) استفاده می‌شود. کدگذاری جبری (Algebraic Coding) کدگذاری جبری نوعی از کدگذاری کانال است که به بررسی و طراحی کدهایی با "طول کد" محدود می‌پردازد و سه ویژگی طول کدواژه‌ها، تعداد کل کدواژه‌ها و حداقل فاصله دو کدواژه را در نظر می‌گیرد. تبدیل بیت‌های اطلاعات دودویی به یک بلوک کد (کدواژه)، با تولید و اضافه‌کردن r بیت (بیت‌های زائد) به هر بلوک k-بیتی اطلاعات صورت می گیرد. این بر خلاف کدهای بلوکی خطی است که در آنها هر بیت اطلاعات، تنها روی تعداد محدودی از بیت‌های زائد، تأثیرگذار است. کد BCH این کد، خانواده‌ای از کدهای دوره‌ای (Cyclic) با فاصلهٔ همینگ زیاد و الگوریتم‌های جبری تصحیح خطای بسیار مفید است. | ## بخش 2: کدگذاری کانال | در این کد، هر کدواژه به‌صورت یک چندجمله‌ای در نظر گرفته‌ می‌شود که مضربی از چندجمله‌ای مولد کد است. وجود qn−m کدواژه در یک کد چندجمله‌ای روی میدان محدود (GF(q، با طول کد n و چندجمله‌ای مولد (g(x از ویژگی‌های این نوع کد محسوب می‌شود. هنگام کدگشایی، تشخیص خطا از راه تقسیم چندجمله‌ای کد دریافت‌شده بر چندجمله‌ای مولد صورت می‌گیرد، حداقل فاصلهٔ همینگ در این کد، حداقل وزن (weight) کدواژه های غیرصفر آن است. این کدگذاری، روشی ساختاریافته برای تولید کدهایی با قابلیت شناسایی و تصحیح خطاهای مُمتد تصادفی (Burst errors) در سمبول‌های اطلاعات (هر سمبول (Symbol)، چندین بیت است) است، که توانایی تشخیص هر ترکیبی از t سمبول خطادار، و تصحیح تا ⌊t/۲⌋ سمبول را داراست. سمبول‌های منبع اطلاعات به‌صورت ضرایب یک چندجمله‌ای (p(x در نظر گرفته می‌شوند، و n سمبول کد از k سمبول منبع با استفاده از فرانمونه‌برداری (p(x در n> k نقطه متفاوت تولید می‌شود. کدهای RS به صورت کد BCH دوره‌ای است که سمبول‌های کدکننده از روی ضرایب یک چندجمله‌ای به‌دست می‌آید که با استفاده از حاصلضرب p(x) و یک چندجمله‌ای مولد دوره‌ای ساخته می‌شود. | ## بخش 3: کدگذاری کانال | کد همینگ کد همینگ از اولین کدهای باینری (دودویی) برای تشخیص و اصلاح خطا در کانال های نویزی است، و در نسخه اولیه خود سه بیت زائد دارد. این کد می‌تواند بروز یک خطا (یک بیت) را درون هر بلاک کد دریافت‌شده تشخیص داده و آن را تصحیح کند. این کد که در سال ۱۹۵۰ توسط ریچارد همینگ کشف شد، در انتقال اطلاعات به خصوص سیستمهای Teletext استفاده می‌شود. در کد همینگ رابطه ۲ ^ m>= n+۱برقرار است که n تعداد بیتهای موجود در یک بلاک، m تعداد بیتهای کنترلی در بلاک (m=n-k) k=تعداد بیتهای اطلاعاتی در بلاک مثالی از کد همینگ: Coding: ۰۱۱۱۱۱۰۱۰۰۰ داده اصلی k= ۱۱ m= ۴ n=۱۵ توازن بیتهایی را چک می‌کنیم که باقیمانده تقسیم شماره بیت آنها بر ۲، یک باشد توازن بیتهایی را چک می‌کنیم که باقیمانده تقسیم شماره بیت آنها بر ۴، دو یا سه باشد بیتهایی را چک می‌کنیم که باقیمانده تقسیم شماره بیت آنها بر ۸، چهار، پنج، شش یا هفت باشد توازن بیتهایی را چک می‌کنیم که باقیمانده تقسیم شماره بیت آنها بر ۱۶، هشت، نه، ده، یازده، دوازده، سیزده، چهارده یا پانزده باشد حال داده را با یک خطا در بیت یازدهم ارسال می‌کنیم. | ## جمع‌بندی | داده ارسال شده به صورت زیر خواهد بود: ۰۱۱۱۰۱۰۱۱۰۰۰۰۰۱۰ Decoding: توازن بیتهایی را محاسبه می‌کنیم که باقیمانده تقسیم شماره بیت آنها بر ۲، یک باشد:P1=۱ توازن بیتهایی را محاسبه می‌کنیم که باقیمانده تقسیم شماره بیت آنها بر ۴، دو یا سه باشد:P2=۱ توازن بیتهایی را محاسبه می‌کنیم که باقیمانده تقسیم شماره بیت آنها بر ۸، چهار، پنج، شش یا هفت باشد: P3=۰ توازن بیتهایی را محاسبه می‌کنیم که باقیمانده تقسیم شماره بیت آنها بر شانزده، هشت، نه، ده، یازده، دوازده، سیزده، چهارده یا پانزده باشد:P4=۱ توازنهای به دست آمده نشان می‌دهد که بیت یازدهم دارای خطا است: پس طبق الگوریتم بیت یازدهم را معکوس می‌کنیم در نتیجه خواهیم داشت: ۰۱۱۱۱۱۰۱۱۰۰۰۰۰۱۰ پس از حذف بیتهای کنترلی و بیت اضافه شده داده اصلی به دست خواهد آمد.