در ادامه به موضوع مدولاسیون GMSK پرداخته میشود. این بار از بلوکهای دیگری برای ارسال داده استفاده میشود؛ بهنوعی این بار از بلوکهایی که مربوط به خود GNU Radio هستند استفاده شده است.
در ابتدا فرستنده را مورد بررسی قرار میدهیم. همانطور که در شکل زیر میبینید، با استفاده از بلوک File Source دادهها خوانده میشوند.
نکتهای که وجود دارد این است که متن ارسالی Seif Milad میباشد که شامل 10 کاراکتر است. پارامتر مهم دیگری که باید حتماً بهدرستی تنظیم شود، پارامتر Repeat است.
درصورتیکه مقدار آن Off باشد، چون سرعت ارسال داده بسیار زیاد است، شما چیزی مشاهده نخواهید کرد؛ بنابراین برای آزمایش حتماً پارامتر Repeat را برابر با Yes قرار دهید.

شکل 3-55 فرستنده مدلاسیون GMSK
در ادامه با استفاده از بلوک Stream to Tagged Stream، دادههای خود را برچسبگذاری میکنیم.
تا کنون درباره دادههای دیجیتال معمولاً دو نوع گروهبندی داشتهایم؛ یکی بیت و دیگری بایت. اما این بلوک به این صورت کار میکند که مثلاً اگر مقدار Packet Length را برابر با 10 قرار بدهیم، گروهبندی دادهها بهصورت 10 بایت، 10 بایت خواهد بود.
بلوک بعدی، بلوک Protocol Formatter میباشد. پارامترهای این بلوک بهصورت زیر تعیین میشوند.

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

شکل 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 استفاده کنیم.
در ادامه خروجی فرستنده در حوزه زمان بهصورت زیر میباشد.

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

شکل 3-59 خروجی حوزه فرکانس فرستنده مدلاسیون GMSK
در این کار Symbol Rate برابر با 100 کیلوهرتز میباشد و چون Samples per Symbol برابر با 10 میباشد، بنابراین Sample Rate برابر با 1 مگاهرتز خواهد بود.
نکتهای که وجود دارد این است که مدولاسیون GMSK نوعی از مدولاسیون GFSK میباشد. به بیان دیگر، وقتی شاخص مدولاسیون GFSK برابر با مقدار مشخص مربوط به GMSK قرار گیرد، همان مدولاسیون GMSK به دست میآید.
بنابراین به بلوک GFSK توجه کنید.
در اینجا باید چند نکته را درباره پارامترهای بلوک GFSK بیان کنیم.
|
1 |
Sensitivity=πH/SPS |
در این بلوک، H شاخص مدولاسیون میباشد و درصورتیکه مقدار آن متناسب با GMSK انتخاب شود، خروجی بلوک مدولاسیون GMSK خواهد بود.
|
1 |
H=(frequency deviation)/(symbol rate ×.5) |

شکل 3-60 مقداردهی بلوک GFSK، این مقداردهی به صورتی است که خروجی آن مدلاسیون GMSK میباشد
درصورتیکه بخواهیم از مدولاسیون GFSK استفاده کنیم، پارامتر Sensitivity نیز بر اساس شاخص مدولاسیون و تعداد نمونه در هر سمبل تعیین میشود.
|
1 |
sensitivity=(2×π×frequency deviation)/(sample rate) |
در این قسمت به موضوع پهنای باند مدولاسیون GMSK و GFSK پرداخته میشود.
طبق محاسبات، پهنای باند مؤثر GFSK به نرخ سمبل و انحراف فرکانسی وابسته است.
|
1 |
bandwidth=symbol rate+2×frequency deviation |
و طبق آنچه که گفته شد انحراف فرکانسی برابر است با:
|
1 |
frequency deviation=1/2×symbol rate×H |
و همانطور که میدانید در مدولاسیون GMSK، H برابر است با بنابراین پهنایباند سیگنال برابر است با:
|
1 |
bandwidth=100KHz+2×.5×.5×100KHz=150KHz |
همانطور که قبلاً در نمودار حوزه فرکانس مشاهده کردید، پهنای باند سیگنال ما تقریباً برابر با 210 کیلوهرتز میباشد. در اصل این مقدار پهنای باند غیرمؤثر سیگنال است و محاسبه دقیق آن دشوارتر میباشد.
برای حذف افست فرکانسی، مانند مدولاسیون BPSK از FFT و بلوک FLL استفاده شده است.
نکتهای که وجود دارد این است که در مدولاسیون GMSK نیازی به ضرب سیگنال ورودی در خودش نیست.

شکل 3-61 نحوه حذف افست فرکانسی در گیرنده مدلاسیون GMSK
در ادامه، گیرنده مدولاسیون GMSK بعد از حذف Frequency Offset مورد بررسی قرار میگیرد.

