مدولاسیون کد پالس (PCM) چیست؟ — از صفر تا صد

در مطالب قبلی مجله فرادرس به بیان انواع مختلفی روشهای مدولاسیون آنالوگ مانند مدولاسیون دامنه، مدولاسیون فاز، مدولاسیون فرکانس و نیز تکنیکهای مدولاسیون DSBSC و مدولاسیون SSBSC پرداختیم و با مزایا و نیز معایب هر یک آشنا شدیم. همچنین ضرورت استفاده از سیستم مخابرات دیجیتال و بخشهای مختلف آن را معرفی کردیم. در این مطلب قصد داریم به بررسی یک نوع از روشهای مدولاسیون دیجیتال بپردازیم که به آن «مدولاسیون کد پالس» (Pulse Code Modulation) یا به اختصار PCM میگویند.
مدولاسیون کد پالس
مدولاسیون در واقع به فرایند تغییر یک یا چند پارامتر از سیگنال حامل به صورت متناظر با مقادیر لحظهای سیگنال پیام اطلاق میشود. سیگنال پیام، سیگنالی است که در کاربردهای مخابراتی مبادله میشود. همچنین سیگنال حامل یک سیگنال فرکانس بالا است که هیچ اطلاعات مفیدی در خود ندارد و برای ارتباطات راه دور مورد استفاده قرار میگیرد. تکنیکهای مدولاسیون بسیار متنوعی وجود دارند که بر حسب نوع پارامتر تغییر یافته در سیگنال حامل طبقهبندی میشوند. یکی از تکنیکهای مدولاسیون دیجیتال، تکنیک مدولاسیون کد پالس یا PCM نام دارد.
مدولاسیون کد پالس با هدف تبدیل اطلاعات یک سیگنال آنالوگ به دنبالهای از دادههای باینری یا به عبارت دیگر صفر و یکها مورد استفاده قرار میگیرد. بنابراین در خروجی مدولاسیون کد پالس یک دنباله باینری تولید میشود. در این روش، سیگنال آنالوگ اصلی را میتوانیم از طریق دمدولاسیون مجددا به دست آوریم. دو نوع مدولاسیون کد پالس وجود دارد. این دو نوع عبارjند از: «مدولاسیون کد پالس تفاضلی» (Differential Pulse Code Modulation) یا DPCM و مدولاسیون کد پالس تطبیقی (Adaptive Differential Pulse Code Modulation) یا ADPCM. در تصویر زیر سیگنال آنالوگ ورودی و نیز سیگنال خروجی مدولاسیون کد پالس یا PCM نشان داده شده است.
در مدولاسیون کد پالس، به جای یک قطار پالس، یک سری اعداد یا ارقام تولید میشوند و به همین دلیل به این فرایند، یک روش مدولاسیون دیجیتال گفته میشود. هر یک از رقمهای تولید شده در کد باینری خروجی، نشان دهنده دامنه تقریبی سیگنال نمونه برداری شده در یک لحظه خاص هستند. در مدولاسیون کد پالس، سیگنال پیام توسط رشتهای از پالسهای کدگذاری شده نمایش داده میشود. در واقع مدولاسیون کد پالس، سیگنال پیام را با سیگنالی دیجیتالی نمایش میدهد که هم در محور زمان و هم در محور دامنه گسسته با زمان است.
قسمت فرستنده در سیستم مدولاسیون کد پالس دارای سه بلوک اصلی است. «نمونهبرداری» (Sampling)، «کوانتیزاسیون» (Quantizing ) و «کدگذاری» (Encoding) سه مرحله اساسی در مدولاسیون کد پالس محسوب میشوند. در تصویر زیر بلوک دیاگرام یک سیستم مدولاسیون کد پالس نشان داده شده است که شامل بلوکهای اساسی فرستنده و گیرنده و کانال است.
توجه کنید که یک فیلتر پایین گذر قبل از بلوک نمونه برداری قرار داده شده است تا از تداخل فرکانسی (Aliasing) سیگنال پیام جلوگیری به عمل آید. بر اساس آنچه در بلوک دیاگرام فوق دیده میشود، مهمترین عملیات در بخش گیرنده، تولید مجدد سیگنالهای معیوب و ضعیف، دیکود کردن و بازسازی قطار پالس کوانتیزه شده است. قسمتهای مختلف سیستم مدولاسیون کد پالس در ادامه بیشتر توضیح داده میشوند.
فیلتر پایین گذر
فیلتر پایین گذر در این سیستم المانهای فرکانس بالا در سیگنال آنالوگ ورودی را حذف میکند. این فرکانسها بالاتر از بزرگترین فرکانس سیگنال پیام هستند. در واقع این کار برای جلوگیری از وقوع پدیده اختلاط فرکانسی انجام میگیرد.
نمونه بردار
نمونه برداری یک تکنیک است که به ما کمک میکند، دادههای نمونه را از مقادیر لحظهای سیگنال پیام جمعآوری کنیم. در واقع نمونه برداری باید به صورتی انجام شود که بتوان سیگنال اصلی را مجددا بازسازی کرد. توجه کنید که بر اساس قضیه نمونه برداری، «نرخ نمونه برداری» (Sampling Rate) باید بزرگتر از دو برابر بزرگترین فرکانس موجود در سیگنال پیام باشد.
در واقع نمونه برداری فرایند اندازهگیری دامنه یک سیگنال پیوسته با زمان در فواصل و بازههای گسسته است. با انجام نمونه برداری، یک سیگنال پیوسته در زمان به یک سیگنال گسسته در زمان تبدیل میشود. به عنوان مثال، یک سیگنال صوتی را میتوان با استفاده از نمونه برداری، به دنبالهای از نمونهها تبدیل کرد. یک نمونه، برابر با یک مقدار یا مجموعهای از مقادیر در یک نقطه از زمان یا فضا است. نمونه بردار وظیفه دارد این نمونهها را از یک سیگنال پیوسته با زمان استخراج کند.
یک نمونه بردار ایدهآل، زیرسیستمی است که نمونههای تولید شده توسط آن با مقادیر لحظهای سیگنال پیوسته در زمان اصلی در نقاط خاص زمانی برابر باشند. در طول فرایند نمونه برداری، یک سیگنال مدولاسیون دامنه پالس با قلههای صاف (Flat- Top Pulse Amplitude Modulated) یا PAM به دست میآید. در تصویر زیر نمایی از یک سیگنال پیوسته در زمان و سیگنال گسسته نمونه برداری شده نشان داده شده است.
فرکانس نمونه برداری $$ F_S $$ برابر با تعداد میانگین نمونهها بر ثانیه است که با نرخ نمونه برداری نیز شناخته میشود. بر اساس قضیه «نمونه برداری نایکوئیست» (Nyquist Theorem) نرخ نمونه برداری باید حداقل دو برابر بزرگترین فرکانس سیگنال باشد. این نرخ نمونه برداری برای جلوگیری از پدیده تداخل سیگنال در نظر گرفته شده است.
اگر فرکانس نمونه برداری بسیار بزرگتر از نرخ نایکوئیست باشد، پدیده «بیش نمونه برداری» (Oversampling) اتفاق میافتد. البته توجه کنید که به لحاظ تئوری یک سیگنال با پهنای باند محدود، در صورتی قابل بازسازی است که با نرخ بالاتر از نرخ نایکوئیست نمونه برداری شود.
اگر فرکانس نمونه برداری کمتر از نرخ نمونه برداری نایکوئیست باشد، آنگاه پدیده «زیر نمونه برداری» (Undersampling) اتفاق میافتد. اساسا دو تکنیک مختلف برای نمونه برداری وجود دارد. یکی از این تکنیکها، «نمونه برداری طبیعی» (Natural Sampling) و دیگری «نمونه برداری بالا مسطح» (Flat-top Sampling) نام دارد.
کوانتیزاسیون
به فرایند کاستن از بیتهای اضافه سیگنال و محدود کردن دادهها اصطلاحا کوانتیزاسیون میگویند. زمانی که یک خروجی نمونه برداری شده به کوانتیزر اعمال میشود، بیتهای افزونگی را حذف میکند و مقادیر را فشرده میکند. در فرایند کوانتیزاسیون، یک سیگنال نمونه برداری شده به یک نمونه دیجیتال تبدیل میشود که دامنه آن فقط میتواند یک مجموعه از پیش تعیین شدهای از مقادیر کوانتیزه شده را به خود بگیرد.
کوانتیزاسیون را از طریق تقسیم کردن بازه مقادیر محتمل نمونههای سیگنال آنالوگ به تعدادی سطوح مشخص انجام میدهند. سپس مقدار مرکزی هر سطح به یک نمونه اختصاص داده میشود. بنابراین کوانتیزاسیون مقادیر نمونههای آنالوگ را به نزدیکترین مقدار کوانتیزاسیون تقریب میزند. پس تقریبا تمام نمونههای کوانتیزه شده، با نمونههای اولیه و اصلی به اندازه کمی متفاوت خواهند بود. به این مقدار اختلاف، خطای کوانتیزاسیون میگویند. نتیجه وجود خطای کوانتیزاسیون، شنیده شدن صدای نویز خش خش هنگام پخش یک سیگنال تصادفی است که نمونههای آنالوگ آن به اعداد باینری ۰ و ۱ تبدیل شدهاند.
در بیشتر مواقع از «کوانتیزرهای یکنواخت» (Uniform Quantizers) استفاده میکنیم. یک کوانتیزر یکنواخت زمانی قابل استفاده است که مقادیر نمونهها در یک بازه محدود باشند. بازه کلی دادهها به $$ 2 ^ n $$ سطح تقسیم میشود. بنابراین فاصله بین دادهها برابر با L است. در نتیجه مطابق با تصویر زیر، طولهای یکسانی برابر با Q خواهند داشت. در این حالت به Q «اندازه گام کوانتیزاسیون» (Quantization Step Size) یا «بازه کوانتیزاسیون» (Quantization Interval) میگویند. در کوانتیزاسیون یکنواخت هیچ خطای کوانتیزاسیونی وجود ندارد.
همان طور که میدانیم، $$ L = 2 ^ n $$ است، بنابراین $$ Q = (F _ { max } – F _ { min}) / L $$ صادق خواهد بود. بازه i به مقدار مرکزی نگاشت شده است. بنابراین ما فقط مقدار اندیس سطح کوانتیزاسیون را ذخیره و یا ارسال میکنیم. مقدار اندیس سطح کوانتیزاسیون به صورت $$ Q _ i (F) = [F – F _ { min } / Q] $$ است. مقدار کوانتیزه شده نیز به صورت $$ Q (F) = Q_i (F) Q + Q / 2 + F _{min} $$ محاسبه میشود.
البته در کوانتیزاسیون یکنواخت مشکلاتی نیز وجود دارد که میتوان به صورت زیر به آنها اشاره کرد:
- این کوانتیزاسیون فقط برای سیگنالهای با توزیع یکنواخت بهینه است.
- سیگنالهای صوتی واقعی بیشتر در اطراف ناحیه صفر متمرکز هستند.
- گوش انسان به مقادیر خطای کوانتیزاسیون در مقادیر کوچک بیشتر حساس است.
برای حل این مشکلات باید از روش «کوانتیزاسیون غیریکنواخت» (Non-Uniform Quantization) استفاده شود. در این روش کوانتیزاسیون، بازهها کوچکتر و نزدیک به صفر هستند.
کدگذاری
در مرحله کدگذاری، انکودرها نمونههای کوانتیزه شده را کدگذاری میکنند. هر نمونه کوانتیزه شده با استفاده از یک قانون در فرایند کددهی، به یک کلمه کد هشت بیتی تبدیل میشود.
بیت اول را «باارزشترین بیت» (MSB) میگویند. این بیت علامت نمونه را تعیین میکند. اگر این بیت مقدار ۱ داشته باشد، نشان دهنده علامت مثبت و اگر مقدار صفر داشته باشد، نشان دهنده علامت منفی است.
بیت دوم و سوم و چهارم، محل مقادیر نمونهها را تعریف میکنند. این سه بیت با یکدیگر برای نمونههای مثبت یا منفی سطح پایین، یک منحنی خطی را شکل میدهند.
بیتهای شماره پنج و شش و هفت و هشت را بیتهای کم ارزش یا LSB میگویند. این بیتها نشان دهنده یکی از سگمنتهای مقادیر کوانتیزه شده است. هر سگمنت به ۱۶ سطح کوانتومی تقسیم شده است.
تکرار کننده، دیکورد و فیلتر بازسازی کننده
همان طور که در بلوک دیاگرام مدولاسیون کد پالس نشان داده شده است، در این سیستم یک بلوک «تکرار کننده مولد» (Regenerative Repeater) نیز وجود دارد. این قسمت موجب افزایش قدرت سیگنال میشود. در خروجی کانال مخابراتی نیز یک بلوک تکرار کننده مولد قرار داده شده است تا تلفات سیگنال را جبران کند و سیگنال را مجددا بازسازی کند و نیز این بلوک موجب افزایش توان سیگنال میشود.
بلوک دیگری که در یک مدولاسیون کد پالس مورد استفاده قرار میگیرد، دیکودر نام دارد. مدار دیکودر شکل موج پالس کدگذاری شده را برای تولید مجدد سیگنال اصلی دیکود میکند. در واقع این بلوک مانند دمدولاتور عمل میکند.
همچنین بلوکی به نام «فیلتر بازسازی کننده» (Reconstruction Filter) در سیستم مدولاسیون کد پالس قرار دارد. بعد از اینکه تبدیل دیجیتال به آنالوگ توسط مدار تکرار کننده مولد و دیکودر انجام گرفت، از یک فیلتر پایین گذر استفاده میشود که فیلتر بازسازی کننده نام دارد. این فیلتر به منظور بازگرداندن سیگنال اصلی مورد استفاده قرار میگیرد.
بنابراین یک مدار مدولاتور کد پالس سیگنال آنالوگ ورودی به آن را تبدیل به یک سیگنال دیجیتال میکند، آن را کد گذاری نموده و بعد از آن نمونه برداری میکند. سپس مدار سیگنال را در فرم یک سیگنال آنالوگ منتقل میکند. تمام این فرایند به صورت معکوس انجام میگیرد تا نهایتا دمدولاسیون کد پالس انجام گیرد و سیگنال اصلی مجددا به دست آید.
انواع مدولاسیون کد پالس
همان طور که گفتیم مدولاسیون کد پالس دو نوع مختلف دارد، مدولاسیون کد پالس تفاضلی یا DPCM و مدولاسیون کد پالس تطبیقی یا ADPCM. در مدولاسیون کد پالس تفاضلی فقط اختلاف بین یک نمونه و سطح قبلی آن کدگذاری میشود. این اختلاف بسیار کوچکتر از مقدار کلی نمونه است. بنابراین فقط به چند بیت نیاز داریم تا دقتی به اندازه دقت مدولاسیون کد پالس به دست آید. به همین دلیل، از تعداد بیتهای مورد نیاز کاسته میشود. به عنوان مثال، در کدگذاری ۵ بیتی، یک بیت برای علامت است و ۴ بیت باقی مانده برای ۱۶ سطح کوانتوم اختصاص داده میشود.
مدولاسیون کد پالس تطبیقی یا ADPCM، با تطبیق سطوح کوانتیزاسیون با مشخصههای سیگنال آنالوگ انجام میشود. در واقع میتوانیم مقادیر را از روی مقادیر نمونههای قبلی تخمین بزنیم. تخمین خطا همانند مدولاسیون کد پالس تفاضلی انجام میگیرد. در مدولاسیون کد پالس تطبیقی ۳۲ کیلو بیت بر ثانیه اختلاف بین مقدار قبلی و مقدار نمونه با ۴ بیت کدگذاری میشود و در نتیجه ۱۵ سطح کوانتومی به دست میآوریم. در این روش، نرخ داده نصف روش مدولاسیون کد پالس معمولی است.
دمدولاسیون کد پالس
در فرایند دمدولاسیون کد پالس دقیقا عکس فرایند مدولاسیون کد پالس انجام میگیرد. دمدولاسیون کد پالس با فرایند دیکود کردن کردن شروع میشود. زیرا پالس PCM در طول انتقال با تداخلات نویز مورد تاثیر قرار گرفته است. بنابراین قبل از اینکه سیگنال مدولاسیون کد پالس را به یک دمدولاتور کد پالس انتقال دهیم، باید سیگنال را به سطح اولیه آن بازگردانی کنیم. برای این کار از یک مقایسه کننده استفاده میشود. سیگنال مدولاسیون کد پالس در واقع یک سیگنال متشکل از امواج پالس سری است. اما برای انجام عمل دمدولاسیون لازم است که امواج موازی باشند.
با استفاده از یک مبدل سریال به موازی، سیگنال پالس سری به یک سیگنال دیجیتال موازی تبدیل میشود. پس از آن، سیگنال به یک دیکودر n بیتی عبور داده میشود. این دیکودر یک مبدل دیجیتال به آنالوگ است. در واقع دیکودر مقادیر اصلی کوانتیزاسیون سیگنال دیجیتال را بازگردانی میکند. این مقادیر کوانتیزاسیون، شامل مولفههای فرکانس بالای زیادی همراه با سیگنال صوتی اصلی هستند. برای اجتناب کردن از سیگنالهای غیر ضروری، در قسمت پایانی از یک فیلتر پایین گذر استفاده میکنیم.
مزایای مدولاسیون کد پالس
مدولاسیون کد پالس برای ذخیره سازی و انتقال سیگنالها مزایای زیادی دارد. به عنوان چند نمونه از این مزایا، میتوان به موارد زیر اشاره کرد:
- یک سیگنال آنالوگ را میتوان از طریق یک سیستم مخابرات دیجیتال با سرعت بالا منتقل کرد.
- با استفاده از یک روش کدگذاری مناسب، احتمال وقوع خطا را میتوان تا حد زیادی کاهش داد.
- از مدولاسیون کد پالس در سیستمهای Telkom، ضبط دیجیتالی صدا، افکتهای ویژه ویدئوهای دیجیتال و پیامهای صوتی استفاده میشود.
- همچنین از مدولاسیون کد پالس در واحدهای کنترل رادیویی، به عنوان فرستنده و نیز گیرنده در ماشینهای کنترلی، قایقها و هواپیماها استفاده میشود.
- یک سیگنال PCM در مقایسه با یک سیگنال معمولی نسبت به نویز و تداخل مقاومت بالاتری دارد.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای مهندسی مخابرات
- آموزش مخابرات ۱
- مجموعه آموزشهای مهندسی الکترونیک
- آموزش مبانی الکترونیک – مفاهیم تئوریک به همراه شبیه سازی عملی و کاربردی
- مدولاسیون DSBSC — از صفر تا صد
- مدولاتور AM — از صفر تا صد
- مدولاسیون SSBSC چیست؟ — به زبان ساده
^^