在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用MATLAB和Simulink進行模式S檢測和解碼

星星科技指導員 ? 來源:ADI ? 作者:Mike Donovan, Andrei ? 2023-01-08 10:52 ? 次閱讀

作者:Mike Donovan, Andrei Cozma, and Di Pu

可檢測和解碼的無線信號無處不在,使用當今的軟件定義無線電(SDR)硬件(如ADI公司集成RF捷變收發器AD9361/AD9364)可以輕松訪問這些信號。 ?1,2商用飛機的自動相關監視廣播 (ADS-B) 傳輸提供現成的無線信號,可用于演示基于連接到 Xilinx Zynq-7000 全可編程 SoC 的 AD9361 的快速原型制作流程。 商用飛機使用 ADS-B 發射器向空中交通管制員報告其位置、速度、高度和飛機 ID。??3飛行數據格式在國際民用航空組織 (ICAO) 的模式 S 擴展 Squitter 規范中定義。4ADS-B正在世界各地推出,以實現空中交通管制和防撞系統的現代化。它已經在歐洲被采用,并正在逐步引入美國。

S模式擴展分離器標準提供了RF傳輸格式和編碼數據字段的詳細信息。應答器傳輸具有以下特性:

發射頻率:1090兆赫

調制:脈沖位置調制 (PPM)

數據速率:1 Mbps

消息長度:56 μs 或 112 μs

24 位 CRC 校驗和

調諧頻率和帶寬完全在AD9361 RF收發器的能力范圍內,并且可以使用各種軟件或嵌入式平臺選項檢測和解碼接收到的I/Q樣本。

在本文中,我們將討論如何使用基于AD9361的接收器平臺捕獲這些S模式信號,然后使用MATLABSimulink開發可以解碼消息的算法。該算法的開發最終目標是將解決方案部署到Zynq SoC平臺上,例如安富利PicoZed? SDR模塊系統(SOM)。

接收器設計挑戰

S模式消息為短(56 μs)或長(112 μs)。短消息包含消息類型、飛機標識號和循環冗余校驗 (CRC) 校驗和。長消息還包含高度、位置、速度和飛行狀態。無論哪種情況,S模式傳輸都以8 μs前導碼開始。接收方使用此前導碼模式來確定正在傳輸的有效消息,并幫助接收方確定消息位何時開始。有關詳細信息,請參見圖 1。5

poYBAGO6L9qAGnXyAAAp7m8zLsQ646.png?la=en&imgver=1

圖1.模式 S 消息的結構。

S模式波形相當簡單,但成功接收和解碼傳輸的消息仍然存在一些挑戰。

接收環境通常包含非常短的消息,其中穿插著較長的空閑時間,當發射飛機距離接收器很遠時,接收的信號可能非常微弱。傳統波形也以 1090 MHz 傳輸。接收器需要使用前導碼來識別擁塞頻帶中的高幅度和低幅度模式S傳輸。

位在1 μs位間隔內具有兩種可能的模式之一。邏輯 1 在前 1/2 μs 內導通,在第二個 1/2 μs 內關閉。邏輯 0 在前 1/2 μs 內關閉,在第二個 1/2 μs 內導通。由于位決策是基于基于時間的模式做出的,因此接收器需要使用前導碼來準確找到消息位開始的I/Q采樣。

模式 S 消息由 88 個信息位和 24 個校驗和位組成。接收器需要能夠清除寄存器、做出位決策、計算校驗和并在正確的時間讀取校驗和寄存器。接收器需要定時控制才能正常工作。

對于嵌入式設計,解碼過程必須逐個樣本地工作。存儲大量數據以進行批處理并不是嵌入式系統的現實接收器設計。

AD9361等功能強大的RF前端與MATLAB等技術計算語言相結合,極大地簡化了與檢測和解碼這些傳輸相關的問題。MATLAB 和信號處理工具箱中的函數可用于識別同步模式、計算本底噪聲、做出位決策以及計算校驗和。MATLAB 中的條件和執行控制功能簡化了控制邏輯。從二進制或文本文件訪問測試數據,或使用AD9361 SDR平臺直接流式傳輸到MATLAB都很容易。最后,MATLAB 的解釋性質使得與數據交互、嘗試不同的方法以及交互式開發解決方案變得容易。?

在 MATLAB 中對模式 S 接收器算法進行建模和驗證

有興趣了解MATLAB源代碼的讀者可以在ADI公司的GitHub存儲庫中找到這些文件。入門級函數為 ad9361_ModeS.m,還提供了此函數調用的文件。

設計接收器算法的第一步是訪問一些源數據。由于許多飛機現在都配備了S模式轉發器,因此可以將接收器調諧到1090 MHz的廣播頻率并捕獲本地傳輸。在我們的例子中,我們可以使用 Zynq SDR 快速原型制作平臺。ADI公司提供了一個MATLAB系統對象?,能夠通過以太網從FMCOMMS平臺接收數據。6System 對象允許用戶選擇調諧頻率和采樣率,使用無線電硬件收集接收樣本,并將接收樣本作為 MATLAB 變量直接引入 MATLAB 工作區。所需的代碼非常短;幾行代碼用于設置 MATLAB 系統對象,幾行代碼用于設置 FMCOMMS3,以及幾行代碼用于捕獲 I/Q 樣本并將其寫入 MATLAB 變量。代碼示例如圖 2、圖 3 和圖 4 所示。

pYYBAGO6L9uAJLdZAAEt_J8bUI0338.png?la=en&imgver=1

圖2.用于設置 MATLAB 系統對象的示例 MATLAB 代碼。

poYBAGO6L9yAeLJ7AACSaq68LEA474.png?la=en&imgver=1

圖3.用于配置 FMCOMMS3 板的示例 MATLAB 代碼。

pYYBAGO6L96AIyeAAADafr4EVQk039.png?la=en&imgver=1

圖4.用于捕獲 I/Q 樣本并將其寫入 Rx 變量的示例 MATLAB 代碼。

我們 使用 了一些 基于 這些 命令 的 代碼, 以 12.5 MHz 的 采樣 率 捕獲 多個 數據 集。選擇 12.5 MHz 速率 是為了 提供 足夠 的 樣本, 以 微調 前導 碼 與 第一 消息 位 的 對齊 方式, 并 平均 出 用于 做出 位 決策 的 樣本 中 的 一些 噪聲。100萬個樣品捕獲的結果如圖5所示。

poYBAGO6L-CAFk-yAAEp3_gvXYE070.png?la=en&imgver=1

圖5.在 1090 MHz 下捕獲樣本數據。

在這個簡短的數據集中,有14個信號在本底噪聲之上脫穎而出。在這 14 個信號中,有兩個是 S 模式消息。其余的都是應拒絕的遺留或雜散信號。放大到樣本編號 604000 附近的區域會顯示一條有效消息(參見圖 6)。

pYYBAGO6L-GAFIWMAAHxX6UYF60500.png?la=en&imgver=1

圖6.單模式 S 消息。

在此圖中,可以清楚地看到前導碼,并且由于PPM調制引起的位轉換很明顯。即使有這樣的干凈信號,通過檢查解碼位也需要良好的視力和很大的耐心。顯然,需要一個自動化程序來解碼這些消息。MATLAB 是開發該程序的良好解決方案。

可以接收和解碼模式 S 消息的 MATLAB 代碼可以總結如下:

計算本底噪聲和前導碼與 filter() 函數在短時間窗口內的相關性。在我們的解決方案中,我們使用 75 個樣本,相當于 6 μs。

當前導碼相關性超過本底噪聲一個顯著因素時,啟動邏輯以查找第一個消息位樣本。

這個閾值的選擇是主觀的。它應該足夠小以檢測微弱信號,但又足夠大以防止大量誤報。我們選擇比本底噪聲高 10× 的值作為捕獲大多數可解碼消息的合理閾值。

前導碼模式產生多個峰值。由于最佳匹配在前6 μs,因此存儲第一個峰值,開始搜索第一個消息位,并查看在接下來的3 μs中是否出現另一個更大的峰值。如果確實發生,請存儲新的峰值并重置搜索第一個消息位的開頭。

當出現最大峰值時,2 μs后開始消息位解碼。

圖7以綠色顯示本底噪聲,以及將理想前導碼與輸入數據相關聯的結果。本底噪聲上方有幾個峰值,但感興趣的峰值是幅度最大的峰值。第一個消息位的采樣發生在該峰值后2 μs。

poYBAGO6L-OAKpicAAC9G9owP1A314.png?la=en&imgver=1

圖7.計算本底噪聲和前導碼相關性。

對于每個單獨的位,對前 1/2 μs 和第二個 1/2 μs 的樣本幅度求和。無論總和較大,確定位是邏輯 1 還是邏輯 0。

在做出位決策時計算校驗和。這需要一些控制邏輯,用于在第一個位到達時重置CRC寄存器,計算88位的校驗和,然后清空最后24位的CRC寄存器。當接收位與校驗和匹配時,ADS-B 消息有效。

根據模式 S 標準解析消息位(參見圖 8)。

