طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK

قسمت 5
GNU Radio5
مشاهده سایر جلسات آموزش
29 بازدید
۱۴۰۵-۰۶-۱۱
18 دقیقه
  • نویسنده: milad seif
  • درباره نویسنده: ---

تحت شرایط عملی، علاوه بر نویز، چالش‌های خیلی مهم دیگری نیز وجود دارد که از جمله‌ی آن‌ها می‌توان به افست فرکانسی و زمانی و چند مسیرگی اشاره کرد، افست فرکانسی علت ایجاد آن به دو صورت می‌باشد، اول اینکه ممکن است فرستنده و گیرنده، یکی یا هر دو، در حالت حرکت باشند که به این نوع افست فرکانسی، Doppler Shift گفته می‌شود، علاوه بر این عامل دیگری که باعث افست فرکانسی می‌شود، این است که فرستنده و گیرنده‌های ما داری oscillator های متفاوتی هستند، به عبارت‌دیگر همه oscillator های دستگاه‌های RF دارای دقتی هستند که بر حسب ppm بیان می‌شود، به عنوان مثال برای درک بهتر ما می‌خواهیم در فرکانس 900 مگاهرتز سیگنالی رو ارسال و دریافت کنیم، در صورتی که Hack RF ما دارای دقت طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK و RTL-SDR ما دارای دقت طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  باشد. حداکثر افست فرکانسی ما برابر است با:

طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK

در نهایت در بدترین حالت افست فرکانسی ما برابر است با:

طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK

ولی نکته‌ای که وجود دارد این است که Doppler Shift، نسبت به افست فرکانسی ناشی از oscillatorها  دارای افست فرکانسی به‌شدت کمتری است، البته دقت شود تنها زمانی این مقدار خیلی زیاد می‌شود که بخواهیم بین یک ماهواره LEO و یک ایستگاه زمینی ارتباط برقرار کنیم. اکنون برای برطرف‌کردن این موضوع از FFT کمک می‌گیریم و تا حدود زیادی می‌توانیم موضوع افست فرکانسی را حل کنیم.

طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSKهمانطور که در شکل فوق مشاهده می‌کنید فرکانس حامل 915 مگاهرتز و نرخ نمونه‌برداری یا به عبارتی در اینجا پهنای‌باند، برابر با 1 مگاهرتز است وقتی که تبدیل فوریه گرفته می‌شود همانطور که در مثال قبل مشاهده کردید سیگنال باید فرکانس مرکزی‌اش صفر باشد اما در واقعیت به علت افست‌های فرکانسی، به جای این که فرکانسی مرکزی آن صفر هرتز باشد به عنوان مثال 25 کیلوهرتز است، بنابراین ما با استفاده از تبدیل فوریه پیک سیگنال را به دست ‌می‌آوریم و بعد از به دست آوردن پیک سیگنال، فرکانسی که در آن پیک رخ داده است را به دست می‌آوریم سپس با استفاده از بلوکی به نام shift frequency این افست را حذف می‌کنیم، نکته‌ای که وجود دارد این است که ما تا بلوک Argmax مقدار افست فرکانسی را به دست می‌آوریم اما داده‌ای که ما به دست آوردیم از صفر شروع می‌شود تا اندازه FFT، برای اینکه این مقدار را به فرکانس مورد نظر تبدیل کنیم باید به صورت زیر عمل کنیم:

طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK

 

که این عملیات با استفاده از دو بلوک Multiply const و Add const انجام‌گرفته شده است. در ادامه نکته‌ای که وجود دارد و آن به تصمیم کاربر بستگی دارد و آن این است که می‌توان افست فرکانسی سیگنال را هر لحظه به دست آورد و این افست فرکانسی را با استفاده از بلوک frequency shift از بین برد یا خیر برای بار اول که افست فرکانسی به دست آمد دیگر عملیات به‌روزرسانی انجام نگیرد که هر کدام یک سری معایب و مزایا دارند، عیب حالت دوم این است که ممکن است در ابتدا پیک سیگنال به‌اشتباه تشخیص داده شود، ولی حالت اول سربار محاسباتی بالاتر و همچنین پایداری کمتری دارد؛ ولی در صورت خطا توان اصلاح آن را دارا می‎‌باشیم.

