پیاده‌سازی مدولاسیون GMSK و Scrambler

قسمت 6
دوره آموزش SDR و GNU Radio قسمت ششم – پیاده‌سازی GMSK و Scrambler
مشاهده سایر جلسات آموزش
10 بازدید
۱۴۰۵-۰۷-۱۴
7 دقیقه
  • نویسنده: milad seif
  • درباره نویسنده: ---

در ادامه به موضوع مدولاسیون GMSK پرداخته می‌شود. این بار از بلوک‌های دیگری برای ارسال داده استفاده می‌شود؛ به‌نوعی این بار از بلوک‌هایی که مربوط به خود GNU Radio هستند استفاده شده است.

پیاده‌سازی مدولاسیون GMSK

در ابتدا فرستنده را مورد بررسی قرار می‌دهیم. همان‌طور که در شکل زیر می‌بینید، با استفاده از بلوک File Source داده‌ها خوانده می‌شوند.

نکته‌ای که وجود دارد این است که متن ارسالی Seif Milad می‌باشد که شامل 10 کاراکتر است. پارامتر مهم دیگری که باید حتماً به‌درستی تنظیم شود، پارامتر Repeat است.

درصورتی‌که مقدار آن Off باشد، چون سرعت ارسال داده بسیار زیاد است، شما چیزی مشاهده نخواهید کرد؛ بنابراین برای آزمایش حتماً پارامتر Repeat را برابر با Yes قرار دهید.


دوره آموزش SDR و GNU Radio قسمت ششم – پیاده‌سازی GMSK و Scrambler

شکل ‏3-55 فرستنده مدلاسیون GMSK

در ادامه با استفاده از بلوک Stream to Tagged Stream، داده‌های خود را برچسب‌گذاری می‌کنیم.

تا کنون درباره داده‌های دیجیتال معمولاً دو نوع گروه‌بندی داشته‌ایم؛ یکی بیت و دیگری بایت. اما این بلوک به این صورت کار می‌کند که مثلاً اگر مقدار Packet Length را برابر با 10 قرار بدهیم، گروه‌بندی داده‌ها به‌صورت 10 بایت، 10 بایت خواهد بود.

بلوک بعدی، بلوک Protocol Formatter می‌باشد. پارامترهای این بلوک به‌صورت زیر تعیین می‌شوند.


دوره آموزش SDR و GNU Radio قسمت ششم – پیاده‌سازی GMSK و Scrambler

شکل ‏3-56 تعیین پارمترهای بلوک Protocol formatter

پیاده‌سازی GMSK و Scrambler

شکل ‏3-57 مقداردهی پارامتر access code

این بلوک داده‌ها را دریافت می‌کند و یک Header بنا بر آنچه ما تعیین می‌کنیم تولید می‌کند. سپس طول داده‌های Payload را به دست آورده و به ابتدای داده‌های Payload اضافه می‌کند. البته این عمل دو بار صورت می‌گیرد.

نکته‌ای که وجود دارد این است که Header یا همان Access Code را می‌توانیم به‌صورت دلخواه تعیین کنیم.

در ادامه با استفاده از بلوک Tagged Stream Mux، به‌ترتیب Header، طول داده‌های Payload و سپس داده‌های Payload پشت سر هم قرار گرفته و وارد بلوک GMSK Mod می‌شوند.

در اینجا ممکن است این سؤال پیش بیاید که چرا برخی اوقات قبل از مدولاسیون، بایت‌های داده را که دارای 8 بیت باارزش هستند به 8 بایت که هرکدام دارای 1 بیت باارزش هستند تبدیل می‌کنیم، اما در برخی اوقات این کار را انجام نمی‌دهیم.

دلیل این موضوع به خود بلوک‌های GNU Radio مربوط می‌شود. برخی از بلوک‌ها این کار را به‌صورت پیش‌فرض انجام می‌دهند. به‌عنوان مثال، در بلوک GMSK Mod پارامتری تحت عنوان Unpack وجود دارد. درصورتی‌که مقدار آن On باشد، نیازی نیست از بلوک Unpack K Bits استفاده کنیم.

در ادامه خروجی فرستنده در حوزه زمان به‌صورت زیر می‌باشد.


پیاده‌سازی GMSK و Scrambler

شکل ‏3-58 خروجی حوزه زمان فرستنده مدلاسیون GMSK

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


