免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

轉(zhuǎn)載:matlab中的fixdt()的使用方法

 stevin_lib 2018-09-11
        在學(xué)習(xí)matlab/simulink中,會遇見的一個東西就是fixdt()這個東西,此前我對這個東西一直抱有疑惑,現(xiàn)在也不太明白,在網(wǎng)上看了很多的答案,也不甚明了,我這篇博客介紹一下這個東西。
    這個是用在定點計算上,在常數(shù)模塊(constant)中、數(shù)據(jù)類型轉(zhuǎn)換模塊(Data Type Conversion)中以及其他的很多的模塊中都有。那么咱們先搭建一個模型
matlab中的fixdt()的使用方法
并且設(shè)置Constant模塊
matlab中的fixdt()的使用方法
仿真的結(jié)果是32,然后將Output data type 設(shè)置成fixdt(1,32,10)
仿真結(jié)果是1024,然后將Output data type 設(shè)置成fixdt(1,16,9)
仿真結(jié)果是64.怎么理解這個東西呢?
        其實這是一個點小數(shù)點的問題,早就聽說定點計算有整數(shù)部分和小數(shù)部分,小數(shù)部分越多,精度越高,這就出現(xiàn)了如果使用所有的字長,高位沒有用到,而沒有小數(shù)位,為了充分利用字長,就出現(xiàn)了點小數(shù)點的問題。
fixdt()函數(shù)就是這個問題,fixdt(1,16,10),1代表的是否有符號位,16代表的是總共16位,10代表的是小數(shù)位是10位。

matlab中的fixdt()的使用方法

fixdt(1,16,10)的工作方式就是,總共16位,將1024是10000000000,將16位從右到左數(shù)10位作為小數(shù)位,其他是整數(shù)位,已經(jīng)是溢出了,就是說已經(jīng)失真了。

如果看fixdt(1,16,2),仿真的結(jié)果是1024,代表的是小數(shù)位是2。

(注意:這篇博客是邊摸索,邊寫的)

但是上面瞎扯了那么多,這個東西到底有什么用呢?
1、Q格式。
簡單來說Q格式就是定點計算,有整數(shù)位和小數(shù)位,比如32位的是 從Q0-Q31,16位的就是從Q0-Q15.
Q后面跟的數(shù)越大,代表的是小數(shù)位越多,精度越高。首先小數(shù)位越多,整數(shù)位就越少,能表示的范圍變小。而Q格式的轉(zhuǎn)換就是左移和右移,將Q格式變成一致就可以進行運算。
2、浮點數(shù)
浮點數(shù)很簡單,就是平常見到的整數(shù)、小數(shù)這些,但是在計算機里怎么表示呢?怎么把浮點數(shù)變成定點數(shù)呢?
使用fixdt(1,32,10);這就變成了Q10。
3、理解下面的程序
matlab中的fixdt()的使用方法
那么這個程序怎么理解呢?
首先ADC采樣是12位的,通過數(shù)據(jù)類型轉(zhuǎn)換成32位的,因為采集的是三相,選擇模塊選擇出來的是第一個和第二個,減去2048是定標(biāo),左移6位就將12位的數(shù)變成了從右起第一位一直到第18位,而第二個數(shù)據(jù)類型轉(zhuǎn)換里是fixdt(1,32,17),變成Q17.

為什么這么做,首先最大18位,小數(shù)點后面17位,全部都是小數(shù)。設(shè)置的SI格式,范圍在0-1之間。

matlab中的fixdt()的使用方法
2044/2048=0.9980468

因此我認(rèn)為fixdt()的作用就是做定點用的,還有就是設(shè)定小數(shù)位是多少位的。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多