انواع روش‌هاي کدگذاري (1)



وقتي مي‌خواهيم از دستگاه ديجيتالي داده‌هايي را به دستگاه ديجيتالي ديگري ارسال کنيم، در ساده‌ ترين حالت سيگنال‌هاي ارسالي نيز ديجيتالي خواهند بود. مانند ارسال اطلاعات از کامپيوتر به چاپگر. در اينگونه ارسال‌ها صفر و يک به پالس‌هاي سيگنال تبديل مي‌شوند و سطح ولتاژ نشان‌دهنده مقدار داده است.
1348136136121117175113175261801223712427164
در مقاله "اصول اوليه کدگذاري داده‌ها" دلايل نياز به کدگذاري را توضيح داديدم. مهم ترين اين دلايل، هم گام سازي ميان فرستنده و گيرنده و کاهش ميزان خطاست. فرض کنيد يک ها با ولتاژ hight و صفر ها با ولتاژ low کد شوند. اگر ارسال 8 بيت در رسانه انتقال 1 ثانيه زمان ببرد. و فرستنده با نرخ 8 بيت بر ثانيه داده‌ها را ارسال مي‌کند. اگر به دلايلي، گيرنده در يکي از اين ارسال‌ها 1.2 ثانيه زمان براي خواندن صرف کند. با اين حساب1 بيت اضافي ارسال شده خوانده مي‌شود که متعلق به رشته‌ي بيتي اوليه نيست و اين يک اضافي در هر بار رمز گشايي سبب ايجاد خطا مي‌شود.

براي کد گذاري داده ديجيتال به سيگنال ديجيتال 3 دسته روش اصلي وجود دارد


Unipolar يا تک قطبيPolar يا قطبي
Bipolar يا دو قطبي

Unipolar يا تک قطبي


اين روش کد گذاري از تمام روش‌ها ساده تر است. به اين صورت که براي ارسال سيگنال از ولتاژ صفر براي نشان دادن صفر و از ولتاژ بالا يا پايين (يکي از پلاريته ها) براي نشان دادن يک استفاده مي‌شود. اين روش به دليل استفاده از تنها يک پلاريته، تک قطبي نام گرفته است. در اين روش مشکلاتي چون هم گام سازي به چشم مي‌خورد. 245110922421619213115121682401315317525053
Polar يا قطبي


در اين روش بر خلاف روش قبل که تنها از يکي از سطوح ولتاژ استفاده کرديم، از دو سطح ولتاژ استفاده مي‌کنيم. هر چه تعداد سطوح ولتاژ بيشتر شود، تشخيص دادن کدهاي ارسالي سخت‌تر خواهد شد. اين روش خود سه زير مجموعه معروف دارد. RZ يا بازگشت به صفر (مخفف Return to Zero)
NRZ يا عدم بازگشت به صفر (مخفف Non Return to Zero)
Biphase يا دوفازي

کدگذاري RZ


همان طور که توضيح داديم اگر رشته بيتي شامل تعداد زيادي صفر يا يک پشت سر هم باشد، گيرنده ممکم است در تشخيص آنها دچار خطا شود. يک راه حل ساده اما پر هزينه براي بر طرف کردن اين مشکل، ارسال سيگنال کلاک (سيگنالي که با توجه به آن بيت‌هاي يک و صفر تفسير مي‌شوند) به صورت جداگانه است. يکي از ويژگي‌هاي مهم روش‌هاي کد گذاري سعي در گنجاندن سيگنال کلاک در خود سيگنال داده است. به طوري که سيگنال ارسالي خود عمل کلاک و هم گام سازي را انجام دهد.
براي دست يابي به هدف، سيگنال به ازاي هر بيت بايد تغيير کند. در روش RZ، سيگنال نه تنها به ازاي هر بيت تغيير مي‌کند بلکه در طول يک دوره بيتي نيز تغيير مي‌کند. شکل را ببينيد تا خوب متوجه شويد.
1578711115112514017837236162814334813
همان طور که مشاهده مي‌کنيد، در اين روش براي نشان دادن يک از ولتاژ high به صفر مي‌رويم و براي نشان دادن صفر از ولتاژ low به صفر مي‌رويم. در واقع ما در نيمه هر دوره بيتي بازگشت به صفر داريم.

کد گذاري NRZ


در اين روش باز گشت به صفر نداريم و تغييرات سيگنال تنها در پايان هر دوره بيتي ( مدت زماني که طول مي‌کشد تا يک بيت ارسال شود) رخ مي‌دهد. در اين روش يک را با سطح ولتاژ high و صفر را با سطح ولتاژ low نشان مي‌دهيم.15741513614698312167819822621516625248240
نسخه ديگري از اين روش کد گذاري وجود دارد که به NRZ-I يا NRZ-m (NRZ-mark) مشهور است. اين روش کدگذاري بر مبناي نوع ورودي قبلي است. به اين معنا که اگر در آغاز دوره بيتي 1 داشتيم، در سطح سيگنال تغيير ايجاد مي‌کنيم ولي اگر صفر داشتيم، سطح سيگنال ثبت مي‌ماند و تغيير نمي‌کند. براي درک بهتر حتما تصوير زير را ببينيد.
18773012210522052125163161131052074181127
کد گذاري دو فازي


روش دوفازي پدر اين روش سعي شده مشکلات دو روش قبلي تا حدودي حل شود. خود اين روش به قسمت منچستر (Manchester) و منچستر تفاضلي (Differential Manchester) تقسيم بندي مي‌شود که در مقاله بعدي به توضيح آن خواهيم پرداخت.
ادامه دارد...

فاطمه مجدآبادي
بخش دانش و زندگي تبيان
منابع:
Line codec analyzer
Line codes for digital transmissions