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

آموزش SDR 4
8 بازدید
۱۴۰۵-۰۳-۲۱
8 دقیقه
  • نویسنده: Shadow
  • درباره نویسنده: سئوکار ساده! 🔗 مهندس الکترونیک⚡

باتوجه‌به مرجع [14] در مدلاسیون BFSK، ابتدا داده‌های باینری که شامل صفر و یک می‌باشند به ترتیب به منفی و مثبت یک نگاشت می‌شوند و در ادامه نکته‌ای که وجود دارد این است در صورتی که فرکانس حامل برابر باآموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio باشد، در صورتی که ما بخواهیم یک‌ ارسال کنیم یک tone با فرکانس آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio ارسال می‌کنیم و در صورتی که بخواهیم صفر ارسال کنیم یک tone با فرکانس آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio ارسال خواهیم کرد. بنابراین اگر ما بخواهیم از مدلاسیون BFSK استفاده کنیم می‌توانیم از رابطه زیر برای ارسال داده استفاده کنیم.

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

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

فقط نکته‌ای که وجود دارد به علت انتگرال‌گیری از سیگنال پیام فاز سیگنال ما پیوسته می‌شود؛ بنابراین به این نوع مدولاسیون CPFSK می‌گویند؛ ولی ما در ادامه برای سادگی کار آن را مدولاسیون FSK می‌نامیم. در معادله بالا (a)m سیگنال پیام، آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio فرکانس حامل و آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio نیز فرکانس نمونه‌برداری ما می‌باشد، همانطور که می‌دانید آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio سیگنال حامل است که در سیگنال باند‌پایه ضرب می‌شود بنابراین سیگنال باند پایه ما به صورت زیر می‌باشد.

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

علاوه بر این پارامتر دیگری به نام spacing tone وجود دارد که آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio می‌باشد، چند نکته قبل از پیاد‌ه‌سازی نیاز است که گفته شود اول اینکه برای اینکه داده‌ها در سمت گیرنده به درستی دریافت شوند از لحاظ تئوری باید آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio در گیرنده غیر همدوس و در گیرنده همدوس، آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio باشد دلیل این امر این است که بین +f و آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio تعامد برقرار شود همانطور که در شکل زیر می‌بینبد.

حداقل spacing tone برای اینکه گیرنده غیره همدوس داده‌ها را به درستی تشخیص دهد

حداقل spacing tone برای اینکه گیرنده غیره همدوس داده‌ها را به درستی تشخیص دهد.

همان‌طور که مشاهده می‌کنید نقطه عبور از صفر tone اول با پیک tone دوم مطابقت دارد. توجه شود در این قسمت گیرنده همدوس و غیرهمدوس موردبررسی قرار نمی‌گیرد؛ ولی نکته‌ای که وجود دارد این است که گیرنده همدوس در گیرنده برای این که داده‌ها رو بتواند به‌درستی دریافت کند نیاز دارد که فاز را نیز تخمین بزند و بنابراین گیرنده پیچیده‌تر و سربار محاسباتی بیشتری داریم؛ ولی پهنای باند موردنیاز کمتر از گیرنده غیرهمدوس است، و در گیرنده غیرهمدوس نیازی به تخمین فاز نداریم البته برای این داده‌ها به کیفیت بالا دریافت شوند در عمل بهتر است تخمین فاز انجام گیرد.

اکنون شروع به پیاده‌سازی این سیستم ارتباطی در gnu radio می‌کنیم، ابتدا فرستنده را موردبررسی قرار می‌دهیم.

فرستنده مدلاسیون BFSK، داده‌های ارسال شده عکس می‌باشند.

فرستنده مدلاسیون BFSK، داده‌های ارسال شده عکس می‌باشند.

