午夜性刺激免费看_小说区图片区偷拍区另_一级片视频免费_一级口次A片,欧美a片免费在线观看,国产Av无码一区二区三区,99视频在线观看视频6,A片免费无码一级,亚洲五月花AV在线,激情影院a,国产在线观看综合

內(nèi)頁(yè)廣告7

熱搜關(guān)鍵詞: PCIe高速數(shù)據(jù)采集卡RFSOC高速數(shù)據(jù)采集軟件無(wú)線電平臺(tái)VPX高速數(shù)據(jù)采集卡高速信號(hào)采集卡PCIe數(shù)據(jù)采集數(shù)字信號(hào)處理

您的當(dāng)前位置:首頁(yè) » 資訊中心 » 技術(shù)文章 » FPGA高速數(shù)據(jù)采集浮點(diǎn)數(shù)定點(diǎn)數(shù)轉(zhuǎn)換

FPGA高速數(shù)據(jù)采集浮點(diǎn)數(shù)定點(diǎn)數(shù)轉(zhuǎn)換

返回列表 來(lái)源:坤馳科技 查看手機(jī)網(wǎng)址
掃一掃!FPGA高速數(shù)據(jù)采集浮點(diǎn)數(shù)定點(diǎn)數(shù)轉(zhuǎn)換掃一掃!
瀏覽:- 發(fā)布日期:2015-06-02 18:04:00【
  在FPGA實(shí)現(xiàn)數(shù)字信號(hào)處理過(guò)程中經(jīng)常會(huì)遇到將MATLAB程序放到FPGA中去運(yùn)算,,運(yùn)算完后再導(dǎo)入MATLAB查看數(shù)據(jù)結(jié)果做后續(xù)處理,。而MATLAB一般為雙精度浮點(diǎn)運(yùn)算,,而FPGA一般為定點(diǎn)運(yùn)算,。所以需要將浮點(diǎn)數(shù)轉(zhuǎn)為定點(diǎn)數(shù),,再送到FPGA中去運(yùn)算,,將運(yùn)算結(jié)果導(dǎo)入MATLAB后再轉(zhuǎn)為浮點(diǎn)數(shù)。這就涉及到DSP定標(biāo)問(wèn)題,。
  在定點(diǎn)DSP芯片中,,采用定點(diǎn)數(shù)進(jìn)行數(shù)值運(yùn)算,其操作數(shù)一般采用整型數(shù)來(lái)表示,。一個(gè)整型數(shù)的大表示范圍取決于DSP芯片所給定的字長(zhǎng),,一般為16位或24位。顯然,,字長(zhǎng)越長(zhǎng),,所能表示的數(shù)的范圍越大,精度也越高,。如無(wú)特別說(shuō)明,,本書(shū)均以16位字長(zhǎng)為例。
DSP芯片的數(shù)以2的補(bǔ)碼形式表示,。每個(gè)16位數(shù)用一個(gè)符號(hào)位來(lái)表示數(shù)的正負(fù),,0表示數(shù)值為正,l則表示數(shù)值為負(fù),。其余15位表示數(shù)值的大小,。因此,
      二進(jìn)制數(shù)0010000000000011b=8195
      二進(jìn)制數(shù)1111111111111100b= -4
  對(duì)DSP芯片而言,,參與數(shù)值運(yùn)算的數(shù)就是16位的整型數(shù),。但在許多情況下,數(shù)學(xué)運(yùn)算過(guò)程中的數(shù)不一定都是整數(shù),。那么,,DSP芯片是如何處理小數(shù)的呢?應(yīng)該說(shuō),,DSP芯片本身無(wú)能為力,。那么是不是說(shuō)DSP芯片就不能處理各種小數(shù)呢?當(dāng)然不是,。這其中的關(guān)鍵就是由程序員來(lái)確定一個(gè)數(shù)的小數(shù)點(diǎn)處于16位中的哪一位,。這就是數(shù)的定標(biāo)。
通過(guò)設(shè)定小數(shù)點(diǎn)在16位數(shù)中的不同位置,,就可以表示不同大小和不同精度的小數(shù)了,。數(shù)的定標(biāo)有Q表示法和S表示法兩種。表1.1列出了一個(gè)16位數(shù)的16種Q表示,、S表示及它們所能表示的十進(jìn)制數(shù)值范圍,。
  從表1.1可以看出,,同樣一個(gè)16位數(shù),若小數(shù)點(diǎn)設(shè)定的位置不同,,它所表示的數(shù)也就不同,。例如,
         16進(jìn)制數(shù)2000H=8192,,用Q0表示
         16進(jìn)制數(shù)2000H=0.25,,用Q15表示
但對(duì)于DSP芯片來(lái)說(shuō),處理方法是完全相同的,。
  從表1.1還可以看出,,不同的Q所表示的數(shù)不僅范圍不同,而且精度也不相同,。Q越大,,數(shù)值范圍越小,但精度越高,;相反,,Q越小,數(shù)值范圍越大,,但精度就越低,。例如,Q0 的數(shù)值范圍是一32768到+32767,,其精度為1,,而Q15的數(shù)值范圍為-1到0.9999695,精度為1/32768=0.00003051,。因此,,對(duì)定點(diǎn)數(shù)而言,數(shù)值范圍與精度是一對(duì)矛盾,,一個(gè)變量要想能夠表示比較大的數(shù)值范圍,,必須以犧牲精度為代價(jià);而想精度提高,,則數(shù)的表示范圍就相應(yīng)地減小,。在實(shí)際的定點(diǎn)算法中,為了達(dá)到佳的性能,,必須充分考慮到這一點(diǎn),。
浮點(diǎn)數(shù)與定點(diǎn)數(shù)的轉(zhuǎn)換關(guān)系可表示為:
        浮點(diǎn)數(shù)(x)轉(zhuǎn)換為定點(diǎn)數(shù)(xq):xq=(int)x* 2Q
        定點(diǎn)數(shù)(xq)轉(zhuǎn)換為浮點(diǎn)數(shù)(x):x=(float)xq*2-Q
    例如,浮點(diǎn)數(shù)x=0.5,,定標(biāo)Q=15,,則定點(diǎn)數(shù)xq=L0.5*32768J=16384,式中LJ表示下取整。反之,,一個(gè)用Q=15表示的定點(diǎn)數(shù)16384,,其浮點(diǎn)數(shù)為163幼*2-15=16384/32768=0.5。浮點(diǎn)數(shù)轉(zhuǎn)換為定點(diǎn)數(shù)時(shí),,為了降低截尾誤差,,在取整前可以先加上0.5。
表1.1    Q表示,、S表示及數(shù)值范圍
Q表示    S表示    十進(jìn)制數(shù)表示范圍
Q15    S0.15    -1≤x≤0.9999695
Q14    S1.14    -2≤x≤1.9999390
Q13    S2.13    -4≤x≤3.9998779
Q12    S3.12    -8≤x≤7.9997559
Q11    S4.11    -16≤x≤15.9995117
Q10    S5.10    -32≤x≤31.9990234
Q9    S6.9    -64≤x≤63.9980469
Q8    S7.8    -128≤x≤127.9960938
Q7    S8.7    -256≤x≤255.9921875
Q6    S9.6    -512≤x≤511.9804375
Q5    S10.5    -1024≤x≤1023.96875
Q4    S11.4    -2048≤x≤2047.9375
Q3    S12.3    -4096≤x≤4095.875
Q2    S13.2    -8192≤x≤8191.75
Q1    S14.1    -16384≤x≤16383.5
Q0    S15.0    -32768≤x≤32767
 
附錄:下面MATLAB代碼實(shí)現(xiàn)了將浮點(diǎn)數(shù)(注:絕對(duì)值小于1)轉(zhuǎn)為設(shè)定的位數(shù)的二進(jìn)制補(bǔ)碼形式
 
 
 
function [y]=dectobin(innum,N);
%將絕對(duì)值小于1的值轉(zhuǎn)換為(N+1)位的二進(jìn)制數(shù)負(fù)數(shù)用補(bǔ)碼表示
%N表示abs(innum)*2^N;多出的一位表示符號(hào)位
 
if (abs(innum)>=1)|(N == 0)%判斷輸入的有效性 注:輸入數(shù)據(jù)必須為-1到1之間的值
   disp('error!');
   return;
end
%如果需要轉(zhuǎn)換的浮點(diǎn)數(shù)X2^N還小于1的話,,該值就為0
%very important
if((abs(innum)*2^N)<1)
    innum=0;
end
 
count=0;
tempnum=abs(innum);
record=zeros(1,N+1);
while(N)
   count=count+1;%長(zhǎng)度小于N
   if(count>N)
      break;
   end
   tempnum=tempnum*2;%小數(shù)轉(zhuǎn)換為二進(jìn)制,乘2取整
   if tempnum>1
       record(count+1)=1;
       tempnum=tempnum-1;  
   elseif(tempnum==1)
       record(count+1)=1;
       N=0;%stop loop
   else
      record(count+1)=0;     
   end
end
 
if innum>=0  %輸入值大于等于0
    record(1)=0;
    y=record;
else              %輸入值小于0
    record(1)=1;
    for i=2:N+1    %取反
        if record(i)==1
            record(i)=0;
        else
            record(i)=1;
        end
    end
        temp=N+1;  %加1
        while(temp>1)
            if record(temp)==0
                record(temp)=1;
                temp=0;%循環(huán)結(jié)束
            else
                record(temp)=0;
                temp=temp-1;
            end
        end
     y=record;
end
 
return;
 

 

  若您有高速數(shù)據(jù)采集板卡定制需求,,請(qǐng)聯(lián)系我們:400-000-4026
 

  關(guān)于坤馳科技:
  坤馳科技是專注于
高速數(shù)據(jù)采集與信號(hào)處理,、高速數(shù)據(jù)存儲(chǔ)與記錄的高科技公司。坤馳科技為用戶提供成熟的標(biāo)準(zhǔn)高速數(shù)據(jù)采集產(chǎn)品與技術(shù),,也可為用戶提供定制化的高速信號(hào)采集解決方案,。目前坤馳科技服務(wù)過(guò)的研究所、科研單位已達(dá)近百家,。高速數(shù)據(jù)采集產(chǎn)品線涵蓋PCIExpress,、cPCI、PXIe,、VPX,、USB等總線,包含高速AD,、DA平臺(tái),、FPGA、DSP處理平臺(tái),,SATA/SSD,、Flash存儲(chǔ)平臺(tái)等。
  全國(guó)咨詢電話:400-000-4026
 

  公司官方網(wǎng)站:http://jtyykv.cn  

 

推薦閱讀

    【本文標(biāo)簽】:高速采集卡 高速信號(hào)采集卡 高速數(shù)據(jù)采集卡
    【責(zé)任編輯】:坤馳科技版權(quán)所有:轉(zhuǎn)載請(qǐng)注明出處