pYYBAGO6L-WARlVXAADNbzUtm-M140.png?la=en&imgver=1

圖8.解碼模式 S 消息。

上圖來自 MATLAB 命令窗口,顯示了從 100 萬個樣本數據集中成功解碼的兩條消息。將顯示構成 88 位消息和 24 位校驗和的十六進制字符,解碼過程的結果顯示飛機 ID、消息類型以及飛機速度、高度和位置。

MATLAB 提供了一種強大的數學和信號處理語言,可以相對輕松地解決這個問題。處理數據樣本并最終解碼消息所需的 MATLAB 代碼很短,只有 200 行 MATLAB 代碼。此外,MATLAB 的解釋性使得以交互方式嘗試設計理念并快速確定可行的解決方案變得容易。在各種數據集上測試了幾種時序機制、閾值和噪聲水平,以產生令人滿意的程序。

該 MATLAB 代碼已在當地空域飛行的飛機信號上進行了測試,并且已根據 airframes.org 和 flightaware.com 等來源對解碼消息進行了檢查。硬件和代碼性能非常好;我們已經能夠解碼50英里外飛機的傳輸。

實施途徑

MATLAB 是在 PC 上測試設計理念和運行算法的絕佳環境,但如果最終目標是生成要在嵌入式平臺上使用的軟件或 HDL,尤其是像 Zynq SoC 這樣的平臺,那么 Simulink 是一個很好的解決方案。Simulink 非常適合對針對可編程器件所需的硬件特定細節進行建模。一個好的工作流程是使用 MATLAB 開發和驗證算法,然后將設計轉換為 Simulink,并繼續沿著開發路徑進行最終的硬件實現。

幸運的是,該算法的 MATLAB 代碼逐個樣本處理數據,因此轉換為 Simulink 相當簡單。與 200 行 MATLAB 代碼相比,Simulink 模型易于顯示和描述(參見圖 9)。

poYBAGO6L-aAOrvoAAC-VVcXevk271.png?la=en&imgver=1

圖9.模式S檢測與譯碼算法的模擬模型.

在圖9中,您可以看到解碼的第一步是計算本底噪聲以及與前導碼的相關性。數字濾波器塊用于這些計算。時序控制塊是使用 Stateflow 實現的,Stateflow 是一種狀態機工具,用于為解碼算法的其余部分生成定時、復位和控制信號。狀態流對于要將控制邏輯與數據流分離的模型非常有用。激活時序和觸發器后,名為 BitProcess 的塊獲取輸入 I/Q 樣本并計算數據位,CRC_Check塊計算校驗和。消息解析仍然在由此 Simulink 模型驅動的 MATLAB 腳本中進行。?

深入了解該模型,您可以看到使 Simulink 適合嵌入式開發的一些功能,尤其是將設計劃分為面向 Zynq SoC 的功能以及生成 HDL 代碼和 C 代碼。

Simulink 具有出色的定點支持,因此您可以構建和測試設計的位真版本。各個塊允許您為模型中的數學運算設置字長和小數長度。用于計算前導碼相關性的數字濾波器模塊就是一個很好的例子(圖10)。您可以設置計算的舍入模式和溢出行為(地板和環繞是在 HDL 中完成數學運算的最簡單選擇)。此外,您可以為產品指定不同的字長和分數精度,并為濾波器指定累加器操作(圖 11)。您可以使用映射到接收器 ADC 的字長選擇,并利用硬件乘法器,例如 Zynq SoC DSP48 片中的 18 位× 25 位乘法器。

pYYBAGO6L-eANXlbAAFd7GB3TOQ417.png?la=en&imgver=1

圖 10.用于前導碼相關的 Simulink 數字濾波器塊,12 位數據類型。

poYBAGO6L-mAQ0G3AAIBxXGgmnU762.png?la=en&imgver=1

圖 11.定點數據類型設置。

嵌入式設計通常具有許多操作模式和有條件執行的算法。Stateflow特別擅長管理這些控制信號。狀態流為您提供了檢測和解碼模式 S 消息所需的控制邏輯的可視化表示形式。在下面的圖 12 中,您可以看到邏輯中的狀態為:

同步搜索:在捕獲的樣本中查找前導碼

WaitForT0:查找第一個消息位的開頭

位進程:啟用位處理

EmptyReg:清空校驗和寄存器,并將位與位處理的輸出進行比較

隨著檢測和解碼算法在不同狀態中的進展,Stateflow 模塊生成啟用位處理的信號,重置位決策計數器和校驗和寄存器,并在模式 S 消息末尾讀出校驗和位。

