انواع روشهای کدگذاری (1)
همانطور که در مطلب اصول اولیه کدگذاری دادهها به طور مفصل توضیح دادیم، برای انتقال دادهها چه به صورت دیجیتال و چه به صورت آنالوگ، بسته به نوع محیط انتقال دادههای باید به صورت دیجیتال یا آنالوگ کد گذاری شوند. در این مقاله تلاش بر این است که خوانندگان با تکنیکهای کدگذاری به صورت دقیق تر آشنا شوند.
وقتی میخواهیم از دستگاه دیجیتالی دادههایی را به دستگاه دیجیتالی دیگری ارسال کنیم، در ساده ترین حالت سیگنالهای ارسالی نیز دیجیتالی خواهند بود. مانند ارسال اطلاعات از کامپیوتر به چاپگر. در اینگونه ارسالها صفر و یک به پالسهای سیگنال تبدیل میشوند و سطح ولتاژ نشاندهنده مقدار داده است.
در مقاله "اصول اولیه کدگذاری دادهها" دلایل نیاز به کدگذاری را توضیح دادیدم. مهم ترین این دلایل، هم گام سازی میان فرستنده و گیرنده و کاهش میزان خطاست. فرض کنید یک ها با ولتاژ hight و صفر ها با ولتاژ low کد شوند. اگر ارسال 8 بیت در رسانه انتقال 1 ثانیه زمان ببرد. و فرستنده با نرخ 8 بیت بر ثانیه دادهها را ارسال میکند. اگر به دلایلی، گیرنده در یکی از این ارسالها 1.2 ثانیه زمان برای خواندن صرف کند. با این حساب1 بیت اضافی ارسال شده خوانده میشود که متعلق به رشتهی بیتی اولیه نیست و این یک اضافی در هر بار رمز گشایی سبب ایجاد خطا میشود.
برای کد گذاری داده دیجیتال به سیگنال دیجیتال 3 دسته روش اصلی وجود دارد
• Unipolar یا تک قطبی• Polar یا قطبی
• Bipolar یا دو قطبی
Unipolar یا تک قطبی
این روش کد گذاری از تمام روشها ساده تر است. به این صورت که برای ارسال سیگنال از ولتاژ صفر برای نشان دادن صفر و از ولتاژ بالا یا پایین (یکی از پلاریته ها) برای نشان دادن یک استفاده میشود. این روش به دلیل استفاده از تنها یک پلاریته، تک قطبی نام گرفته است. در این روش مشکلاتی چون هم گام سازی به چشم میخورد.Polar یا قطبی
در این روش بر خلاف روش قبل که تنها از یکی از سطوح ولتاژ استفاده کردیم، از دو سطح ولتاژ استفاده میکنیم. هر چه تعداد سطوح ولتاژ بیشتر شود، تشخیص دادن کدهای ارسالی سختتر خواهد شد. این روش خود سه زیر مجموعه معروف دارد.• RZ یا بازگشت به صفر (مخفف Return to Zero)
• NRZ یا عدم بازگشت به صفر (مخفف Non Return to Zero)
• Biphase یا دوفازی
کدگذاری RZ
همان طور که توضیح دادیم اگر رشته بیتی شامل تعداد زیادی صفر یا یک پشت سر هم باشد، گیرنده ممکم است در تشخیص آنها دچار خطا شود. یک راه حل ساده اما پر هزینه برای بر طرف کردن این مشکل، ارسال سیگنال کلاک (سیگنالی که با توجه به آن بیتهای یک و صفر تفسیر میشوند) به صورت جداگانه است.یکی از ویژگیهای مهم روشهای کد گذاری سعی در گنجاندن سیگنال کلاک در خود سیگنال داده است. به طوری که سیگنال ارسالی خود عمل کلاک و هم گام سازی را انجام دهد.
برای دست یابی به هدف، سیگنال به ازای هر بیت باید تغییر کند. در روش RZ، سیگنال نه تنها به ازای هر بیت تغییر میکند بلکه در طول یک دوره بیتی نیز تغییر میکند. شکل را ببینید تا خوب متوجه شوید.
همان طور که مشاهده میکنید، در این روش برای نشان دادن یک از ولتاژ high به صفر میرویم و برای نشان دادن صفر از ولتاژ low به صفر میرویم. در واقع ما در نیمه هر دوره بیتی بازگشت به صفر داریم.
کد گذاری NRZ
در این روش باز گشت به صفر نداریم و تغییرات سیگنال تنها در پایان هر دوره بیتی ( مدت زمانی که طول میکشد تا یک بیت ارسال شود) رخ میدهد. در این روش یک را با سطح ولتاژ high و صفر را با سطح ولتاژ low نشان میدهیم.نسخه دیگری از این روش کد گذاری وجود دارد که به NRZ-I یا NRZ-m (NRZ-mark) مشهور است. این روش کدگذاری بر مبنای نوع ورودی قبلی است. به این معنا که اگر در آغاز دوره بیتی 1 داشتیم، در سطح سیگنال تغییر ایجاد میکنیم ولی اگر صفر داشتیم، سطح سیگنال ثبت میماند و تغییر نمیکند. برای درک بهتر حتما تصویر زیر را ببینید.
کد گذاری دو فازی
روش دوفازی پدر این روش سعی شده مشکلات دو روش قبلی تا حدودی حل شود. خود این روش به قسمت منچستر (Manchester) و منچستر تفاضلی (Differential Manchester) تقسیم بندی میشود که در مقاله بعدی به توضیح آن خواهیم پرداخت.ادامه دارد...
فاطمه مجدآبادی
بخش دانش و زندگی تبیان
منابع:
Line codec analyzer
Line codes for digital transmissions