Sau một năm phát triển, một bản phát hành quan trọng mới của nền tảng xử lý tín hiệu số miễn phí GNU Radio 3.10 đã được hình thành. Nền tảng này bao gồm một bộ chương trình và thư viện cho phép bạn tạo các hệ thống vô tuyến tùy ý, sơ đồ điều chế cũng như dạng tín hiệu nhận và gửi được chỉ định trong phần mềm và các thiết bị phần cứng đơn giản được sử dụng để thu và tạo tín hiệu. Dự án được phân phối theo giấy phép GPLv3. Mã cho hầu hết các thành phần của GNU Radio được viết bằng Python; các phần quan trọng đối với hiệu suất và độ trễ được viết bằng C++, cho phép sử dụng gói khi giải quyết vấn đề trong thời gian thực.
Kết hợp với các bộ thu phát lập trình phổ quát không bị ràng buộc với băng tần và loại điều chế tín hiệu, nền tảng này có thể được sử dụng để tạo ra các thiết bị như trạm gốc cho mạng GSM, thiết bị đọc thẻ RFID từ xa (ID và thẻ điện tử, thông minh thẻ), máy thu GPS, WiFi, máy thu và phát đài FM, bộ giải mã TV, radar thụ động, máy phân tích quang phổ, v.v. Ngoài USRP, gói có thể sử dụng các thành phần phần cứng khác cho đầu vào và đầu ra tín hiệu, ví dụ: trình điều khiển cho card âm thanh, bộ điều chỉnh TV, BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP và Có sẵn thiết bị S -Mini.
Nó cũng bao gồm một bộ sưu tập các bộ lọc, codec kênh, mô-đun đồng bộ hóa, bộ giải điều chế, bộ cân bằng, codec giọng nói, bộ giải mã và các yếu tố khác cần thiết để tạo ra hệ thống vô tuyến. Các phần tử này có thể được sử dụng làm khối xây dựng để lắp ráp một hệ thống hoàn chỉnh, kết hợp với khả năng xác định luồng dữ liệu giữa các khối, cho phép bạn thiết kế hệ thống vô tuyến ngay cả khi không có kỹ năng lập trình.
Sự thay đổi chính:
- Một mô-đun gr-pdu mới đã được thêm vào, chứa các công cụ để thao tác các đối tượng với loại PDU (Đơn vị dữ liệu giao thức), được sử dụng cho dữ liệu được truyền giữa các khối GNU Radio. Từ mô-đun gr-blocks, tất cả các khối PDU đã được chuyển sang mô-đun gr-network và gr-pdu, và thay vì các khối gr-block, một lớp được để lại để đảm bảo khả năng tương thích ngược. Các loại PDU vectơ hiện có sẵn trong không gian tên gr::types và các chức năng thao tác PDU hiện có sẵn trong không gian tên gr::pdu.
- Đã thêm mô-đun gr-iio mới, cung cấp khung đầu vào/đầu ra để tổ chức trao đổi dữ liệu giữa GNU Radio và các thiết bị công nghiệp dựa trên hệ thống con IIO (I/O công nghiệp), chẳng hạn như PlutoSDR, AD-FMCOMMS2-EBZ, AD-FMCOMMS3 -EBZ, AD -FMCOMMS4-EBZ, ARRADIO và AD-FMCOMMS5-EBZ.
- Hỗ trợ thử nghiệm cho lớp Bộ đệm tùy chỉnh đã được đề xuất, giúp đơn giản hóa việc truyền dữ liệu giữa các khối Radio GNU và bộ tăng tốc phần cứng dựa trên GPU, FPGA và DSP. Việc sử dụng custom_buffer cho phép bạn tránh ghi các khối đặc biệt để kích hoạt khả năng tăng tốc ở phía GPU và giúp có thể di chuyển trực tiếp dữ liệu từ bộ đệm vòng GNU Radio sang bộ nhớ GPU, khởi chạy hạt nhân CUDA và trả về dữ liệu cùng kết quả với bộ đệm GNU Radio.
- Cơ sở hạ tầng ghi nhật ký đã được chuyển sang sử dụng thư viện spdlog, thư viện này đã cải thiện khả năng sử dụng khi làm việc với nhật ký, loại bỏ các lệnh gọi tới iostream và cstdio, cung cấp hỗ trợ cho các biểu thức libfmt để định dạng chuỗi và hiện đại hóa giao diện chương trình. Thư viện Log4CPP được sử dụng trước đây đã bị xóa dưới dạng phụ thuộc.
- Quá trình chuyển đổi sang sử dụng trong quá trình phát triển tiêu chuẩn C++17 đã được thực hiện. Thư viện boost::filesystem đã được thay thế bằng std::filesystem.
- Yêu cầu ngày càng tăng đối với trình biên dịch (GCC 9.3, Clang 11, MSVC 1916) và các phần phụ thuộc (Python 3.6.5, numpy 1.17.4, VOLK 2.4.1, CMake 3.16.3, Boost 1.69, Mako 1.1.0, PyBind11 2.4.3, pygccxml 2.0.0).
- Đã thêm các liên kết Python cho các khối RFNoC.
- Hỗ trợ Qt 6.2 đã được thêm vào các khối để xây dựng giao diện đồ họa gr-qtgui. Đã thêm tùy chọn “--output” cho các khối phân cấp vào GUI GRC (GNU Radio Companion).
Nguồn: opennet.ru