از موارد دیگری که باید به آن اشاره کرد هر چه‌قدر اندازه FFT مقدارش بیشتر باشد دقت تشخیص افست فرکانسی بیشتر است، ولی بااین‌وجود دارای سربار محاسباتی بیشتری می‌باشد.

در ادامه نکته خیلی مهمی که باید به آن اشاره کرد دربارة مدولاسیون‌های دیجیتال BPSK، QPSK و… می‌باشد و آن این است، فرض کنید که سیگنال طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK ما، که یک سیگنال باند پایه می‌باشد،  از مدلاسیون BPSK برای انتقال داده‌ استفاده می‌کند و بعد از گذر از کانال، گیرنده چنین سیگنالی را دریافت خواهد کرد:

طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK

درصورتی‌که نویز را نادیده بگیریم، و سیگنال دریافتی را در خودش ضرب کنیم اثر مدولاسیون خنثی می‌شود.

طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK

 فقط نکته‌ای که وجود دارد این است که افست فرکانسی ما هم دو برابر شده است، بنابراین در محاسبات برای حذف افست فرکانسی، افست فرکانسی به دست آمده را باید بر دو تقسیم کرد. در مورد مدلاسیون‌های دیگری مانند QPSK در اصل باید سیگنال دریافتی را چهار بار در خودش ضرب کرد که این اتفاق بیافتد، برای درک بهتر ریاضیات این موضوع بهتر است.

در ادامه به موضوع فرستند مدولاسیون BPSK اشاره خواهیم کرد در ابتدا بلوک دیاگرام فرستنده به‌صورت زیر می‌باشد.

 

شکل ‏3‑38 فرستنده مدلاسیون BPSK یا استفاده از بلوک Constellation Modulator

شکل ‏3‑38 فرستنده مدلاسیون BPSK یا استفاده از بلوک Constellation Modulator

همان‌طور که مشاهده می‌کنید با استفاده از بلوک message strobe پیام دلخواهی که می‌خواهیم برای گیرنده ارسال کنیم را با استفاده از این بلوک تعریف می‌کنیم و به‌صورت زیر عمل می‌کنیم:

شکل ‏3‑39 نحوه مقداردهی بلوک message strobe

سپس داده‌های ما وارد بلوک سفارشی، packet format می‌شود، و به‌صورت زیر این بلوک سفارشی کدنویسی شده است:

شاید برای شما مفید باشد:
void در آردوینو

شکل ‏3‑40 قسمت اول کد بلوک سفارشی packet format

این کد ادامه دارد؛ ولی برای سادگی ابتدا این کد رو توضیح می‌دهیم و سپس به دنبال آن، مابقی کد را آورده و آن را موردبررسی قرار می‌دهیم.

شکل ‏3‑41 یکی از انواع، فرمت ارسال داده

شکل ‏3‑41 یکی از انواع، فرمت ارسال داده

به شکل فوق توجه کنید، ساختار یک packet به‌صورت فوق است، و تقریباً بر اساس این ساختار ما داده‌های خود را می‌خواهیم ارسال کنیم. درصورتی‌که این موارد حداقلی رعایت نشود ما نمی‌توانیم داده‌ها را در گیرنده به‌درستی دریافت کنیم و اما کد به‌صورت زیر می‌باشد. ابتدا یک سری داده header با مقادیر  طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK تولید می‌کنید و این مقادیر رو 16 بار تکرار می‌کنید، سپس نوبت به تولید داده‌های footer می‌رسد و دو نوع داده footer تولید کرده‌ایم که یکی از آن‌ها دارای مقادیر مشابه header می‌باشد با این تفاوت که به‌جای این که 16 بار تکرار شود 128 بار تکرار شده است و سپس footer دوم دارای مقادیر صفر می‌باشد که 896 بار تکرار شده است.

در ادامه داده‌های پیامی که می‌خواهیم ارسال کنیم فراخوانی شده و طول آن محاسبه شده و در نهایت ساختار کلی پیام ارسالی ما به‌صورت زیر می‌باشد.

شکل ‏3‑42 قسمت دوم کد بلوک سفارشی packet format

در ابتدا داده‌های مربوط به header قرار می‌گیرد سپس یک سری داده به نام access code به پیام اضافه شده و سپس طول داده‌های Payload یا داده‌های که می‌خواهیم ارسال کنیم به packet  اضافه می‌شود و این عمل دو بار تکرار می‌شود و سپس داده‌های payload ما اضافه شده و در نهایت داده‌های footer به packet اضافه شده نکته‌ای که وجود دارد صفرهای ارسالی در آخر packet یکی از کاربرد‌های آن به‌عنوان guard band می‌باشد که می‌تواند باعث شود داده‌های ما در برابر تداخل مقاوم شوند.

در ادامه داده‌ها از بلوک PDU to tagged stream عبور داده می‌شوند به این صورت که داده‌ها از PDU به stream تبدیل شده، و سپس داده‌‌ها با استفاده از بلوک constellation modulator ارسال می‌شوند در این بلوک اتفاقات خاصی می‌افتد اولین مورد پارامتر sample per symbols که برابر با 8 می‌باشد همانطور که در مثال قبلی گفته شد. ولی تفاوتی که در اینجا وجود دارد مفهومی به نام شکل‌دهی پالس می‌باشد. با توجه به مرجع فرض کنید برای سادگی کار ما یک سری داده را با استفاده از مدلاسیون PAM می‌خواهیم ارسال کنیم که این سیگنال طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  می‌باشد، و سطح سیگنال را با طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  نمایش می‌دهیم همانطور که می‌دانید در صورتی که ما در حوزه زمان یک پالس مستطیلی ارسال کنیم در حوزه فرکانس یک sink خواهیم داشت، که تبدیل فوریه آن به صورت زیر می‌باشد:

طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK

جای که طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  می‌باشد، بنابراین طیف سیگنال به وسیله‌ی  طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK که تبدیل فوریه پالس  طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  می‌باشد تعیین می‌شود، که طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  یک پالس مستطیلی با دامنه یک و عرض طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  می‌باشد. بنابراین  طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK که 95 درصد توان آن در پهنای باند طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  نهفته است. برای کاهش پهنای‌باند به  طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK ما به جای اینکه از پالس مستطیلی استفاده کنیم از پالس طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  که به آن sink یا به نوعی raised cosine filter گفته می‌شود، استفاده می‌کنیم. بنابراین داریم:

طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK

که طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK یک پارامتر کنترل‌کننده پهنای باند می‌باشد که طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  می‌باشد، نکته‌ای که وجود دارد این است که در صورتی که طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  باشد یعنی تابع ما sink می‌باشد اما در عمل این یک کار نشدنی است زیرا غیر علی می‌باشد، در این صورت پهنای‌باند طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  برای پالس raised cosine filter مدلاسیون PAM برابر با طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  می‌باشد، در شکل زیر پالسraised cosine filter در حوزه زمان با طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK مختلف نشان داده شده است. و root raised cosine یک فیلتر می‌باشد که خیلی شبیه به فیلتر raised cosine می‌باشد که ما معمولا از آن استفاده می‌کنیم.

شکل ‏3‑43 نمایش حوزه زمان شکل‌دهی پالس با استفاده از فیلتر RC [20]

شکل ‏3‑43 نمایش حوزه زمان شکل‌دهی پالس با استفاده از فیلتر RC [20]

نکته‌ای که وجود دارد این است که پالس‌های raised cosine filter در حالت اید‌آل از طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  تا طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  ادامه دارند، اما برای اهداف عملی tails پالس باید کوتاه باشند، مثلا تا k نقطه از اولین عبور از صفر از چپ و راست لوب اصلی ادامه پیدا ‌کند.

