NI USRP X410 無線電上的雷達目標仿真

此示例展示如何在 NI? USRP? 無線電的 FPGA 上部署雷達目標仿真算法。

介紹

在本例中,您將從 Simulink? 模型入手,該模型可模擬最多四個雷達目標響應。您將按照分步指南,在 Simulink 中從該模型生成比特流,并使用生成的 MATLAB? 主機接口腳本將其部署到 NI USRP 無線電上。該示例允許您發送線性 FM 雷達脈沖序列,然后在 MATLAB 中捕獲并繪制模擬目標距離-多普勒響應。

在這里插入圖片描述
有關如何在 NI USRP 無線電的 FPGA 上原型化和部署軟件定義無線電算法的更多信息,請參閱目標 NI USRP 無線電工作流程。

設計概述

該示例使用了來自雷達目標仿真器和 HDL 編碼器(雷達工具箱)示例的算法。該算法接收線性 FM 脈沖序列,并通過對接收波形應用可變距離延遲、多普勒頻移和增益來模擬最多四個目標。然后,該算法以已知的時間偏移重新傳輸修改后的波形。此設計修改了接口,使您能夠將生成的比特流部署到 NI USRP 無線電的 FPGA 上。

在這里插入圖片描述

打開 Simulink 模型

Simulink 模型采用硬件建模方式實現目標仿真算法,并使用支持 HDL 代碼生成的模塊。它采用定點算法,并包含控制模型數據流的控制信號。

從 MATLAB 打開模型。

open_system('wtRADARTargetEmulatorSL');

在這里插入圖片描述
該模型為子系統提供數據并保存其輸出數據wtRADARTargetEmulatorSL。

打開wtRADARTargetEmulatorSL子系統。

open_system('wtRADARTargetEmulatorSL/wtRADARTargetEmulatorSL');

在這里插入圖片描述
數據流經這些塊和子系統:

  • AND 塊在每個突發的最后一個數據包的最后一個樣本上聲明突發結束 (EOB) 信號。

  • 該Multiple Target Emulator子系統模擬四個不同目標的響應。

  • 該Sum Channels子系統將來自四個目標的響應合并為單個數據流。

  • 每 256 個有效樣本或 EOB 信號被斷言時,分組塊就會斷言最后一個信號。

  • 該區域通過由txTimeOffsetControl retransmission time relative to receive time端口控制的固定值生成從無線電重新傳輸下一個數據包的時間戳。

打開Multiple Target Emulator子系統。

open_system('wtRADARTargetEmulatorSL/wtRADARTargetEmulatorSL/Multiple Target Emulator');

在這里插入圖片描述
該Multiple Target Emulator子系統根據輸入enable、delay、inc和gain端口,應用可變時間延遲、可變頻移和可變衰減,模擬四個不同目標的響應。操作如下:

  • 當enable為真時,輸入數據將提供給可變時間延遲。

  • 可變時間延遲將輸入樣本緩沖在內存中,緩沖的樣本數量由延遲端口指定。

  • 延遲數據與數控振蕩器 (NCO) 的輸出相乘,以實現可變頻率偏移。NCO 由inc端口值控制。

  • 延遲和移位的數據與增益端口值相乘,以實現可變衰減。

open_system('wtRADARTargetEmulatorSL');

在這里插入圖片描述
每個目標的輸入都被指定為wtRADARTargetEmulatorSL子系統上的輸入寄存器端口:e1、e2、e3和e4對應于啟用輸入端口;d1、d2、d3和d4對應于延遲輸入;i1、i2、i3和i4對應于inc輸入端口;g1、g2、g3和g4分別對應于四個目標的增益輸入端口。

模擬設計

通過仿真模型驗證設計。啟用四個目標并指定初始雷達截面 (RCS)、距離和速度。

targetEnabled = [true true true true]; % 設置為 true 以模擬目標
targetRCS = [1 2 3 4]; % dBsm 
targetRange = [5e3 15e3 3e3 5e3]; % m 
targetSpeed = [-200 -100 100 200]; % m/s

