در قسمت قبل توانستیم که با RTL-SDR دریافت کننده سامانه ADS-B را پیاده سازی کنیم. در این آموزش قصد داریم که با نرم افزار gnuradio آشنا بشویم. نرم افزار gnuradio یک نرم افزار طراحی سیستم های مخابراتی می باشد که بلوک های پردازش سیگنال ها را برای پیاده سازی رادیو نرم افزار را در اختیار کاربر قرار می دهد. در واقع، این نرم افزار قابلیت شبیه سازی با استفاده از یک سخت افزار (که قالبا SDR می باشد) را برای کاربرش فراهم می کند. با استفاده از این نرم افزار می توانید انواع مدولاسیون ها، فیلترها، سیگنال ژنراتورها و… را در اختیار داشته باشید.
کمی درباره سیگنال
برای انجام پردازش سیگنال با استفاده از کامپیوتر و نرم افزار، سیگنالتان نیاز دارد که دیجیتال باشد؛ چرا که در سیگنال آنالوگ بی نهایت سطح ولتاژ وجود دارد که کامپیوتر توانایی پردازش آن را ندارد. حال سیگنال دیجیتال به چه معناست؟
1. سیگنال دیجیتال دارای مقادیر محدودی می باشد.
2. فقط برای مجموعه ای گسسته از نقاط در زمان وجود دارد.
نرم افزار gnuradio بلوک های مختلفی دارد که اطلاعات هر کدام در لینک Block Docs به صورت کامل نوشته شده است. در ادامه بخشی از آن ها را میتوانید مشاهده کنید:
- ژنراتورهای سیگنال (waveform generators)
- مدولاتورها (modulators)
- ابزار گرافیکی (GUIs)
- عملیات های ریاضی (math operators)
- مدل های کانال (channel models)
- فیلترها (filters)
- آنالیزگرهای فوریه (fourier analysis)
نصب gnuradio
نرم افزار gnuradio قابلیت نصب روی سیستم عامل هایی نظیر لینوکس، ویندوز و مک را دارد:
همچنین، می توانید از ایمیج آماده SDRLIVE که در قسمت اول معرفی شد استفاده کنید که برنامه gnuradio را در خود دارد.
بعد از نصب gnuradio (ما از ubuntu 18.04 استفاده کرده ایم) می توانید با این دستور برنامه را آغاز کنید.
1 | gnuradio-companion |
پنجره باز شده نرم افزار به این صورت می باشد:
با دابل کلیک بر روی بلوک options می توانید ID و عنوان Title فلوگراف خود را تغییر دهید:
ساخت و تحلیل یک موج سینوسی تک تن
کاربر می تواند با استفاده از ctrl + f و یا علامت ذره بین بالا سمت راست در بلوک های موجود جستجو کرده و بلوک مورد نظر خود را پیدا کند.
برای بقیه بلوک ها هم مانند همین روال عمل کنید.
بلوک throttle برای کنترل روند کار در صورت عدم حضور سخت افزار SDR می باشد و بلوک QT GUI frequency Sink برای مشاهده طیف سیگنال تولیدی در حوزه فرکانس و بلوک QT GUI Time Sink برای مشاهده سیگنال در حوزه زمان می باشد که خروجی آن هم شامل مولفه حقیقی و هم مولفه موهومی سیگنال می باشد.
سرانجام با کلیک بر روی دکمه سبز رنگ run بلوک ساخته شده به کد پایتون تبدیل می شود و سپس اجرا می شود.
بعد از اجرای برنامه یک صفحه مشاهده می کنید که خروجی گرافیکی بلوک های GUI میباشد که طیف سیگنال را در حوزه های زمان و فرکانس نمایش می دهد.