نقاش هنرمندی را در نظر بگیرید که قصد دارد کپی دیجیتالی از آخرین اثر هنری خود را از کارگاه شخصی اش در تهران به یک گالری در پاریس ارسال کند. در حقیقت، این انتقال اطلاعات با میلیون ها ارسال داده ای که در هر لحظه در سراسر جهان اتفاق می افتد تفاوتی ندارد. اما بررسی دقیق تر مراحلی که نقاش باید به انجام برساند، به طور ملموسی نشان میدهد که امروزه ریاضیات جزء جدایی ناپذیر زندگی روزمره ما شده است.
نقاش باید ابتدا اثر خود را با استفاده از یک اسکنر به میلیونها پیکسل تبدیل و سپس آن را روی یک دیسک کامپیوتری ذخیره کند. هر پیکسل به یک عدد ۲۴ بیتی که رنگ محلی خاص از اثر را مشخص می کند تبدیل شده است و این بیت ها باید به نقطه ای دیگر به فاصله صدها کیلومتر ارسال شوند و روی دیسک دیگری در مقصد قرار گیرند و در نهایت چاپ شوند. برای انجام این مراحل تعداد بسیاری برنامه های کامپیوتری، الگوریتم های ریاضی، قراردادهای بین المللی و همچنین سخت افزارهای متعدد به کار گرفته خواهند شد. آنچه در این کتاب بررسی می شود تنها بخشی از عوامل درگیر در این انتقال داده است.
نخستین عامل مهم زمان است. برای انتقال یک بیت از طریق هر کانال ارتباطی زمانی مشخص لازم است و این زمان در مورد میلیونها بيت طبعا طولانی تر می شود. کم کردن این زمان به معنای کم کردن هزینه انتقال است. بنابراین، کاهش اندازه اطلاعات ارسالی یا «فشرده سازی» اهمیتی خاص دارد.
عامل دوم، که در انتقال و ذخیره اطلاعات نقش دارد، امنیت است. نقاش ما به طور قطع نمی خواهد از اثر هنری او در روند انتقال کپی شود؛ بنابراین، باید داده خود را با استفاده از الگوریتمی مدرن و قوی «رمزنگاری» و سپس ارسال کند. رمزنگاری اطلاعات، به ویژه در مکاتبات سیاسی و عملیات بانکی، مهم اند.
عامل دیگر، صحت اطلاعات دریافتی است. به طور کلی، در هرگونه انتقال اطلاعات ممکن است برخی از بیت ها به درستی منتقل نشوند. نقاشی دریافتی در گالری پاریس احتمالا حاوی پیکسل هایی با رنگ اشتباه خواهد بود. هر چند ممکن است به خطاهای موجود در این نقاشی چندان توجه نشود، اما مسلما در مورد یک سند حقوقی یا یک حساب بانکی چنین چشم پوشی نخواهد شد. «نظریة کدگذاری» شاخه ای از ریاضیات است که روش های کنترل خطاهای به وجود آمده در انتقال اطلاعات را بررسی می کند.
البته توجه کنیم که ماهیت داده می تواند اهمیت عوامل یاد شده را تحت تاثیر قرار دهد. یک فایل داده کوچک می تواند بدون فشرده سازی منتقل شود. یک پیام متنی، حتی با خراب شدن چند کاراکتر، می تواند به راحتی خوانده شود. یک پیام الکترونیکی معمولی و غیر مهم در دست دیگران خطری ایجاد نمی کند و نیازی به رمزنگاری آن نیست. اما در هر حال فشرده سازی، رمزنگاری و کدگذاری مثال هایی از سه حوزه نوین ریاضی هستند که در مسئله ارتباطات دیجیتال نقشی کلیدی دارند.
استفاده از رمزنگاری به گذشته های بسیار دور باز می گردد، اما دو علم دیگر نسبتا جدیدند و در مقاله سال ۱۹۴۸ شانون ریشه دارند. در آن مقاله، شانون ثابت کرد ساختارهایی وجود دارد که با استفاده از آنها می توان اثر خطاهای به وجود آمده در انتقال اطلاعات را به دلخواه کم کرد. از آنجا که قضية او به هیچ پرسشی در مورد نحوه ساخت این ساختارها پاسخ نمی داد، مطالعه در مورد کدهای کنترل کننده خطا به یک شاخه فعال تحقیق به نام نظریۂ کدگذاری منجر شد. در حقیقت، این نظریه مثالی بسیار جالب از قدرت کاربردی شاخه های گوناگون ریاضیات مانند جبر، ترکیبیات و هندسه است که مورد توجه ریاضیدانان، متخصصان علوم کامپیوتر و مهندسان است.
در تدریس نظریه کدگذاری به دانشجویان علوم کامپیوتر، معمولا از چهار منبع ;1986 ,Hill) (2004 ,Mac Williams & Sloane , 1998 ; Van Lint , 1999 ; Xing & Ling
به عنوان مرجع درسی استفاده می شود. با توجه به اهمیت مسئله ارتباطات دیجیتال و همچنین علاقه دانشجویان کارشناسی ارشد به تحقیق و مطالعه در این زمینه، نیاز به منابع فارسی کاملا محسوس است. کتاب حاضر تلاشی است در جهت آشنا کردن دانشجویان رشته های مهندسی، علوم کامپیوتر و ریاضی با مبانی نظریۂ کدگذاری.
در سراسر کتاب به جز آشنایی با ریاضیات پایه دانشگاهی، پیش فرض خاصی در مورد معلومات ریاضی خواننده در نظر گرفته نشده است و مقدمات، در صورت لزوم، کاملا توضیح داده شده اند. با توجه به گستردگی موضوع فقط کدهای بلوکی بررسی شده اند. از آنجا که طراحی کدهای «خوب»، از لحاظ نظری و عملی، اهمیت ویژه ای در نظریه کدها داراست، کران های مربوط به پارامترهای کدها، که می توانند معیاری برای بررسی و مقایسه آنها از لحاظ نظری به شمار آیند، بررسی شده و الگوریتم های مربوط به کدگشایی کلاس های گوناگونی از کدها که محکی برای کاربرد عملی هستند نیز در فصول مختلف ارائه شده اند. روش های ساخت کدهای جدید از روی ساختارهای موجود، کدهای غیر خطی، و همچنین خانواده های مهم مانند کدهای همینگ، گولی، رید - مولر، BCH کدهای دوری و رید - سولومون نیز به تفصیل بررسی شده اند.