設置模型應用的相對增益所基于的最大增益。這可以避免由于定點數據類型造成的不必要的信號損失,并且可以通過使用無線電前端的無線電增益來計算。指定maxGain為空可在輔助函數中使用計算出的最高實際增益helperRadarTargetSimulationSetup。

maxGain = [];

使用輔助函數在 MATLAB 中設置模型所使用的目標仿真參數helperRadarTargetSimulationSetup。

sl_in = helperRadarTargetSimulationSetup(targetEnabled,targetRCS,targetRange,targetSpeed,maxGain);

運行 Simulink 模型。

sl_out = sim("wtRADARTargetEmulatorSL.slx");### Searching for referenced models in model 'wtRADARTargetEmulatorSL'.
### Total of 1 models to build.
### Building the rapid accelerator target for model: wtRADARTargetEmulatorSL
### Successfully built the rapid accelerator target for model: wtRADARTargetEmulatorSL

處理模擬輸出數據并使用輔助函數繪制距離多普勒響應helperVisualizeRadarTargetSimulation。

創建距離多普勒響應對象來處理數據
在這里插入圖片描述

設置環境和無線電

要使用 Wireless Testbench? 連接 NI USRP 無線電,您必須首先安裝并配置其他工具箱、支持包和第三方工具。更多信息,請參閱NI USRP 無線電安裝指南。

如果您之前未保存過無線電硬件的無線電設置配置,請使用此radioSetupWizard功能打開“無線電設置”向導并按照步驟操作。要查看之前保存的無線電設置配置,請使用此radioConfigurations功能。

配置模型以生成 IP 核

首先,使用(HDL Coder)函數設置 Xilinx? 工具鏈。指定 Vivado? bin 目錄的路徑。更多信息,請參閱設置第三方工具。hdlsetuptoolpath

>> hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath','/opt/Xilinx/Vivado/2021.1/bin');

在Simulink 工具條的“應用”選項卡中,選擇“HDLCoder”。打開“HDL 代碼”選項卡并按照以下步驟操作:# 確保子系統已在“代碼”選項wtRADARTargetEmulatorSL中固定。要固定此選項,請在 Simulink 模型中選擇子系統,然后單擊固定圖標。# 在“輸出”>“IP 核”選項中選擇“IP 核”。wtRADARTargetEmulatorSL

在這里插入圖片描述
配置 HDL 代碼生成設置

要打開“配置參數”窗口,請點擊“HDL 代碼”選項卡中的“設置”。然后,請按照以下步驟操作:

在HDL 代碼生成面板的基本選項中,確保將語言設置為Verilog。默認情況下,HDL Coder 會在文件夾中生成 Verilog 文件hdlsrc。您可以選擇其他位置。如果您進行了任何更改,請點擊應用。
在這里插入圖片描述
在HDL 代碼生成 > 目標 > 工作流設置中,單擊瀏覽并選擇要保存生成的項目文件的項目文件夾。

在HDL 代碼生成 > 目標 > 工具和設備設置中,將目標平臺設置為USRP X410。如果您使用的是其他 USRP 無線電,請選擇相應的目標平臺并相應地調整參考設計參數。

在“HDL 代碼生成”>“目標”>“參考設計設置”中,將“參考設計”設置為X1_200 10GigE,或者如果您使用的是其他 USRP 無線電,則設置為所需的參考 FPGA 映像。使用以下值設置參考設計參數:

  • 外部存儲器- 設置為PL DDR Buffer通過無線電上的內存緩沖區傳輸樣本。此設置可確保 MATLAB 和無線電之間的樣本連續。

  • 輸入流的數量- 設置為1,因為 DUT 連接到一個數據輸入流。

  • 輸出流的數量- 設置為1,因為 DUT 連接到一個數據輸出流。

  • 天線數量- 設置為1,因為 DUT 有一個無線電接收和發射通道。

  • 采樣率 (S/s) - 設置250e6為無線電支持的目標模擬器硬件所需的基帶采樣率。有關支持的采樣率列表,請參閱NI USRP 無線電中的基帶采樣率。

  • BlockID - 設置為任意 32 位十六進制數。默認值為12345678。

  • DUT 時鐘源- 設置為Radio。此選項選擇無線電前端的主時鐘速率 (MCR) 作為 DUT 時鐘。

  • 流端口 FIFO 長度(樣本) - 設置為Auto。

  • 寄存器端口 FIFO 長度(樣本) - 設置為Auto。