شکل 3-62 گیرنده مدلاسیون GMSK
بلوک FLL قبلاً توضیح داده شده است. همانطور که مشاهده میکنید، فرستنده تقریباً دارای پهنای باند 200 کیلوهرتز میباشد؛ به همین خاطر Low Pass Filter دارای فرکانس قطع 220 کیلوهرتز میباشد.
در ادامه به بلوک GMSK Demod میرسیم. این بلوک علاوه بر اینکه عکس عمل مدولاسیون را انجام میدهد، دارای پارامترهایی است که عملیات Timing Recovery را نیز انجام میدهد؛ یعنی افست زمانی را از بین میبرد.
نکتهای که وجود دارد این است که بهجز پارامتر Samples per Symbol که برابر با 10 قرار میگیرد، سایر پارامترها روی همان مقدار پیشفرض باقی میمانند.
در نهایت، درصورتیکه دارای 100 کیلوهرتز Frequency Offset باشیم، خروجی فرکانسی بهصورت زیر خواهد بود.

شکل 3-63 تاثیر افست فرکانسی بر حوزه فرکانس مدلاسیون GMSK
سایر بلوکها نیز در قسمت های قبلی توضیح داده شدهاند. در ادامه با استفاده از همین مدولاسیون دو ویژگی دیگر به سیستم خود اضافه میکنیم؛ یکی کدینگ و دیگری Scrambler. در ابتدا به موضوع Scrambler پرداخته میشود.
قبل از اینکه به موضوع Scrambler پرداخته شود، نیاز است درباره Linear Feedback Shift Register یا LFSR صحبت کنیم.
LFSR یک نوع دنباله شبهتصادفی میباشد؛ یعنی درست است که بهصورت شبهتصادفی صفر و یک تولید میکند، اما این دنباله بهصورت دورهای تکرار میشود. به شکل زیر نگاه کنید. با توجه به اینکه Feedback Shift Register ما دارای طول 16 است، دارای یک دوره تناوب مشخص بوده و همچنین دارای یک چندجملهای مشخص میباشد.
|
1 |
x^16+x^14+x^13+x^11+1 |

شکل 3-64 یک نوع Linear feedback shift register
اما برای سادگی کار، از نوع دیگری از Feedback Shift Register استفاده میکنیم که در شکل زیر نشان داده شده است.

شکل 3-65 نوع دیگری از Linear feedback shift register
طول Feedback Shift Register ما برابر با 6 میباشد که در GNU Radio بهوسیله پارامتر Length مشخص میشود. این Feedback Shift Register دارای چندجملهای مشخص و دوره تناوب متناسب با طول رجیستر میباشد. بنابراین در GNU Radio برای تعیین چنین ساختاری باید پارامتر Mask را بر اساس ساختار LFSR مقداردهی کنیم.

شکل 3-66 پارامترهای Linear feedback shift register برای تعداد بیتهای مختلف [26]
طبق جدول فوق میتوان مقدار Mask موردنیاز را مشخص کرد.
|
1 |
x^6+x^4+x^2+1 ===>101010==>0x2A |
و seed work نیز برابر است با
|
1 |
0x2B |
بنابراین پارامترهای بلوک Scrambler بهصورت زیر تعریف میشوند.

شکل 3-67 تعیین پارامترهای بلوک scrambler
در اصل وقتی دادههای ما که بهصورت بیت هستند وارد بلوک Scrambler میشوند، با بیتهای Linear Feedback Shift Register عملیات XOR انجام میدهند. در گیرنده برای اینکه دوباره دادههای اصلی را به دست بیاوریم، حتماً باید مقادیر بلوک Descrambler را بدانیم؛ در غیر این صورت نمیتوانیم دادهها را کدگشایی کنیم.
این کار تا حدی باعث افزایش امنیت دادههای ما نیز میشود. از دیگر ویژگیهای Scrambler میتوان به یکنواختتر شدن طیف اشاره کرد. همچنین باعث میشود عملیات همگامسازی در گیرنده بهتر انجام شود و مهمتر از همه، عملکرد تصحیح خطا را بهبود میبخشد.
بلوک دیاگرام فرستنده را در زیر مشاهده میکنید.

شکل 3-68 فرستنده مدلاسیون GMSK در حضور Scrambler
و گیرنده آن بعد از حذف افست فرکانسی بهصورت زیر میباشد.

شکل 3-69 گیرنده مدلاسیون GMSK در حضور Scrambler
از دیگر نکاتی که بهتر است رعایت شود، ولی در بلوک دیاگرام فوق رعایت نشده است، قراردادن دو بلوک Differential Encoding و Automatic Gain Control میباشد. در ادامه به موضوع کدینگ در GNU Radio میپردازیم. برای اینکه با موضوع Coding بیشتر آشنا شویم، ابتدا خلاصهای از انواع کدینگها گفته خواهد شد.
طراحی و پیادهسازی یک سیستم ارتباطی ارسال متن،...
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.