پیاده‌سازی GMSK و Scrambler

شکل ‏3-59 خروجی حوزه فرکانس فرستنده مدلاسیون GMSK

در این کار Symbol Rate برابر با 100 کیلوهرتز می‌باشد و چون Samples per Symbol برابر با 10 می‌باشد، بنابراین Sample Rate برابر با 1 مگاهرتز خواهد بود.

نکته‌ای که وجود دارد این است که مدولاسیون GMSK نوعی از مدولاسیون GFSK می‌باشد. به بیان دیگر، وقتی شاخص مدولاسیون GFSK برابر با مقدار مشخص مربوط به GMSK قرار گیرد، همان مدولاسیون GMSK به دست می‌آید.

بنابراین به بلوک GFSK توجه کنید.

در اینجا باید چند نکته را درباره پارامترهای بلوک GFSK بیان کنیم.

در این بلوک، H شاخص مدولاسیون می‌باشد و درصورتی‌که مقدار آن متناسب با GMSK انتخاب شود، خروجی بلوک مدولاسیون GMSK خواهد بود.

پیاده‌سازی GMSK و Scrambler

شکل ‏3-60 مقداردهی بلوک GFSK، این مقداردهی به صورتی است که خروجی آن مدلاسیون GMSK می‌باشد

درصورتی‌که بخواهیم از مدولاسیون GFSK استفاده کنیم، پارامتر Sensitivity نیز بر اساس شاخص مدولاسیون و تعداد نمونه در هر سمبل تعیین می‌شود.

پهنای باند مدولاسیون GMSK

در این قسمت به موضوع پهنای باند مدولاسیون GMSK و GFSK پرداخته می‌شود.

طبق محاسبات، پهنای باند مؤثر GFSK به نرخ سمبل و انحراف فرکانسی وابسته است.

و طبق آنچه که گفته شد انحراف فرکانسی برابر است با:

و همان‌طور که می‌دانید در مدولاسیون GMSK، H برابر است با  بنابراین پهنای‌باند سیگنال برابر است با:

همان‌طور که قبلاً در نمودار حوزه فرکانس مشاهده کردید، پهنای باند سیگنال ما تقریباً برابر با 210 کیلوهرتز می‌باشد. در اصل این مقدار پهنای باند غیرمؤثر سیگنال است و محاسبه دقیق آن دشوارتر می‌باشد.

حذف افست فرکانسی در گیرنده GMSK

برای حذف افست فرکانسی، مانند مدولاسیون BPSK از FFT و بلوک FLL استفاده شده است.

نکته‌ای که وجود دارد این است که در مدولاسیون GMSK نیازی به ضرب سیگنال ورودی در خودش نیست.


پیاده‌سازی GMSK و Scrambler

شکل ‏3-61 نحوه حذف افست فرکانسی در گیرنده مدلاسیون GMSK

در ادامه، گیرنده مدولاسیون GMSK بعد از حذف Frequency Offset مورد بررسی قرار می‌گیرد.


پیاده‌سازی GMSK و Scrambler

شکل ‏3-62 گیرنده مدلاسیون GMSK

بلوک FLL قبلاً توضیح داده شده است. همان‌طور که مشاهده می‌کنید، فرستنده تقریباً دارای پهنای باند 200 کیلوهرتز می‌باشد؛ به همین خاطر Low Pass Filter دارای فرکانس قطع 220 کیلوهرتز می‌باشد.

در ادامه به بلوک GMSK Demod می‌رسیم. این بلوک علاوه بر اینکه عکس عمل مدولاسیون را انجام می‌دهد، دارای پارامترهایی است که عملیات Timing Recovery را نیز انجام می‌دهد؛ یعنی افست زمانی را از بین می‌برد.

نکته‌ای که وجود دارد این است که به‌جز پارامتر Samples per Symbol که برابر با 10 قرار می‌گیرد، سایر پارامترها روی همان مقدار پیش‌فرض باقی می‌مانند.

در نهایت، درصورتی‌که دارای 100 کیلوهرتز Frequency Offset باشیم، خروجی فرکانسی به‌صورت زیر خواهد بود.


پیاده‌سازی GMSK و Scrambler

شکل ‏3-63 تاثیر افست فرکانسی بر حوزه فرکانس مدلاسیون GMSK

سایر بلوک‌ها نیز در قسمت های قبلی توضیح داده شده‌اند. در ادامه با استفاده از همین مدولاسیون دو ویژگی دیگر به سیستم خود اضافه می‌کنیم؛ یکی کدینگ و دیگری Scrambler. در ابتدا به موضوع Scrambler پرداخته می‌شود.

مدولاسیون GMSK و Scrambler

قبل از اینکه به موضوع Scrambler پرداخته شود، نیاز است درباره Linear Feedback Shift Register یا LFSR صحبت کنیم.

LFSR یک نوع دنباله شبه‌تصادفی می‌باشد؛ یعنی درست است که به‌صورت شبه‌تصادفی صفر و یک تولید می‌کند، اما این دنباله به‌صورت دوره‌ای تکرار می‌شود. به شکل زیر نگاه کنید. با توجه به اینکه Feedback Shift Register ما دارای طول 16 است، دارای یک دوره تناوب مشخص بوده و همچنین دارای یک چندجمله‌ای مشخص می‌باشد.


پیاده‌سازی GMSK و Scrambler

شکل ‏3-64 یک نوع Linear feedback shift register

اما برای سادگی کار، از نوع دیگری از Feedback Shift Register استفاده می‌کنیم که در شکل زیر نشان داده شده است.


پیاده‌سازی GMSK و Scrambler

شکل ‏3-65 نوع دیگری از Linear feedback shift register

طول Feedback Shift Register ما برابر با 6 می‌باشد که در GNU Radio به‌وسیله پارامتر Length مشخص می‌شود. این Feedback Shift Register دارای چندجمله‌ای مشخص و دوره تناوب متناسب با طول رجیستر می‌باشد. بنابراین در GNU Radio برای تعیین چنین ساختاری باید پارامتر Mask را بر اساس ساختار LFSR مقداردهی کنیم.


پیاده‌سازی GMSK و Scrambler

شکل ‏3-66 پارامترهای Linear feedback shift register برای تعداد بیت‌های مختلف [26]

طبق جدول فوق می‌توان مقدار Mask موردنیاز را مشخص کرد. 

و seed work نیز برابر است با 

بنابراین پارامترهای بلوک Scrambler به‌صورت زیر تعریف می‌شوند.


پیاده‌سازی GMSK و Scrambler

شکل ‏3-67 تعیین پارامترهای بلوک scrambler

عملکرد Scrambler

در اصل وقتی داده‌های ما که به‌صورت بیت هستند وارد بلوک Scrambler می‌شوند، با بیت‌های Linear Feedback Shift Register عملیات XOR انجام می‌دهند. در گیرنده برای اینکه دوباره داده‌های اصلی را به دست بیاوریم، حتماً باید مقادیر بلوک Descrambler را بدانیم؛ در غیر این صورت نمی‌توانیم داده‌ها را کدگشایی کنیم.

این کار تا حدی باعث افزایش امنیت داده‌های ما نیز می‌شود. از دیگر ویژگی‌های Scrambler می‌توان به یکنواخت‌تر شدن طیف اشاره کرد. همچنین باعث می‌شود عملیات همگام‌سازی در گیرنده بهتر انجام شود و مهم‌تر از همه، عملکرد تصحیح خطا را بهبود می‌بخشد.

بلوک دیاگرام فرستنده را در زیر مشاهده می‌کنید.


پیاده‌سازی GMSK و Scrambler

شکل ‏3-68 فرستنده مدلاسیون GMSK در حضور Scrambler

و گیرنده آن بعد از حذف افست فرکانسی به‌صورت زیر می‌باشد.


پیاده‌سازی GMSK و Scrambler

شکل ‏3-69 گیرنده مدلاسیون GMSK در حضور Scrambler

از دیگر نکاتی که بهتر است رعایت شود، ولی در بلوک دیاگرام فوق رعایت نشده است، قراردادن دو بلوک Differential Encoding و Automatic Gain Control می‌باشد. در ادامه به موضوع کدینگ در GNU Radio می‌پردازیم. برای اینکه با موضوع Coding بیشتر آشنا شویم، ابتدا خلاصه‌ای از انواع کدینگ‌ها گفته خواهد شد.

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

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

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 در ایران

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

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

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

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

دیدگاه ها

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

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

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

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

ارسال مقاله