在HDL 代碼生成 > 目標 > 目標設置中,目標頻率默認設置為無線電支持的最大 MCR。

單擊“應用”。
在這里插入圖片描述
有關更多信息,請參閱配置 HDL 代碼生成設置。

配置目標接口

  • 在HDL Code選項卡中,單擊Target Interface以打開 IP Core 編輯器。

  • 在“接口映射”選項卡中,單擊重新加載端口接口映射選項Reload IP core settings and interface mapping table from model:
    在這里插入圖片描述

  • 將 DUT 的輸入寄存器指定為寫入寄存器。

  • 為輸入和輸出流接口分配數據、有效、就緒、最后、突發結束 (EOB)、hastime 和時間戳信號。
    在這里插入圖片描述
    每個流接口數據輸入和輸出端口都有一個選項菜單。要重新傳輸接收到的樣本,請將源和接收器連接選項設置為Radio。對于這些adcDataIn選項,請將流緩沖區大小設置為32768,這是默認設置。緩沖區大小必須是 2 的冪,以確保最佳利用 FPGA RAM 資源。緩沖區大小根據樣本數量指定。
    在這里插入圖片描述
    單擊以下按鈕驗證接口映射Validate IP core settings and interface mapping:
    在這里插入圖片描述

生成并加載比特流

要從 IP 核生成比特流,首先從“構建比特流”菜單中打開部署設置,并確保選中“在外部運行構建過程”選項。此設置是默認設置,可確保比特流構建在外部 Shell 中執行,從而允許您在構建 FPGA 映像時繼續使用 MATLAB。
在這里插入圖片描述
在這里插入圖片描述
點擊“構建比特流”即可創建 Vivado IP 核項目并構建比特流。基本項目檢查完成后,診斷查看器會顯示一條Build Bitstream Successful消息以及警告消息。但是,您必須等到外部 shell 顯示比特流構建成功后才能繼續下一步。比特流構建過程可能需要幾個小時。在顯示構建成功提示之前關閉外部 shell 將終止構建。成功構建比特流后,此項目的比特流將以名稱生成x4xx.bit,并位于build_X410_X1_200/build_X410_X1_200工作目錄的文件夾中。

在“構建比特流”中,打開“部署設置”。在“程序目標設備”設置中,設置 IP 地址。默認值為 192.168.10.2。如果您在使用“無線電設置”向導設置硬件時更改了默認 IP 地址,請相應地設置 IP 地址。
在這里插入圖片描述
要將比特流加載到收音機上,有兩個選項:

  • 在后續步驟中使用生成的主機接口腳本加載比特流,該腳本調用該programFPGA函數。

  • 現在通過單擊“構建比特流”菜單中的“編程目標設備”將比特流加載到設備上。

如果您的無線電設備是 USRP X310,則編程大約需要五分鐘。對于其他無線電設備,則只需不到一分鐘。有關更多信息,請參閱生成比特流和編程 FPGA。

生成和修改主機接口腳本

要生成 MATLAB 腳本,以便連接到無線電并在其上運行已部署的設計,請點擊“HDL 代碼”選項卡中的“主機接口腳本”。這將生成一個接口腳本文件和設置函數文件,它們特定于 IP 核的目標接口映射。更多信息,請參閱運行和驗證硬件實現。

運行主機接口腳本

此示例提供了兩個現成的實時腳本,用于連接、配置和控制部署在 FPGA 上的目標仿真算法的無線電設備。您可以選擇使用單個無線電設備運行和驗證 DUT,或者使用第二個無線電設備發送測試信號并接收響應。

在單無線電上運行并驗證 DUT

打開RADARTargetEmulator_SingleDevice.mlx。運行此實時腳本,從 MATLAB 發送雷達脈沖序列,將脈沖序列接收到目標模擬器 DUT 中,發送目標模擬器響應,并將響應捕獲到 MATLAB 中。
在這里插入圖片描述
繪制響應圖,并疊加目標位置和恒虛警率 (CFAR) 目標檢測結果,以驗證被測器件 (DUT) 的運行情況。該圖顯示了示例輸出。
在這里插入圖片描述

open("./RADARTargetEmulator_SingleDevice.mlx")

使用外部刺激運行 DUT

打開RADARTargetEmulator_MultiDevice.mlx。運行此實時腳本,在一個無線電的后臺線程中模擬雷達場景。同時,在 MATLAB 主線程中,將第二個無線電配置為基帶收發器,以發射雷達脈沖序列并捕獲響應。
在這里插入圖片描述
您還可以使用此方法來模擬其他無線電硬件的目標響應。

open("./RADARTargetEmulator_MultiDevice.mlx")

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92627.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92627.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92627.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PyTorch 深度學習實戰教程-番外篇04:卷積層詳解與實戰指南

標簽:# 深度學習 #人工智能 #神經網絡 #PyTorch #卷積神經網絡 相關文章: 《Pytorch深度學習框架實戰教程01》 《Pytorch深度學習框架實戰教程02:開發環境部署》 《Pytorch深度學習框架實戰教程03:Tensor 的創建、屬性、操作與…

LeetCode 面試經典 150_數組/字符串_分發糖果(15_135_C++_困難)(貪心算法)

LeetCode 面試經典 150_數組/字符串_分發糖果(15_135_C_困難)題目描述:輸入輸出樣例:題解:解題思路:思路一(貪心算法):代碼實現代碼實現(思路一(貪…

配置timer控制 IO的輸出(STC8)

使用STC8的Timer控制IO輸出 STC8系列單片機具有多個定時器,可以用于精確控制IO口的輸出狀態。以下是使用Timer0和Timer1控制IO輸出的方法。 初始化Timer0 配置Timer0為16位自動重裝模式,用于周期性控制IO輸出: /************************ 定時…

【Python練習】086. 編寫一個函數,實現簡單的DHCP服務器功能

086. 編寫一個函數,實現簡單的DHCP服務器功能 086. 編寫一個函數,實現簡單的DHCP服務器功能 安裝依賴庫 示例代碼 代碼說明 示例輸出 注意事項 擴展功能 DHCP服務器功能實現方法 依賴庫安裝 基本功能實現 功能說明 運行方法 注意事項 擴展功能 086. 編寫一個函數,實現簡單的…

生產環境Tomcat運行一段時間后,如何測試其性能是否滿足后續使用

要測試生產環境中已運行一段時間的Tomcat性能是否滿足后續使用需求,需從基礎監控、負載壓力測試、配置合理性校驗、穩定性驗證等多維度入手,結合工具和實際業務場景定位瓶頸,確保其能應對未來可能的流量增長。以下是具體方法和步驟&#xff1…

Qt中的設計模式:經典的MVC,MVP和MVVM

Qt中的設計模式:經典的MVC,MVP和MVVM 前言 ? 筆者這里最近正在研究經典的三大 Model/View 框架,不得不說,我先前的確寫過Qt在這里的體現,但是,筆者認為之前的文章中,我只是機械的memcpy的Qt的…

Windows浮動ip怎么配置

Windows浮動IP怎么配置,達到IP漂移的效果,方法肯定是有的,這里我推薦一款好用的高可用Vip漂移軟件PanguVip,我們先看下最終達到的效果圖,如下所示PanguVip軟件免費下載百度網盤為您提供文件的網絡備份、同步和分享服務…

[langchain] Sync streaming vs Async Streaming

我不太清楚langchain中的sync stream 和 async steam有什么關系和區別sync stream from langchain.chat_models import init_chat_model from langchain_deepseek.chat_models import ChatDeepSeek import dotenv dotenv.load_dotenv()messages [ ("system", &quo…

nginx下lua的實現機制、Lua錯誤處理、面向對象

nginx下lua的實現機制 nginxlua概述 nginx:功能由模塊提供。 http模塊、events模塊,mail模塊。 處理http請求的時候,可以利用模塊做一些功能:eg:登錄校驗,js合并,數據庫訪問,鑒權。 …

Axure基于中繼器實現的組件庫(導航菜單、動態表格)

摘要 本文將為您詳細介紹基于 Axure 的中繼器組件庫中的 9 個獨特組件,這些組件不僅能夠極大地提升您的原型設計效率,還能為您的項目增添令人驚嘆的交互效果和視覺呈現。 引言 在當今快速發展的數字產品設計領域,原型設計工具的革新不斷推動著…

Kafka 生產者與消費者分區策略全解析:從原理到實踐

一、生產者分區策略1.1 分區好處(1)便于合理使用存儲資源,每個Partition在一個Broker上存儲,可以把海量的數據按照分區切割成一塊一塊數據存儲在多臺Broker上。合理控制分區的任務,可以實現負載均衡的效果。&#xff0…

高頻面試點:深入理解 TCP 三次握手與四次揮手

在網絡通信的世界里,TCP(Transmission Control Protocol,傳輸控制協議)是確保數據可靠傳輸的基石。其中,三次握手建立連接、四次揮手斷開連接的過程,更是 Java 秋招面試中的高頻考點。今天,我們就深入剖析這兩個關鍵過程,結合原理、代碼示例與面試真題,幫你吃透知識點…

k8s-nfs實現創建sc的兩種方式

法一:基于 官方 NFS CSI 插件 法二:基于 nfs-subdir-external-provisioner 法一 官方 NFS CSI 插件 大致步驟# 安裝 NFS sudo apt update sudo apt install -y nfs-kernel-server # 創建共享目錄 sudo mkdir -p /data/nfs sudo chmod 777 /data/nfs # 配…

n8n 入門指南:更適合跨境出海搞錢的AI智能體

如果你最近刷到 AI 圈的分享應該會發現——n8n 又火起來了。其實 n8n 早在 2020 年左右就被程序員玩過一波,當時很多人拿它做網站自動發郵件、消息轉發之類的“流程自動化”。但那時候 AI 還沒這么卷,大家也沒覺得多有用。n8n為什么最近又翻紅&#xff1…

【數據分享】各省農業土地流轉率(2010-2023)

數據介紹土地流轉是推動農業規模化、現代化發展的關鍵機制。為助力相關研究,現分享一份覆蓋全國30個省級行政區、時間跨度為2010-2023年的農業土地流轉率面板數據集。本數據直接提取自權威統計年報,具有較高的參考價值。一、數據概覽覆蓋范圍&#xff1a…

音視頻時間戳獲取與同步原理詳解

引言:為什么音視頻同步如此重要? 在音視頻技術領域,"同步"是決定用戶體驗的核心要素。想象一下觀看電影時畫面與聲音錯位0.5秒的場景:角色說話時嘴唇動作與聲音不匹配,爆炸場景的視覺沖擊先于音效到達——這…

Day38--動態規劃--322. 零錢兌換,279. 完全平方數,139. 單詞拆分,56. 攜帶礦石資源(卡碼網),背包問題總結

Day38–動態規劃–322. 零錢兌換,279. 完全平方數,139. 單詞拆分,56. 攜帶礦石資源(卡碼網),背包問題總結 今天的是幾道經典的“完全背包”題目。前兩道題目,要區分求的是“價值”,還…

應用層Http協議(1)

應用層Http協議(1) 在互聯網世界中,HTTP(HyperText Transfer Protocol,超文本傳輸協議)是一個至關重要的協議。它定義了客戶端(如瀏覽器)與服務器之間如何通信,以交換或傳…

elementui input無法輸入問題

背景。開發小程序。自定義表單在pc段設置好input輸入框屬性后。 在小程序端無法輸入原因:長度受限制,導致input組件的maxlength屬性認為長度是0導致無法輸入任何值。看解釋是應為遇到空字符串等情況會設置為0解決。因為未找到設置maxlength為0處&#xf…

算法_python_學習記錄_02

算法學習和視頻學習過程中,有許多前幾天還不知道的知識點,現在一點一點歸納整理出來,穩步前進,前進~ 20_貪心算法系列題 00_參考文檔 詳解貪心算法(Python實現貪心算法典型例題)_順序貪婪算法-CSDN博客P…