Κυκλοφορία του GNU Radio 3.10.0

Μετά από ένα χρόνο ανάπτυξης, δημιουργήθηκε μια νέα σημαντική έκδοση της δωρεάν πλατφόρμας επεξεργασίας ψηφιακού σήματος GNU Radio 3.10. Η πλατφόρμα περιλαμβάνει ένα σύνολο προγραμμάτων και βιβλιοθηκών που σας επιτρέπουν να δημιουργείτε αυθαίρετα ραδιοσυστήματα, σχήματα διαμόρφωσης και τη μορφή λαμβανόμενων και απεσταλμένων σημάτων στα οποία ορίζονται προγραμματικά και απλές συσκευές υλικού χρησιμοποιούνται για τη λήψη και τη δημιουργία σημάτων. Το έργο διανέμεται με την άδεια GPLv3. Ο κώδικας για τα περισσότερα από τα στοιχεία του ραδιοφώνου GNU είναι γραμμένος σε Python, τα μέρη που είναι κρίσιμα για την απόδοση και την καθυστέρηση είναι γραμμένα σε C ++, το οποίο επιτρέπει στο πακέτο να χρησιμοποιείται κατά την επίλυση προβλημάτων σε πραγματικό χρόνο.

Σε συνδυασμό με καθολικούς προγραμματιζόμενους πομποδέκτες που δεν συνδέονται με τη ζώνη συχνοτήτων και τον τύπο διαμόρφωσης σήματος, η πλατφόρμα μπορεί να χρησιμοποιηθεί για τη δημιουργία συσκευών όπως σταθμούς βάσης για δίκτυα GSM, συσκευές για απομακρυσμένη ανάγνωση ετικετών RFID (ηλεκτρονικά πιστοποιητικά και πάσο, έξυπνες κάρτες ), δέκτες GPS, WiFi, δέκτες και πομποί ραδιοφώνου FM, αποκωδικοποιητές τηλεόρασης, παθητικά ραντάρ, αναλυτές φάσματος κ.λπ. Εκτός από το USRP, το πακέτο μπορεί να χρησιμοποιήσει άλλα στοιχεία υλικού για είσοδο και έξοδο σήματος, για παράδειγμα, προγράμματα οδήγησης είναι διαθέσιμα για κάρτες ήχου, δέκτη τηλεόρασης, συσκευές BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP και S -Mini.

Η δομή περιλαμβάνει επίσης μια συλλογή από φίλτρα, κωδικοποιητές καναλιών, μονάδες συγχρονισμού, αποδιαμορφωτές, ισοσταθμιστές, κωδικοποιητές φωνής, αποκωδικοποιητές και άλλα στοιχεία απαραίτητα για τη δημιουργία ραδιοφωνικών συστημάτων. Αυτά τα στοιχεία μπορούν να χρησιμοποιηθούν ως δομικά στοιχεία για το ολοκληρωμένο σύστημα, το οποίο, σε συνδυασμό με τη δυνατότητα προσδιορισμού των ροών δεδομένων μεταξύ των μπλοκ, σας επιτρέπει να σχεδιάζετε ραδιοφωνικά συστήματα ακόμη και χωρίς δεξιότητες προγραμματισμού.

Βασικές αλλαγές:

  • Προστέθηκε μια νέα ενότητα gr-pdu, η οποία φέρνει εργαλεία για το χειρισμό αντικειμένων με τον τύπο PDU (Μονάδα Δεδομένων Πρωτοκόλλου) που χρησιμοποιούνται για δεδομένα που μεταφέρονται μεταξύ μπλοκ ραδιοφώνου GNU. Από τη λειτουργική μονάδα gr-blocks, όλες οι μονάδες PDU έχουν μετακινηθεί στις μονάδες gr-network και gr-pdu και έχει αφεθεί ένα επίπεδο αντί για gr-block για να διασφαλιστεί η συμβατότητα προς τα πίσω. Οι διανυσματικοί τύποι PDU είναι πλέον διαθέσιμοι στον χώρο ονομάτων gr::types και οι συναρτήσεις χειρισμού PDU στον χώρο ονομάτων gr::pdu.
  • Προστέθηκε μια νέα μονάδα gr-iio που παρέχει ένα πλαίσιο I/O για την οργάνωση ανταλλαγής δεδομένων μεταξύ GNU Radio και βιομηχανικών συσκευών που βασίζονται στο υποσύστημα IIO (Industrial I/O), όπως PlutoSDR, AD-FMCOMMS2-EBZ, AD- FMCOMMS3-EBZ, AD -FMCOMMS4-EBZ, ARRADIO και AD-FMCOMMS5-EBZ.
  • Έχει προταθεί πειραματική υποστήριξη για την κατηγορία Custom Buffer, η οποία απλοποιεί τη μεταφορά δεδομένων μεταξύ μπλοκ ραδιοφώνου GNU και επιταχυντών υλικού που βασίζονται σε GPU, FPGA και DSP. Η χρήση του custom_buffer αποφεύγει την εγγραφή ειδικών μπλοκ για την επιτάχυνση στην πλευρά της GPU και καθιστά δυνατή την απευθείας μετακίνηση δεδομένων από την προσωρινή μνήμη δακτυλίου ραδιοφώνου GNU στη μνήμη GPU, την εκτέλεση πυρήνων CUDA και την επιστροφή δεδομένων με το αποτέλεσμα σε buffer ραδιοφώνου 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, Mako 1.1.0, 11. pygccxml 2.4.3).
  • Προστέθηκαν δεσμεύσεις Python για μπλοκ RFNoC.
  • Η υποστήριξη για το Qt 6.2 έχει προστεθεί στα μπλοκ για τη δημιουργία της γραφικής διεπαφής gr-qtgui. Προστέθηκε η επιλογή "--output" για ιεραρχικά μπλοκ στο GRC (GNU Radio Companion) GUI.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο