Trong lĩnh vực vô tuyến điện, để thực hiện trích xuất các dữ liệu bên trong kênh truyền, các kỹ sư phải thực hiện thu thập tín hiệu, phân tích phương pháp điều chế, dịch ngược tín hiệu, giải mã dữ liệu,  phân tích tính chất sóng qua FFT,…. và việc này thường chiếm khá nhiều thời gian để xác định một dãy tần số thuộc nhóm nào. Nếu chỉ dựa vào bảng tham chiếu được quy hoạch bởi cục tần số vô tuyến điện thì trong một số trường hợp sẽ không chính xác do người dùng thu/phát dạng ad-hoc.

Trong thời gian gầy đây, một dự án mã nguồn mở sử dụng ngôn ngữ Python có tên là “Neural Network signal recognition rtlsdr” được cung cấp tại trang Sourceforge bởi tác giả randaller; mã nguồn được công bố hiện tại chỉ là một phần của dự án đang được tiếp tục phát triển. Theo thông tin từ dự án, randaller sẽ phát triển kỹ năng học sâu (deep learning) trong mô hình mạng neural (neural network) nhằm có thể tự động xác định dạng tín hiệu vô tuyến như cách mà con người thực hiện; cnn-rtlsdr thực hiện “đào tạo” bằng các nguồn dữ liệu ban đầu, bao gồm: dữ liệu thô IQ (IQ data), dữ liệu đồ thị FFT, giải điều chế một số phần tín hiệu hoặc giải điều chế dữ liệu âm thanh. Thư viện hỗ trợ máy học tensorflow được sử dụng trong bộ mã nguồn và kỹ thuật học sâu cũng được áp dụng trong phiên bản đầu tiên này.

Tại thời điểm hiện tại, chương trình chỉ có thể xác định các loại tín hiệu là WFM, TV SECAM và TETRA. Việc xác định chính xác một số loại tín hiệu lạ cũng có thể được thực hiện bằng phương pháp này, tuy nhiên cần phần cứng GPU để tăng tốc độ xử lý; kết quả xuất ra sau quá trình học dữ liệu sẽ cho biết một dãy tần số thuộc nhóm vô tuyến nào và tỉ lệ % nhận diện.

Kết quả thu được từ phần mềm sau khi quét dãy tần số mặc định 85MHz -108MHz, gain 20dB cho kết quả khá chính xác

Cài đặt và thử nghiệm

Mã nguồn có thể được tải tại liên kết neural-net-recognition-rtlsdr; và yêu cầu cài đặt gói phần mềm Anacoda, chọn phiên bản Python 3.6 version – 64-Bit Graphical Installer.

Sau khi cài đặt thành công gói Anacoda, người dùng mở chương trình Anacoda Prompt tại Start menu và di chuyển đến thu mục cnn-rtlsdr đã được giải nén.

Tiến hành cài đặt các gói thư viện theo yêu cầu sử dụng lệnh pip install -r requirements.txt. Trong trường hợp người dùng không sở hữu một card màn hình trên máy tính thì có thể bỏ gói cài đặt tensorflow-gpu==1.4.0 trong tập tin requirements.txt trước khi sử dụng cài đặt các thư viện, lúc này mặc dịnh chương trình sẽ sử dụng CPU cho việc tính toán. Bạn có thể tham khảo thêm hướng dẫn tại trang chính thức của dự án https://sourceforge.net/projects/neural-net-recognition-rtlsdr/files/.

Tải gói phần mềm hỗ trợ phần cứng RTL-SDR tại RelWithDebInfo.zip, giải nén và sao chép hai tập tin rtl-sdr-release\x64\libusb-1.0.dll + rtlsdr.dll vào C:\Windows.

Quá trình cài đặt đến đây là hoàn thành và bạn có thể tiến hành trải nghiệm chương trình bằng cách sử dụng lệnh python predict.py hoặc python predict_scan.py. Các tùy chọn khác có thể tham khảo python predict_scan.py –start 85000000 –stop 108000000 –step 50000 –gain 20 –ppm 56 –threshold 0.9955.

Với đặc tính linh động và có khả năng nhận biết những loại sóng mới, phần mềm sẽ góp phần trong công tác quản lý tần số và nghiên cứu vô tuyến điện với những dãy tín hiệu trải dài trên nhiều băng tần khác nhau.