موضوع مقاله: نظریه کدگذاری | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # نظریه کدگذاری | مقدمه: نظریه کُدینگ یا کُدگذاری (با رمزنگاری یا رمزگذاری اشتباه نشود) به بررسی روش‌های کدگذاری اطلاعات می‌پردازد و یکی از موضوعات مهم در بخش‌های مختلف علوم (مثل نظریه اطلاعات، مهندسی برق، ریاضیات و علوم رایانه، انتقال داده) است؛ به این ترتیب که می‌توان با استفاده از آن روش‌های مطمئن برای انتقال داده‌ها طراحی کرد به طوری که تکرارهای بی‌مورد، حذف و خطاها کاهش یابد. | ## بخش 1: نظریه کدگذاری | در علوم مهندسی مانند مهندسی برق و رایانه، در ترجمهٔ واژهٔ «Code» به فارسی باید دقت و احتیاط کرد، و از ترجمهٔ آن به واژه «رمز» خودداری و به همان «کُد» بسنده کرد. چرا که واژهٔ «رمز» در این علوم، معنیِ کاملاً متفاوتی با آنچه که منظورمان از به کاربردن «Code» است، دارد. وی پی برد هنگامی که رایانه از یک عمل رایج نسخه‌برداری می‌کند و با عمل دیگری شروع به کار می‌کند، هرگز نمی‌تواند به حالت اولیه بازگردد. اگر چه برخی از کدهای ساده دارای ساختاری هستند که نیاز زیادی به ریاضیات ندارند، با این حال ویژگی کدها از کشفیات ریاضیات است. دسته‌بندی سه دسته کدگذاری وجود دارد: کدگذاری منبع (فشرده‌سازی داده‌ها) کدگذاری کانال (تشخیص و تصحیح خطای انتقال داده ها) کدگذاری توأم منبع و کانال در مورد اول، کدگذاری منبع، برای انتقال مؤثرتر داده‌ها، آن‌ها را فشرده کند. مثال عملی روزمره آن در اینترنت، وقتی از فُرمَت فایل zip برای انتقال فایل‌های مختلف استفاده می‌کنیم، است. مورد دوم، کدگذاری کانال، بیت‌هایی را به داده‌های مورد انتقال اضافه می‌کند تا آن‌ها را در برابر اختلالات مسیر انتقال (نویز، تداخل) سالم به مقصد برساند. گوشی‌های همراه نیز از نوعی کدگذاری برای تصحیح خطای ناشی از محو شدگی (Fading) سیگنال و نویز، بهره می‌برد. | ## بخش 2: نظریه کدگذاری | اصل کدگذاری منبع اِنتروپی یا آنتروپیِ (Entropy) منبع اطلاعات، بیانگر میزان اطلاعات آن منبع است. اساساً روش‌های کدگذاری منبع تکرارهای بی‌مورد را کم می‌کنند تا با بیت‌های کمتر، اطلاعات بیشتری را منتقل کنند. برنامه‌های فشرده ساز از تکنیک‌های متعددی استفاده میکنند تا به حد آنتروپی منبع یعنی (C(x) ≥ H(x برسند؛ که در آن (H(x انتروپی منبع و (C(x انتروپی فایل پس از پردازش است. ویژگی‌های هر کد بستگی به این دارد که در انتقال آن کد احتمال وقوع چه خطاهایی وجود دارد، برای نمونه در CDهای معمولی خطاهای رایج، خراش‌ها و گرد و غبار هستند. در مقصد، دریافت‌کننده بیت‌ها را بیت به بیت چک می‌کند و آن بیت را که در سه بار تکرار، فراوانی بیشتری دارد به عنوان بیت صحیح برمی‌گزیند. در کدگذاری برای مقابله با خطا بیت های بیشتری را برای ارسال پیام استفاده می کنیم. در صورتی که داده ها قبل از کدگذاری ارسال شوند، احتمال تشخیص یا تصحیح خطا وجود ندارد و به تکرار ارسال پیام نیاز داریم. بنابراین کدگذاری موجب مقاوم تر شدن داده ها نسبت به خرابی و خطا شده و ارسال های تکراری را نیز کاهش می‌دهد. | ## بخش 3: نظریه کدگذاری | روش های کدگذاری نسبت به روش ارسال های تکراری، داری سرعت بیشتری در انتقال پیام هستند. همچنین برای طراحی یک کد مناسب باید به مشخصاتی مانند طول کد، کمترین فاصله بردارهای کد و توانایی کد در تشخیص و تصحیح خطا توجه شود‌. کدهای تصحیح کننده خطا برای تصحیح خطاهای یک پیام هنگام عبور از یک کانال دارای نویز استفاده می شوند. به عنوان مثال ما میخواهیم یک داده باینری را که شامل رشته ای از صفر و یک است از درون یک کانال دارای نویز ارسال کنیم به نحوی که در پیام تغییرات ناخواسته ای ایجاد نشود و به صورت صحیح و قابل اعتماد منتقل شود. کانال در این مثال می تواند یک خط تلفن یا یک لینک رادیویی با فرکانس بالا یا یک لینک ارتباط ماهواره ای باشد. این‌ها میتوانند باعث رخ دادن خطا در انتقال اطلاعات بشوند و سبب شود گیرنده پیام متفاوت با آنچه فرستنده ارسال کرده دریافت کند. هدف از کد تصحیح خطا، ایجاد افزونگی در کدگذاری داده است تا پیام اصلی بتواند بازیابی شود چنانچه خطاهای زیادی رخ نداده باشد. | ## جمع‌بندی | یک کد می‌تواند طوری طراحی شود که به راحتی جابجایی فاز (موج) را تشخیص دهد و تصحیح کند، و اینکه از یک مسیر چند سیگنال را بفرستد.