نکته‌ای که وجود دارد معمولا به طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK ، roll of factor گفته می‌شود، که در بلوک Constellation Modulator به وسیله پارامتری تحت عنوان Excess BW تعیین می‌شود. از دیگر پارامترهای مهمی که در این بلوک قرار دارد می‌توان به Differential encoding اشاره کرد که پارامتر خیلی مهمی است، و باعث می‌شود در سمت گیرنده ابهام فاز نداشته باشیم. و در نهایت سیگنال ارسال می‌شود. در اینجا باید به یک موضوع بسیار مهم اشاره کرد و آن موضوع گیرنده بهینه می‌باشد، در واقع تئوری گیرنده بهینه بیان می‌کند که برای به حداکثر رساندن نسبت سیگنال به نویز در گیرنده ما باید سیگنال دریافتی را با یک match filter کانوالو کنیم. Match filter یعنی فیلتری مشابه با پالسی که از فرستنده ارسال کردیم، باشد.

بنابراین، همان‌طور که در فرستنده از یک فیلتر root raised cosine استفاده کرده‌ایم در سمت فرستنده نیز به چنین فیلتری نیاز داریم. در اینجا باید به موضوع دیگری به نام polyphase decomposition نیز اشاره کرد، در واقع بسیاری از بلوک‌های که با فیلتر سروکار دارند که یکی از آن بلوک‌های interpolation و decimation می‌باشد، از polyphase استفاده می‌کنند. Polyphase decomposition برای پیاده‌سازی فیلترهای دیجیتال کاربرد بیشتری دارد، زیرا امکان موازی‌سازی محاسبه عملیات کانولوشن را فراهم می‌کند و نسبت به حالت عادی باعث سرعت انجام بیشتر این عملیات می‌شود. ولی سربار محاسباتی را افزایش می‌دهد.

شاید برای شما مفید باشد:
پاسخ به تغییرات ولتاژ + اندازه‌گیری ولتاژهای بیش از ۵ ولت

به مدولاسیون BPSK برگردیم، خود بلوک Constellation modulator به‌صورت پیش‌فرض برای محاسبه کانولوشن از polyphase استفاده می‌کند؛ اما برای درک بهتر این موضوع می‌توان فرستنده مدولاسیون BPSK رو به‌صورت زیر نیز پیاده‌سازی کرد.

شکل ‏3‑44 فرستنده مدلاسیون BPSK با استفاده از بلوک Polyphase arbitrary resampler

شکل ‏3‑44 فرستنده مدلاسیون BPSK با استفاده از بلوک Polyphase arbitrary resampler

و پارامترهای متغیر rrc_tpas_1 به‌صورت زیر می‌باشد.

شکل ‏3‑45 نحوه مقداردهی پارامترهای بلوک Polyphase arbitrary resampler

شکل ‏3‑45 نحوه مقداردهی پارامترهای بلوک Polyphase arbitrary resampler

پارامترهای فوق به این صورت است وقتی که ما از polyphase با Filter،n استفاده می‌کنیم اولین پارامتری که باید تنظیم کنیم مقدار gain می‎‌باشد و با تنظیم gain روی  طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK باعث می‌شود که دامنه سیگنال خروجی این بلوک تقریبا بین منفی و مثبت یک باشد و بیشتر از این نشود چون اگر بیشتر از این مقدار شود وقتی خروجی این بلوک به ورودی بلوکی مانند soapy Hack RF Sink وصل شود Hack RF به اشباع می‌رود.

دومین پارامتر و سومین پارامتر به نوعی مکمل هم هستند دومین پارامتر Sample rate و سومین پارامتر symbol rate می‌باشد ولی معمولا این دو پارامتر را نرمالیزه می‌کنند یعنی به این صورت است که به جای اینکه مقدار sample rate را برابر با symbol rate ضرب در sample per symbol قرار بدهند مقدار آن را برابر با sample per symbol قرار داده و مقدار symbol rate را برابر با یک قرار می‌دهند، پارامتر بعدی نیز roll off factor  می‌باشد. و در نهایت پارمتر نهایی معمولا number taps

طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK

می‌باشد که معمولا مقدار آن  به صورت زیر می‌باشد.

همان‌طور که قبلاً گفته شد بلوک constellation modulator نیز از polyphaseها استفاده می‌کند که به‌صورت پیش‌فرض مقدار filter، برابر با 32 و مقدار number taps برابر با طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK تنظیم شده است.

نکته‌ای که وجود دارد این است که برای این که بتوانیم داده‌ها در حوزه فرکانس به‌صورت پایدار مشاهده کنیم، guard band که داری مقادیر صفر بودند را حذف کردیم و همان‌طور که در شکل زیر می‌بینید، sample rate برابر است با یک مگاهرتز که باتوجه‌به این که sample per symbol برابر با 8 می‌باشد بنابراین symbol rate که در اینجا برابر با bit rate می‌باشد برابر با 125 کیلوهرتز است.

در ادامه حوزه فرکانس آن را مشاهده خواهیم کرد.

شکل ‏3‑46 خروجی حوزه فرکانس مدلاسیون BPSK در سمت فرستنده

شکل ‏3‑46 خروجی حوزه فرکانس مدلاسیون BPSK در سمت فرستنده

باتوجه‌به این که symbol rate برابر با 125 کیلوهرتز  و roll of factor برابر با  می‌باشد بنابراین پهنای باند اشغال شده منفی 6 دسی‌بل برابر خواهد بود:

طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK

و در ادامه حوزه زمان را مشاهده می‌کنید.

شکل ‏3‑47 خروجی حوزه زمان مدلاسیون BPSK در سمت فرستنده

شکل ‏3‑47 خروجی حوزه زمان مدلاسیون BPSK در سمت فرستنده

فقط نکته‌ای که وجود دارد این است که ما اکنون در حالت شبیه‌سازی هستیم و وقتی بخواهیم به‌صورت عملی آزمایش خود را انجام دهیم به بلوکی مانند soapy Hack RF Sink نیاز داریم؛ ولی دقت شود قبل از این که داده‌های خود را برای این بلوک بفرستید بهتر است دامنه سیگنال خود را تنظیم کنید و مقدار بیشینه را روی یک قرار بدهیم در غیر این صورت Hack RF به اشباع می‌رود و آن کارایی مناسب را نمی‌توان از آن انتظار داشت؛ بنابراین می‌توان با قراردادن بلوکی به نام Multi const، مقدار بیشینه را به یک رساند و حداکثر کارایی را انتظار داشت.

اکنون به موضوع گیرنده می‌پردازیم، همان‌طور که در ابتدا گفته شد برای اینکه بتونیم افست فرکانسی را حذف کنیم از FFT کمک گرفتیم و سپس با استفاده از بلوک Frequency Shift توانستیم تا حد قابل‌توجهی افست فرکانسی را حذف کنیم در شکل زیر بلوک دیاگرام گیرنده آورده شده است.

شکل ‏3‑48 گیرنده مدلاسیون BPSK

شکل ‏3‑48 گیرنده مدلاسیون BPSK

اما قبل از این که به ادامه مطالب بپردازیم نیاز است یک سری موضوعات گفته شود و آن این است که در دنیای واقعی وقتی که ما یک داده‌ای را از فرستنده به سمت گیرنده ارسال می‌کنیم دچار افست‌های فازی و فرکانسی و زمانی می‌شود که برای این موضوع طی دو مرحله اقدام می‌شود اولین مرحله اکتساب است که در آن تقریبی از افست‌ها زده می‌شود و سپس در مرحله دوم ردیابی انجام می‌گیرد که در آن به‌صورت جزئی به افست‌ها پرداخته می‌شود. و بنابراین FLL Band-Edge که در ادامه گفته می‌شود و FFT گفته شده نوعی اکتساب هستند که تقریبی از افست فرکانسی را برای ما مشخص می‌کنند.

