پس از یک سال توسعه، نسخه قابل توجه جدیدی از پلتفرم پردازش سیگنال دیجیتال رایگان GNU Radio 3.10 شکل گرفته است. این پلتفرم شامل مجموعهای از برنامهها و کتابخانهها است که به شما امکان میدهد سیستمهای رادیویی دلخواه، طرحهای مدولاسیون و شکل سیگنالهای دریافتی و ارسالی که در نرمافزار مشخص شدهاند ایجاد کنید و از سادهترین دستگاههای سختافزاری برای گرفتن و تولید سیگنال استفاده میشود. این پروژه تحت مجوز GPLv3 توزیع شده است. کد اکثر اجزای رادیو گنو به زبان پایتون نوشته شده است؛ بخشهای حیاتی برای عملکرد و تأخیر در C++ نوشته شدهاند، که به بسته اجازه میدهد هنگام حل مشکلات بهصورت بلادرنگ استفاده شود.
در ترکیب با فرستندههای قابل برنامهریزی جهانی که به باند فرکانس و نوع مدولاسیون سیگنال متصل نیستند، این پلتفرم میتواند برای ایجاد دستگاههایی مانند ایستگاههای پایه برای شبکههای GSM، دستگاههایی برای خواندن از راه دور برچسبهای RFID (شناسهها و پاسهای الکترونیکی، هوشمند) استفاده شود. کارت ها)، گیرنده های GPS، وای فای، گیرنده ها و فرستنده های رادیویی FM، رمزگشاهای تلویزیون، رادارهای غیرفعال، تحلیلگرهای طیف و غیره. علاوه بر USRP، بسته می تواند از قطعات سخت افزاری دیگری برای ورودی و خروجی سیگنال ها استفاده کند، به عنوان مثال، درایورهای کارت صدا، تیونرهای تلویزیون، BladeRF، Myriad-RF، HackRF، UmTRX، Softrock، Comedi، Funcube، FMCOMMS، USRP و دستگاه های S در دسترس هستند - Mini.
همچنین شامل مجموعه ای از فیلترها، کدک های کانال، ماژول های همگام سازی، دمدولاتورها، اکولایزرها، کدک های صوتی، رمزگشاها و سایر عناصر لازم برای ایجاد سیستم های رادیویی است. این عناصر می توانند به عنوان بلوک های ساختمانی برای مونتاژ یک سیستم تمام شده استفاده شوند، که همراه با توانایی تعیین جریان داده بین بلوک ها، به شما امکان می دهد حتی بدون مهارت برنامه نویسی سیستم های رادیویی را طراحی کنید.
تغییرات اصلی:
- یک ماژول جدید gr-pdu اضافه شده است که دارای ابزارهایی برای دستکاری اشیاء با نوع PDU (واحد داده پروتکل) است که برای داده های انتقال یافته بین بلوک های رادیویی گنو استفاده می شود. از ماژول gr-blocks، تمام بلوک های PDU به ماژول های gr-network و gr-pdu منتقل شده اند و به جای gr-blockها، یک لایه برای اطمینان از سازگاری با عقب مانده است. انواع PDU برداری اکنون در فضای نام gr::types و توابع برای دستکاری PDU اکنون در فضای نام gr::pdu در دسترس هستند.
- یک ماژول جدید gr-iio اضافه شد که چارچوب ورودی/خروجی را برای سازماندهی تبادل داده بین رادیو گنو و دستگاه های صنعتی مبتنی بر زیرسیستم IIO (I/O صنعتی) مانند PlutoSDR، AD-FMCOMMS2-EBZ، AD-FMCOMMS3 ارائه می کند. -EBZ، AD -FMCOMMS4-EBZ، ARRADIO و AD-FMCOMMS5-EBZ.
- پشتیبانی تجربی برای کلاس Custom Buffer پیشنهاد شده است که انتقال داده بین بلوک های رادیویی گنو و شتاب دهنده های سخت افزاری مبتنی بر GPU، FPGA و DSP را ساده می کند. استفاده از custom_buffer به شما امکان میدهد از نوشتن بلوکهای خاص برای فعال کردن شتاب در سمت GPU اجتناب کنید و انتقال مستقیم دادهها از بافر حلقه رادیویی GNU به حافظه GPU، راهاندازی هستههای CUDA و برگرداندن دادهها به همراه نتیجه به بافرهای رادیویی GNU را ممکن میسازد.
- زیرساخت ورود به سیستم به استفاده از کتابخانه spdlog تغییر یافته است، که قابلیت استفاده از کار با گزارشها را بهبود بخشیده است، تماسهای iostream و cstdio را حذف میکند، از عبارات libfmt برای قالببندی رشته پشتیبانی میکند و رابط برنامه را مدرن میکند. کتابخانه Log4CPP که قبلا استفاده شده بود به عنوان یک وابستگی حذف شده است.
- انتقال به استفاده در توسعه استاندارد C++17 انجام شده است. کتابخانه boost::filesystem با std::filesystem جایگزین شده است.
- افزایش نیاز به کامپایلرها (GCC 9.3، Clang 11، MSVC 1916) و وابستگی ها (Python 3.6.5، numpy 1.17.4، VOLK 2.4.1، CMake 3.16.3، Boost 1.69، Python 1.1.0، 11. pygccxml 2.4.3).
- اتصالات پایتون برای بلوک های RFNoC اضافه شده است.
- پشتیبانی از Qt 6.2 به بلوک های ساخت رابط گرافیکی gr-qtgui اضافه شده است. گزینه "--output" برای بلوک های سلسله مراتبی به رابط کاربری گرافیکی GRC (GNU Radio Companion) اضافه شده است.
منبع: opennet.ru