همان‌طور که مشاهده می‌کنید داده‌های ارسالی ما یک عکس می‌باشد که در ابتدا چون در مدولاسیون BFSK هر Symbol برابر با یک بیت می‌باشد؛ بنابراین هر بایت که از هشت بیت تشکیل شده است باید تبدیل به هشت بایت که هر کدام دارای یک بیت باارزش هستند تبدیل شود این کار با استفاده بلوک unpack K Bits انجام شده است، در ادامه چون داده‌ها به‌صورت منفی یک و یک باید ارسال شوند داده‌ها با استفاده از دو بلوک char to float و Add const به منفی یک و یک تبدیل می‌شوند برای درک بهتر بلوک char to float که دارای پارامتر scale می‌باشد وقتی برابر نیم باشد؛ یعنی هر ورودی که دریافت می‌کند را دوبرابر می‌کند؛ یعنی صفر به صفر و یک‌به‌دو تبدیل می‌شود و در ادامه با استفاده از بلوک Add const داده‌ها به منفی یک و یک تبدیل شده است. در ادامه با استفاده از بلوک Throttle مقدار symbol rate که برابر با bit rate می‌باشد رو مشخص کرده‌ایم این بلوک کار پردارشی انجام نمی‌دهد؛ بلکه ابزاری است که با استفاده از آن می‌توان نرخ ارسال داده را برای رایانه مشخص کرد. همان‌طور که می‌دانید در ارتباطات ما به‌جای اینکه مقدار منفی یک یا مثبت یک ارسال کنیم یک پالس مستطیلی که دارای دامنه منفی یک یا مثبت بک می‌باشد ارسال می‌کنیم.

اما همان‌طور که می‌دانید در حوزه دیجیتال ما یک پالس مستطیلی واقعی نداریم زیر هر پالس مستطیلی به‌نوعی از هزار تا تابع دلتا تشکیل شده است. به همین خاطر ما با استفاده از بلوک repeat که دارای پارامتری به نام Interpolation است این کار رو انجام می‌دهیم و مقدار آن را روی 16 قرار داده‌ایم. و نکته‌ای که وجود دارد از این جا به بعد نرخ‌نمونه برداری ما 16 برابر می‌شود نکته دیگری که وجود دارد این است که می‌توانیم بگویم ما هر symbol را با 16، نمونه نشان می‌دهیم بنابراین می‌توان گفت sample per symbol برابر با 16 می‌باشد، و به نوعی می‌توانیم بگویم با افزایش نرخ نمونه‌برداری از حالت زمان گسسته به حالت زمان پیوسته رفته‌ایم، در ادامه همانطور که در معادله مشخص است باید از داده‌ها انتگرال گرفت و همانطور که می‌دانید در حوزه دیجیتال که سیگنال‌ها گسسته‌ هستند از جمع‌انباره‌ای به جای انتگرال استفاده می‌شود و برای انجام این کار ما خودمان با استفاده از کد پایتون یک بلوک تولید کرده‌ایم که این کار رو انجام می‌دهد و کد آن در مرجع اشاره شده آورده شده است، بعد از اعمال انتگرال‌گیری با استفاده بلوک Phase Mod که قبلاً آن را توضیح داده‌ایم، سیگنال BFSK را تولید خواهیم کرد.

شاید برای شما مفید باشد:
رادیو آماتوری چیست و چرا به آن نیاز داریم؟ (قسمت چهارم)

بنابراین، ورودی ما سیگنالی است که تابه‌حال تولید کرده‌ایم و sensitivity باید برابر با آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio باشد، بنابراین خروجی این بلوک یک سیستم ارتباطی می‌باشد که مبتنی بر مدلاسیون BFSK است که در باند پایه قرار دارد، نکته‌ای که وجود دارد چون ما در حال شبیه‌سازی هستیم نیازی نیست داده‌ها را به باند میانی انتقال دهیم. و در ادامه برای اینکه کانال ارتباطی را شبیه‌سازی کنیم از بلوکی به نام Noise source استفاده کرده‌ایم.

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

خروجی حوزه فرکانس فرستنده مدلاسیون BFSK

خروجی حوزه فرکانس فرستنده مدلاسیون BFSK

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

مقایسه خروجی حوزه فرکانس زمانی که گیرنده داده‌ها را با نویز دریافت می‌کند و زمانی که بدون نویز دریافت می‌کند.

مقایسه خروجی حوزه فرکانس زمانی که گیرنده داده‌ها را با نویز دریافت می‌کند و زمانی که بدون نویز دریافت می‌کند.

بنابراین، تأثیر نویز را در سیستم مشاهده کرده‌ایم. در ادامه به موضوع گیرنده پرداخته می‌شود نکته‌ای که وجود دارد این است که از گیرنده غیر‌همدوس استفاده خواهیم کرد. برای این کار گیرنده نیاز دارد مقادیر آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio ، آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio و آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio را بداند و توجه داشته باشید در حال حاضر به علت این که ما در شرایط شبیه‌سازی هستیم و سیگنال شبیه‌سازی شده در باند پایه قرار دارد به همین دلیل گیرنده سیگنال دریافتی را در سیگنال‌های تک تن با فرکانس‌های آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio ضرب می‌کند این باعث می‌شود که خروجی کار ما به صورت زیر شود.

خروجی حوزه فرکانس در گیرنده پس از ضرب سیگنال دریافت شده در سیگنال تک تن با فرکانس

خروجی حوزه فرکانس در گیرنده پس از ضرب سیگنال دریافت شده در سیگنال تک تن با فرکانس

خروجی حوزه فرکانس در گیرنده پس از ضرب سیگنال دریافت شده در سیگنال تک تن با فرکانس

خروجی حوزه فرکانس در گیرنده پس از ضرب سیگنال دریافت شده در سیگنال تک تن با فرکانس

 

همان‌طور که مشاهده می‌کنید اکنون ما با قراردادن یک Low Pass Filter سایر اجزای فرکانسی را حذف می‌کنیم. برای درک بهتر بلوک دیاگرام گیرنده به‌صورت زیر می‌باشد.

گیرنده مدلاسیون BFSK

گیرنده مدلاسیون BFSK

همان‌طور که مشاهده می‌شود ما از یک نوع low pass Filter به نام moving average استفاده کرده‌ایم که دارای پیچیدگی و سربار محاسباتی بسیار کم می‌باشد که خیلی دقیق نیست[2]، و دارای پاسخ فرکانسی زیر می‌باشد.

پاسخ فرکانسی فیلتر Moving average

پاسخ فرکانسی فیلتر Moving average

نکته‌ای که وجود دارد این است که اولین عبور از صفر در حوزه فرکانس برابر است با آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio که M در اینجا همان مقدار length در بلوک moving average می‌باشد. ما مقدار  25=M قرار داده‌ایم. در ادامه خروجی بلوک Complex to Mag^2 را مشاهده خواهید کرد و خروجی این بلوک به صورت زیر می‌باشد.

خروجی حوزه زمان بعد از بلوک complex to Mag^2

خروجی حوزه زمان بعد از بلوک complex to Mag^2

 

همان‌طور که مشاهده می‌کنید خروجی این دو دقیقاً معکوس یکدیگر می‌باشند زیر وقتی که ما صفر ارسال می‌کنیم، حامل آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio ارسال کرده‌ایم و بنابراین، حامل +f را نداریم و بنابراین در حوزه زمان سیگنالی را مشاهده نخواهیم کرد و برعکس و بعد از این که خروجی این دو بلوک رو از هم کم کنیم با استفاده از بلوک Subtract خروجی به صورت زیر در می‌آید.

خروجی حوزه زمان بعد از بلوک subtract

خروجی حوزه زمان بعد از بلوک subtract

و همان‌طور می‌دانید ما با استفاده از بلوک repeat هر نمونه رو به 16 نمونه تبدیل کرده‌ایم حال با استفاده از بلوک آموزش پیاده‌سازی مدولاسیون BFSK در GNU Radio هر 16 نمونه رو به یک نمونه تبدیل می‌کنیم و بلوک Binary Slicer، در صورتی که مقدار منفی داشته باشیم آن را به صفر تبدیل کرده و در غیر این صورت آن را به یک تبدیل می‌کند همانطور که در شکل زیر مشاهده می‌کنید.

خروجی حوزه زمان بعد از بلوک binary Slicer

خروجی حوزه زمان بعد از بلوک binary Slicer

در ادامه برای درک بهتر این موضوعات به ذکر مثال‌های دیگر می‌پردازیم.

اطلاعات
8
0
0
اشتراک و حمایت
profile نویسنده: Shadow متخصص الکترونیک

سئوکار ساده! 🔗 مهندس الکترونیک⚡


مقالات بیشتر

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
نویسنده شو !

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

ارسال مقاله