بعد از بلوک Frequency Shift، بلوکی وجود دارد به نام FLL Band-Edge، کارایی این بلوک همانند FFT می‌باشد و می‌تواند افست فرکانسی را برطرف کند اما کند است، برای درک بهتر این موضوع یک الگوریتم به روزرسانی را در نظر بگیرید که با استفاده یک Step size خودش را به روز‌رسانی می‌کند، نکته‌ای که وجود دارد در صورتی که افست فرکانسی ما مثلا 30 کیلوهرتز باشد زمان می‌برد که این بلوک بتواند افست فرکانسی رو حذف کند و علاوه بر این، نکته‌ای که وجود دارد این است که همانطور که در فرستنده مشاهده کردید ما برای مدتی صفر ارسال می‌کردیم و ارسال صفر یعنی این که ما هیچ داده‌ای را ارسال نمی‌کنیم و در اصل به عنوان guard band استفاده می‌شود در صورتی که این guard band وجود نداشت می‌توانستیم از FFT برای تخمین افست فرکانسی استفاده نکنیم زیرا بعد از مدتی این بلوک افست فرکانسی را حذف می‌کرد اما وجود صفر باعث شد که تداخل بین Symbol کم شود اما وقتی که صفر ارسال می‌شود چون گیرنده ما برای مدتی داده‌ای دریافت نمی‌کند یا به عبارتی صفرهای پشت سر هم دریافت می‌کنند FLL همگرایی خود را از دست می‌دهد و این باعث می‌شود یک سری از داده‌های ما از دست بروند، به همین دلیل ابتدا افست فرکانسی را با استفاده از FFT  بین می‌بریم و سپس با استفاده از بلوک FLL Band-Edge با توجه به این که افست فرکانسی کم است می‌توانیم به سرعت افست فرکانسی را حذف نماییم.

در ادامه پارامترهای این بلوک شرح داده می‌شود. اولین پارامتر و دومین پارامتر که مشخص هستند یعنی Sample per symbol و Filter roll off factor که درباره‌ این پارامترها قبلا صحبت شده است.

شکل ‏3 49 تعیین پارامترهای بلوک FLL Band-Edge

شکل ‏3 49 تعیین پارامترهای بلوک FLL Band-Edge

دو پارامتر دیگر به نام prototype Filter size و Loop bandwidth وجود دارد که معمولاً مقدار Loop bandwidth بین طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK  می‌باشد. در ادامه به پارامتر loop bandwidth بیشتر پرداخته می‌شود.

شاید برای شما مفید باشد:
تبدیل mil به mm در آلتیوم به همراه نکات کاربردی طراحی PCB

بعدازاین بلوک، از بلوک Low Pass filter استفاده شده است نکته‌ای که وجود دارد همان‌طور که دیدید پهنای باند کلی سیگنال ارسالی ما یک مگاهرتز است؛ اما پهنای باند اشغال شده 84 کیلوهرتز بود در صورتی که از Low Pass Filter استفاده نکنیم نویز قسمتی که جز پهنای‌باند اشغال شده نیست وارد سیستم ارتباطی ما می‌شود و نکته‌ای که وجود دارد این است که هر چه قدر پهنای‌باند اشغال شده کمتر باشد نویز کمتری را متحمل می‌شویم اما سرعت انتقال داده کم است بنابراین، ما با استفاده از یک Low Pass Filter نویزهای خارج از باند را حذف می‌کنیم. همانطور که مشاهده می‌کنید فرکانس قطع Low Pass Filter را به صورت زیر محاسبه کرده‌ایم:

طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK

نکته‌ای که وجود دارد Low Pass Filter در شرایط ایده آل به‌صورت یک پنجره مستطیلی می‌باشد؛ ولی در حالت واقعی تقریباً به‌صورت زیر می‌باشد.

شکل ‏3‑50 تعیین محدوده transition band در یک بلوک Low Pass Filter [22]

شکل ‏3‑50 تعیین محدوده transition band در یک بلوک Low Pass Filter [22]

علاوه بر این می‌توان در Gnu Radio با مراجعه منو tools و زدن گزینة Filter Design Tool انواع فیلتر‌ها را با تغییر انواع پارامتر مشاهده کرد، در ادامه، بعدازاین بلوک، بلوکی به نام polyphase clock sink وجود دارد، این بلوک وظیفه حذف افست زمانی و RRC filtering را انجام می‌دهد و یا به عبارتی match filter ما می‌باشد. ما از موضوع Match filtering عبور می‌کنید زیر قبلاً به این موضوع اشاره شده است؛ اما درباره‌ی موضوع حذف افست زمانی برای سادگی کار ما فرض می‌کنیم از شکل پالس مستطیلی استفاده می‌کنیم. به شکل زیر نگاه کنید.

شکل ‏3‑51 ایجاد افست زمانی به علت عدم همزمانی پالس‌های مستطیلی [23]

شکل ‏3‑51 ایجاد افست زمانی به علت عدم همزمانی پالس‌های مستطیلی [23]

همان‌طور که می‌بینید پالس مستطیلی فوق پالس دریافتی می‌باشد و پالس پایینی پالسی است که ما تولید می‌کنیم، همان‌طور که می‌دانید گیرنده مقدار sample rate و symbol rate را می‌داند بنابراین می‌تواند پالسی مانند فرستنده تولید کند، منظور از حذف افست زمانی این است که چه زمانی شروع به نمونه‌برداری کنیم که پالسی که فرستنده می‌فرستد با پالسی که گیرنده تولید می‌کند، زمان شروع آن‌ها با هم مطابقت داشته باشد. به عبارتی پالس فرستنده دقیقاً روی گیرنده بیفتد و این کار با استفاده از یک Phase Locked Loop انجام می‌گیرد و وقتی زمان نمونه‌برداری بهینه پیدا شد عمل match filtering با استفاده از polyphase decomposition انجام می‌گیرد. در ادامه پارامتر‌های این بلوک موردبررسی قرار می‌گیرد.

شکل ‏3‑52 تعیین پارامترهای بلوک polyphase clock sync

شکل ‏3‑52 تعیین پارامترهای بلوک polyphase clock sync

پارامترهای مانند initial phase و maximum rate deviation برای حذف افست زمانی استفاده می‌شود و معمولاً مقدار آن برابر با مقدار پیش‌فرض می‌باشد و output SPS نیز مربوط به زمانی می‌باشد که ما از بلوک Equalization استفاده می‌کنید درصورتی‌که از این بلوک استفاده نمی‌کنیم مقدار آن را برابر یک قرار دهید در ادامه که به موضوع Equalization ورود کردیم این پارامتر بیشتر موردبررسی قرار خواهد گرفت گاهی اوقات نیز به‌جای استفاده از این بلوک از بلوک symbol sink استفاده می‌کنیم که یک بلوک جامع‌تری می‌باشد برای درک کامل این بلوک بهتر است به مرجع رجوع شود. بعدازاین بلوک، بلوک Costas Loop می‌باشد که برای حذف افست فرکانسی و فازی مورداستفاده قرار می‌گیرد البته نکته‌ای که وجود دارد این است این بلوک برای مدولاسیون‌های مانند BPSK، QPSK و مدولاسیون‌های که از جنس PSK هستند مناسب هست و این کار را با استفاده از یک Phase Locked Loop انجام می‌گیرد. پارامترهای این بلوک به‌صورت زیر تنظیم می‌شود.

شکل ‏3‑53 تعیین پارامترهای بلوک costas Loop

شکل ‏3‑53 تعیین پارامترهای بلوک costas Loop

درصورتی‌که از مدولاسیون BPSK استفاده شده مقدار Order برابر با 2 می‌باشد و در صورتی که QPSK باشد این مقدار برابر با 4 است.

نکته‌ای دیگری که وجود دارد این است که معمولاً قبل از حذف افست زمانی بلوکی تحت عنوان AGC قرار می‌گیرد و علت آن این می‌باشد که وقتی ما سیگنالی را از فرستنده به سمت گیرنده ارسال می‌کنید به علت عواملی مانند فاصله، fading (که در ادامه به آن می‌پردازیم)، اثر چند مسیری و داپلر، دامنه سیگنال ورودی در گیرنده می‌تواند در یک محدوده دینامیکی وسیعی تغییر کند، و نکته‌ای که وجود دارد این است که برای اینکه همگام‌سازی به‌درستی کار کند، دامنه سیگنال ورودی نیاز است که بین منفی و مثبت یک باشد، و AGC این کار را انجام می‌دهد. پارامترهای آن را روی مقدار پیش‌فرض قرار دهید. نکته‌ای که وجود دارد این است که این بلوک نیز از یک PLL در ساختار خود استفاده می‌کند، بنابراین خوب است ساختار یک PLL را به‌صورت کلی شرح دهیم.