pYYBAGO6L-uAGDCKAAI027eFpIE523.png?la=en&imgver=1

圖 12.用于解碼模式 S 消息的狀態流程圖。

Simulink 模塊庫為工程師提供了在非常高的水平或非常精細的細節水平下工作的選擇。Simulink 具有數字濾波器、FFT 和數控振蕩器等高級模塊,可輕松構建信號處理設計。如果需要對設計進行更精確的控制,可能是為了速度或面積優化,工程師可以使用低級模塊,如單元延遲、邏輯運算符(例如 XOR)和開關。該模型中的 24 位校驗和是使用這些低電平塊構建的反饋移位寄存器(圖 13)。

poYBAGO6L--AaRgQAACtQRpNi_k025.png?la=en&imgver=1

圖 13.用于模式 S 校驗和計算的反饋移位寄存器。

此 Simulink 模型是 MATLAB 算法的硬件特定版本,用于檢測和解碼模式 S 消息。Simulink 是一種有用的工具,用于彌合用 MATLAB 編寫的行為算法與嵌入式硬件實現代碼之間的差距。您可以將特定于硬件的詳細說明引入 Simulink 模型,運行模型,并驗證您所做的更改不會破壞解碼算法。

結論

Zynq SDR 快速原型制作平臺和 MathWorks 軟件的結合為通信工程師提供了一種全新且靈活的方法,可以快速為無線接收器設計理念進行原型設計。捷變寬帶RF收發器AD9361/AD9364提供的高度可編程性和性能以及硬件與MATLAB環境之間的簡單連接,使工程師可以使用各種有趣的無線信號。使用 MATLAB 的工程師可以快速嘗試多種設計理念,并最終確定出有前途的解決方案。如果設計的最終目標是嵌入式處理器,那么 Simulink 就是工程師可以使用的工具,通過硬件特定的想法來完善設計,并最終生成用于對處理器進行編程的代碼。此工作流程減少了設計無線接收器所需的技能數量,并縮短了從概念到工作原型的開發周期。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 收發器
    +關注

    關注

    10

    文章

    3454

    瀏覽量

    106243
  • matlab
    +關注

    關注

    185

    文章

    2980

    瀏覽量

    231007
  • SDR
    SDR
    +關注

    關注

    7

    文章

    234

    瀏覽量

    50578
收藏 人收藏

    評論

    相關推薦

    講解MATLAB/Simulink HDL使用入門

    我們將使用實例講解MATLAB / Simulink HDL 使用入門。
    的頭像 發表于 11-06 09:12 ?1459次閱讀
    講解<b class='flag-5'>MATLAB</b>/<b class='flag-5'>Simulink</b> HDL使用入門

    如何利用MATLABSimulink進行S模式檢測和解碼

    如何利用MATLABSimulink進行S模式檢測和解碼
    發表于 05-18 07:17

    如何利用MATLABSimulink進行S模式檢測和解碼

    如何利用MATLABSimulink進行S模式檢測和解碼
    發表于 05-20 06:31

    什么是MATLAB SIMULINKSimulink有哪些應用實例?

    什么是MATLAB SIMULINKSimulink有哪些應用實例?怎樣去設計一種Simulink電力電子控制系統?
    發表于 07-02 06:50

    基于MatLab/Simulink的GPS系統仿真

    基于MatLab/Simulink的GPS系統仿真:快速可靠的GPS (全球定位系統)系統仿真可對雙頻GPS 接收機的設計、接收算法的研究提供有效的幫助。文中詳細介紹了在MatLab/Simu
    發表于 02-08 14:55 ?112次下載

    電路實驗與Matlab/Simulink仿真

    電路實驗與Matlab/Simulink仿真:摘要:在探索和研究電路實驗的改革創新過程中,分析電路實驗存在的不足,對電路實驗提出改進的措施.提出采用工程軟件MatlabSimulink
    發表于 04-14 08:26 ?169次下載

    MathWorks發布在MATLABSimulink中提供

    MathWorks發布在MATLABSimulink中提供高級信號處理的新工具 MathWorks面向使用MATLABSimulink設計高級信號處理和通信系統發布了重要的新功
    發表于 09-17 12:47 ?552次閱讀

    Matlab-Simulink教程集合(文檔)

    Matlab-Simulink教程集合【文檔】,大學學習Matlab基礎教材。
    發表于 08-23 16:46 ?0次下載

    基于AD9361補捉S模式訊號并通過MATLABSimulink來開發譯碼訊息的算法

    本文將討論如何使用基于AD9361的接收平臺,來補捉這些S模式訊號,然后再透過MATLABSimulink來開發能夠譯碼這些訊息的算法此Simul
    發表于 11-17 01:02 ?4130次閱讀
    基于AD9361補捉<b class='flag-5'>S</b><b class='flag-5'>模式</b>訊號并通過<b class='flag-5'>MATLAB</b>及<b class='flag-5'>Simulink</b>來開發譯碼訊息的算法

    利用MATLABSimulink進行S模式檢測和解碼

    自動相關監視廣播波形,能被檢測和解碼的無線信號無處不在。利用當今的軟件定義無線電 (SDR) 硬件,像ADI公司的集成RF捷變收發器 AD9361/AD9364 等,很容易接入這些信號?1,2。商業
    發表于 11-17 08:42 ?5338次閱讀

    MathWorks主張使用MatlabSimulink開發工具進行基于模型的設計

    相信大家和小編一樣,都了解Matlab以及FPGA開發,但是你有想過使用Matlab來對你的FPGA進行開發嗎?一段時間以來,MathWorks一直主張使用Matlab
    的頭像 發表于 02-09 10:10 ?1w次閱讀
    MathWorks主張使用<b class='flag-5'>Matlab</b>和<b class='flag-5'>Simulink</b>開發工具<b class='flag-5'>進行</b>基于模型的設計

    如何使用MatlabSimulink進行調制解調的分析

    調制與解調是信號處理應用的重要內容,該文利用 Matlab/Simulink 對幅度調制與解調進行仿真和分析。首先采用 MATLAB7.0 語言編制腳本文件, 對信號
    發表于 04-22 08:00 ?13次下載
    如何使用<b class='flag-5'>Matlab</b>和<b class='flag-5'>Simulink</b><b class='flag-5'>進行</b>調制解調的分析

    MATLAB Simulink系統進行圖像處理仿真的教程免費下載

    本文檔的主要內容詳細介紹的是MATLAB Simulink系統進行圖像處理仿真的教程免費下載包括了:1 圖像處理模塊庫,2 基于SIMULINK的圖像增強,3 基于
    發表于 10-09 08:00 ?0次下載
    <b class='flag-5'>MATLAB</b> <b class='flag-5'>Simulink</b>系統<b class='flag-5'>進行</b>圖像處理仿真的教程免費下載

    如何才能使用MATLABSimulink進行PSK傳輸系統的仿真

     利用MATLAB/Simulink軟件中的Communication Blockets(通信模塊)對PSK數字傳輸系統進行動態、可視化仿真,清晰地表現出PSK傳輸系統的系統組成及各項性能指標。
    發表于 11-18 17:57 ?15次下載
    如何才能使用<b class='flag-5'>MATLAB</b>和<b class='flag-5'>Simulink</b><b class='flag-5'>進行</b>PSK傳輸系統的仿真

    使用Zynq SDR套件和Simulink代碼生成工作流程進行快速原型設計

    本系列第 2 部分中討論的 Simulink 模型(“使用 MATLABSimulink 進行模式
    的頭像 發表于 01-08 09:50 ?2399次閱讀
    使用Zynq SDR套件和<b class='flag-5'>Simulink</b>代碼生成工作流程<b class='flag-5'>進行</b>快速原型設計
    主站蜘蛛池模板: 激情婷婷综合久久久久 | 毛片录像 | 色聚网久久综合 | 激情综合五月亚洲婷婷 | 欧美在线一区二区三区 | 亚洲三级电影 | 二区三区在线 | 五月婷婷激情视频 | 理论在线看| 一级毛片免费在线观看网站 | a毛片基地免费全部香蕉 | 91大神在线视频观看 | 中国男女全黄大片一级 | 国产精品大尺度尺度视频 | 免费大秀视频在线播放 | 日夜操在线视频 | 视频在线观看网站免费 | 男人你懂的网站 | 大胆国模一区二区三区伊人 | 天天插天天干天天操 | 天堂网在线.www天堂在线资源 | 亚洲毛片儿 | 激情五月婷婷综合网 | 亚洲精品久久久久午夜三 | 国产综合视频在线 | a视频免费看 | 在线观看永久免费视频网站 | 欧美人与zoxxxx视频 | 免费国产小视频 | 亚色在线视频 | 你懂的国产精品 | 丁香五六月婷婷 | 69xxxx女人| 久久亚洲视频 | 七月婷婷精品视频在线观看 | 爽死你个放荡粗暴小淫视频 | 激情文学综合 | 手机在线免费视频 | 激情五月激情综合色区 | 国产亚洲一区二区在线观看 | 黄色在线免费看 |