精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

MATLAB浮點數與定點二進制補碼互轉算法驗證方案

454398 ? 來源:博客園 ? 作者:沒落騎士 ? 2020-10-15 10:59 ? 次閱讀

最近本人一直在學習ZYNQ SOC的使用,目的是應對科研需要,做出通用的算法驗證平臺。大概思想是:ZYNQ PS端負責與MATLAB上位機數據分析與可視化軟件交互:既可傳輸數據,也能通過上位機配置更新硬件算法模塊配置寄存器內容,同時可計算分析PL端算法實現性能指標。PL端的FPGA邏輯則負責算法的硬件實現,以探索高效并行硬件架構。為此本人后續會持續編寫《利用ZYNQ SOC快速打開算法驗證通路》系列專題博文,在各個階段進行些基礎性總結。

MATLAB中數據為雙精度浮點型,因此打開算法驗證通路的第一步即為MATLAB中浮點數與定點二進制補碼之間的相互轉換。在之前的博文:《FPGA與MATLAB數據交互高效率驗證算法——仿真階段》中提到過兩種數值表示方式之間的轉換,但為了便于testbench仿真,MATLAB寫和讀的文件均為txt文本文件。在算法板級驗證中,數據應以未經過ASCII碼編碼的二進制數據方式被處理。這里涉及到MATLAB函數fscanf和fprintf以及函數fread和fwrite的區別,前兩個分別為讀和寫文本文件,后兩個則是讀寫二進制文件。

以下給出浮點定點轉換以及讀寫二進制文件代碼:

先看下寫出到文件的數據和從該該文件讀回的數據是否一致。

直接對比數據和命令檢測結果顯示兩者完全一致。再來對比下量化之前與讀回定點數經過類型轉換后的浮點數。

MATLAB顯示兩者的差值。可見在浮點轉定點數時,會有一定的精度損失,但僅在10的負四次方數量級,在很多精度要求不高的場合下可以忽略。

現在利用Uedit軟件打開該文件,并以16進制方式顯示:

我們用前兩個數據做驗證,依次是00_38和FF_2A。由于是補碼形式,故先寫成二進制形式:0000_0000_0011_1000和1111_1111_0010_1010,再轉換為原碼:0000_0000_0011_1000和1000_0000_1101_0110,十進制結果就是56和-240,與MATLAB中數據吻合。

非常簡單的東西困擾了我有一陣,希望對大家有幫助吧。因為算法驗證平臺僅是載體,最重要的是PL端的算法硬件實現部分。為了簡單快速形成算法驗證通路,采用網絡調試助手和W5500協議棧芯片實現MATLAB與ZYNQ之間的數據傳輸,從而避免寫上位機軟件和網絡協議先關設計配置帶來的工作量。這部分內容在下篇博文中敘述。

編輯:hfy

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

    關注

    182

    文章

    2963

    瀏覽量

    230171
  • 二進制
    +關注

    關注

    2

    文章

    794

    瀏覽量

    41600
  • 浮點數
    +關注

    關注

    0

    文章

    60

    瀏覽量

    15864
收藏 人收藏

    評論

    相關推薦

    為什么Gain=1對應的默認值不是16位二進制補碼的中間數而是最小數?

    根據Gain Calibration中的描述,滿量程校準碼采用二進制補碼;Gain=1對應8000h;gain=2對應7FFFh;gain=0對應0000h。但是對于二進制補碼而言,
    發表于 11-18 08:12

    二進制編碼器工作原理 如何選擇二進制編碼器

    二進制編碼器是一種數字電路,它將輸入的二進制代碼轉換為對應的輸出信號。在數字系統中,編碼器用于將數據從一種形式轉換為另一種形式,以便于處理和傳輸。 二進制編碼器工作原理 輸入與輸出關系 :
    的頭像 發表于 11-06 09:44 ?306次閱讀

    labview中浮點數與十六進制字符串相互轉

    與下位機數據交流及通訊時,經常有浮點數與十六進制字符串相互轉化的需求,經過兩天總結,找到了最簡潔的相互轉化的方法,萌新歡迎大佬指正,文件也附上。*附件:HEX字符串與
    發表于 10-21 19:51

    二進制補碼及與原碼的互相轉換方法

    大沙把一些基礎的知識說清楚,本文介紹二進制補碼及與原碼的轉換方法。 先說原碼,原碼?是一種計算機中對數字的二進制定點表示方法。在原碼表示法中,數值前面增加了一位符號位,最高位為符號位,0表示正數,1
    的頭像 發表于 09-19 22:25 ?383次閱讀

    TMS320C6671定點浮點數字信號處理器數據表

    電子發燒友網站提供《TMS320C6671定點浮點數字信號處理器數據表.pdf》資料免費下載
    發表于 08-05 11:17 ?0次下載
    TMS320C6671<b class='flag-5'>定點</b>和<b class='flag-5'>浮點數</b>字信號處理器數據表

    二進制處理中的一些技巧

    二進制和十進制的處理中,有時候一些小技巧是很有用的。 1、把十進制數轉換成二進制數 (1)在MATLAB中有一個函數dec2b
    的頭像 發表于 07-05 11:51 ?521次閱讀

    一文帶你秒懂IEEE 754浮點數

    一、簡介1、常見的浮點數表示方式是IEEE754標準,它規定了浮點數的存儲格式和運算規則,這個標準定義了兩種浮點數表示:單精度和雙精度。2、任何一個浮點數
    的頭像 發表于 03-18 08:09 ?8375次閱讀
    一文帶你秒懂IEEE 754<b class='flag-5'>浮點數</b>

    如何實現二進制和BCD碼數據的相互轉變?

    如何實現二進制和BCD碼數據的相互轉變? 二進制碼是將十進制數字表示為二進制數和十進制數的一種表
    的頭像 發表于 02-18 14:51 ?3309次閱讀

    鴻蒙二進制數組創建

    背景 c++層數據都是二進制,需要轉換成arrayBuffer透傳到ets層給業務使用,但是鴻蒙的使用下面兩個api創建出來的二進制數組數據都是錯誤的。 接口
    的頭像 發表于 01-31 15:24 ?1218次閱讀

    10進制轉換為二進制算法

    進制轉換為二進制是計算機科學中非常基礎且重要的概念之一。在理解和應用計算機科學的基礎知識時,掌握這個算法是至關重要的。 在開始講解十進制轉換為二進
    的頭像 發表于 01-15 10:32 ?3048次閱讀

    10進制轉換為二進制算法

    二進制算法可以分為兩個步驟:整數部分轉換和小數部分轉換。下面將詳細介紹這兩個步驟。 首先,我們來討論整數部分的轉換。整數部分的轉換是比較簡單的,我們可以通過不斷地進行除2取余的操作來得到二進制數的每一位。 具體的步驟如下
    的頭像 發表于 01-11 09:14 ?2248次閱讀

    modbus浮點數怎么讀取

    常重要的。 首先,要理解Modbus浮點數的表示方式。在Modbus協議中,浮點數采用了IEEE 754標準進行編碼和解碼。IEEE 754標準定義了浮點數二進制表示方法,包括符號位
    的頭像 發表于 12-28 14:38 ?5865次閱讀

    AD9957的二進制補碼的小數點位置如何確定?

    您好!我正使用AD9957的QUDC模式,現通過DSP給AD9957送入并行數據。我的問題是,數據手冊說施加于引D<17:0>的數據字可以選擇二進制補碼編碼格式,那么請問這18位的二進制
    發表于 12-25 07:55

    單精度和雙精度浮點數的區別

    。 單精度浮點數,也稱為單精度浮點數格式,用于在計算機中表示32位二進制格式的浮點數。一個單精度浮點數由三個部分組成:符號位、指數部分和尾數
    的頭像 發表于 12-15 10:25 ?5269次閱讀

    請問ADSP-21469的匯編指令集ISA/VISA中有沒有專門用來進行浮點數定點數轉換的指令?

    得到的ADC數據需要進行定點數浮點數的轉換,為了節省開銷,想使用匯編程序進行定點浮點之間的轉換。請問ADSP-21469的匯編指令集ISA/VISA中有沒有專門用來進行
    發表于 11-29 08:03