باتوجه‌به مرجع یک PLL به صورت کلی از سه قسمت Phase error detector، Loop Filter و NCO تشکیل شده است. چند نکته در صورتی که یک PLL، Loop Filter نداشته باشد به عنوان PLL مرتبه اول شناخته می‌شود به همین دلیل، در طراحی زیر، یک PLL مرتبه دوم داریم.

شکل ‏3‑54 ساختار یک PLL مرتبه اول

شکل ‏3‑54 ساختار یک PLL مرتبه اول

همان‌طور که مشاهده می‌کنید پارامترهای مانند ، طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK و … در یک PLL باید مقداردهی شوند اما نیاز نیست ما این پارامترها را مقداردهی کنیم بلکه ما فقط نیاز است به صورت کلی در بلوک‌های که دارای PLL می‌باشند دو پارامتر Damping factor و Loop bandwidth را مقداردهی کنیم سپس بلوک با استفاده از این دو پارامتر مقادیر سایر پارامترها را به دست می‌آورد. البته همه PLLها به این صورت نیستند و این مفاهیم کلی می‌باشند.

در طراحی یک PLL همیشه بین سرعت همگام‌سازی و پایداری باید یک تعادل برقرار شود، اگر مقدار Damping factor را خیلی بالا ببریم سیستم بدون نوسان کار می‌کند ولی کند است، برعکس اگر مقدار Damping factor کم باشد سریع‌تر به مقدار مطلوب می‌رسیم؛ ولی همراه با نوسان است. به‌عنوان‌مثال برای تکنیک مدولاسیون FHSS چون نوسانات بالا است بهتر است مقدار Damping factor کم استفاده کنیم.

پارامتر بعدی فرکانس طبیعی یا طراحی و پیاده‌سازی یک سیستم ارتباطی ارسال متن، مبتنی بر مدولاسیون BPSK می‌باشد و نکته‌ای که وجود دارد PLL در حالت ردیابی مانند یک low pass filter عمل می‌کند. در این حالت فرکانس طبیعی را می‌توان معیاری از Loop bandwidh در نظر گرفت. وقتی که PLL در حالت ردیابی قرار دارد، یعنی سیگنال ورودی در حال تغییر جزئی است، PLL باید این تغییرات را دنبال کند. نکته‌ای که وجود دارد این است که فیلتر پایین گذر فقط سیگنال‌های با تغییرات کند را عبور می‌دهد و تغییرات سریع و نویز را حذف می‌کند، PLL نیز در این حالت فقط سیگنالی که تغییرات آهسته دارد را عبور می‌دهد یا به عبارتی آن را دنبال می‌کند و نویز و پرش‌های سریع را نادیده می‌گیرد، بنابراین Loop bandwidth بزرگتر باعث می‌شود که PLL، تغییرات سریع‌تر را نیز دنبال کند و Loop bandwidth کوچک‌تر یعنی PLL تغییرات کند‌تر را دنبال می‌کند و نسبت به نویز مقاوم‌تر می‌شود.

در ادامه به بلوک constellation decoder می‌رسیم که عکس عمل مدولاسیون BPSK را انجام می‌دهد؛ یعنی داده‌ها منفی یک را به صفر و داده‌های مثبت یک را به یک تبدیل می‌کند و در ادامه از بلوک diffrential decoder استفاده می‌کنیم که علت آن مشخص است و سپس به بلوک correlate access code – Tag stream می‌رسیم اگر یادتان باشد در فرستند به داده‌های payload خود یک سری داده اضافه کردیم مانند access code، header، طول داده‌های payload و… ما در گیرنده با قراردادن مقدار access code در بلوک correlate access code -Tag stream شروع داده رو متوجه می‌شویم و داده‌ها رو دریافت می‌کنیم.

اطلاعات
29
1
0
اشتراک و حمایت
جلسات دیگر
رادیوآماتوری

آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio

profile نویسنده: milad seif متخصص الکترونیک

مقالات بیشتر

slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله

خانواده سیسوگ

سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

profile
Reza گفت :
۱۴۰۵-۰۶-۱۱ ۱۴:۳۴

با سلام
مقاله خوبی بود .متاسفانه در عمل چیپ های انگشت شماری در کار با مودلاسیون psk در بازار موجودند و نهایتا تست رو باید روی sdr card ها انجام داد.

become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله