你的位置:首頁(yè) > RF/微波 > 正文

毫米波雷達半精度浮點(diǎn)存儲格式分析

發(fā)布時(shí)間:2023-08-01 來(lái)源:英飛凌 責任編輯:wenwei

【導讀】雷達信號處理需要使用大量?jì)却孢M(jìn)行中間結果和最終結果的保存,而內存大小直接影響處理芯片的成本。選擇合適的數據存儲格式,既保留較高的信號分辨率和動(dòng)態(tài)范圍,又不占用太大的存儲空間是相當重要的。本文介紹了TC3xx單片機雷達信號處理單元SPU支持的半精度浮點(diǎn)格式,將其和32bit整型數格式進(jìn)行比較,分析了兩者的動(dòng)態(tài)范圍及實(shí)際處理誤差,發(fā)現半精度浮點(diǎn)格式是“性?xún)r(jià)比”較高的存儲方式。另外,Tricore? CPU還有專(zhuān)用硬件指令支持半精度和單精度浮點(diǎn)格式的相互轉換,便于信號的后期處理,并縮短數據格式轉換時(shí)間。


英飛凌技術(shù)專(zhuān)家 錢(qián)偉喆


背景介紹


毫米波雷達在較短時(shí)間內(比如50ms每幀)需要處理大量數據,數據量和收發(fā)天線(xiàn)個(gè)數,每個(gè)發(fā)波的采樣點(diǎn)數,以及發(fā)波個(gè)數成正比。下面簡(jiǎn)單舉個(gè)例子,方便量化數據大小,使大家有感性認識。比如,采樣點(diǎn)數為512,發(fā)波個(gè)數為128,典型的3T4R前端射頻芯片,采用碼分調制方式,實(shí)采樣ADC轉換結果為14bit,但考慮到后期便于信號處理,實(shí)際上一般使用16bit(2Byte)內存空間來(lái)存儲。表1列出了各處理階段的數據占用內存空間大小,由此可見(jiàn),雷達信號處理對內存空間的需求較大,而內存大小直接影響芯片成本,所以,能采用一種合理的數據格式,既保留較高的信號分辨率和動(dòng)態(tài)范圍,又不占用太大的存儲空間是相當重要。


1688030457994340.jpg

表1.  各處理階段的數據所占內存空間大小


數據格式


TC3xx單片機的雷達信號處理單元SPU,其輸出支持多種數據格式,包括16位、32位整型復數或實(shí)數,16位半精度浮點(diǎn)等。其中16位半精度浮點(diǎn)既能保持數據的精度又不失較寬的動(dòng)態(tài)范圍,并且占用內存相對較少。根據IEEE 754標準【1】,16位半精度浮點(diǎn)數(binary16)的二進(jìn)制位分為三部分,定義分別如下:


1. 最高一位是符號位。


2. 最高位后面的5位表示2的指數,該值要減去固定值15,才是最終指數。


3. 剩下的10位(位于小數點(diǎn)右側)再補上一位非顯性位(該位在小數點(diǎn)左側第一位)合成的11位是有效數。


以下定義摘自Wikipedia【2】。如果忽略subnormal以及無(wú)限數值,半精度浮點(diǎn)有效數值(normal value)為正的最小值是 2^(-14) ≈ 6.10 × 10^(-5)。數值為正的最大值是 (2?2^(-10)) × 2^15 = 65504。


1688030443540992.png

表2.  IEEE754半精度浮點(diǎn)的數值范圍,摘自Wikipedia.


下面我們比較一下32位整型數和16位半精度浮點(diǎn)數的動(dòng)態(tài)范圍,假設兩者符號都為正。


1688030428533494.jpg

表3. 不同格式數據動(dòng)態(tài)范圍比較


從以上比較發(fā)現,兩者的動(dòng)態(tài)范圍差別是3dB,而使用16位半精度浮點(diǎn)占用的內存存儲空間卻是采用32位整型數的一半,對于所選處理器芯片有較強成本優(yōu)勢。


為了進(jìn)一步驗證SPU用16位半精度浮點(diǎn)數和32位整型數的實(shí)際誤差,用Matlab代碼將半精度浮點(diǎn)格式歸一化處理成32位整型格式,之后和SPU實(shí)際計算所得32位數據做比較。圖1所示是(a) 第一維FFT結果和 (b)兩者誤差。兩者最大誤差是0.0021dB,而第一維FFT結果中最大值是78.828dB,該誤差相當小。


1688030413293507.jpg

圖1. (a) SPU 1st FFT計算結果(dB);(b) 16位半精度浮點(diǎn)數和32位整型數的結果誤差(dB)


格式轉換


SPU處理完數據后,通常用Tricore? CPU進(jìn)行下一階段計算。Tricore? CPU集成了硬件指令【3】,可以方便進(jìn)行單精度浮點(diǎn)和半精度浮點(diǎn)數格式之間的轉換。這兩條指令是:


12.jpg


兩款常用編譯器,Tasking 和Hightec Gnuc 編譯器都支持以上數據格式轉換指令。


1. 在Tasking環(huán)境中,當指定C編譯選項 --fp-model=-soft,C編譯器會(huì )自動(dòng)生成CPU硬件指令,進(jìn)行半精度浮點(diǎn)類(lèi)型(_Float16)和單精度浮點(diǎn)類(lèi)型(float)之間的格式轉換。


2. 在Hightec Gnuc環(huán)境中,__float16 是半精度浮點(diǎn)的格式類(lèi)型,在編譯時(shí)會(huì )自動(dòng)生成格式轉換指令。例如以下代碼:


13.jpg


總結


雷達信號處理需要使用大量?jì)却孢M(jìn)行中間結果和最終結果的保存,而內存大小直接影響處理芯片的成本。選擇合適的數據存儲格式,既保留較高的信號分辨率和動(dòng)態(tài)范圍,又不占用太大的存儲空間是相當重要的。本文介紹了TC3xx單片機雷達信號處理單元SPU支持的半精度浮點(diǎn)格式,將其和32bit整型數格式進(jìn)行比較,分析了兩者的動(dòng)態(tài)范圍及實(shí)際處理誤差,發(fā)現半精度浮點(diǎn)格式是“性?xún)r(jià)比”較高的存儲方式。另外,Tricore? CPU還有專(zhuān)用硬件指令支持半精度和單精度浮點(diǎn)格式的相互轉換,便于信號的后期處理,并縮短數據格式轉換時(shí)間。


參考文獻


1.  IEEE Standard for Floating-Point Arithmetic


2. https://en.wikipedia.org/wiki/Half-precision_floating-point_format


3. TriCore_TC162P_core_architecture_vol2of2_Instruction_set



免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問(wèn)題,請聯(lián)系小編進(jìn)行處理。


推薦閱讀:


??低曉诤?,為 “綠電守護者”搭把手

重新定義的同步整流天花板

倉儲自動(dòng)化:大趨勢下的小元件

英特爾高級首席AI工程師張宇:發(fā)揮技術(shù)之力釋放邊緣AI市場(chǎng)廣闊機遇

聯(lián)手5G,LPWAN正在成為智慧城市無(wú)線(xiàn)連接中的新勢力

特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉

久久无码人妻精品一区二区三区_精品少妇人妻av无码中文字幕_98精品国产高清在线看入口_92精品国产自产在线观看481页