新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 在MSP430F1611上實(shí)現(xiàn)周期圖譜分析及校正

在MSP430F1611上實(shí)現(xiàn)周期圖譜分析及校正

作者: 時(shí)間:2012-05-09 來源:網(wǎng)絡(luò) 收藏

設(shè)浮點(diǎn)乘法運(yùn)算的表達(dá)式為:float x,y,z;z=xy。假設(shè)經(jīng)過統(tǒng)計(jì)(這里“統(tǒng)計(jì)”的意思是所有計(jì)算中數(shù)據(jù)范圍都在定標(biāo)范圍內(nèi))后x的定標(biāo)值為Qx,y的定標(biāo)值為Qy,乘積z的定標(biāo)值為Qz,則z=xy;zq×2-Qz=xq×yq×2-(Qx+Qy);zq=(xqyq)2Qz-(Qx+Qy)。所以,定點(diǎn)表示的乘法為:


1.3 FFT計(jì)算過程中的數(shù)據(jù)定標(biāo)
為了在以MSP43F1611為處理器的儀表系統(tǒng)上進(jìn)行基于FFT的,必須先由的ADC進(jìn)行采樣,而ADC采樣得到的數(shù)據(jù)需要經(jīng)過定標(biāo)后才能進(jìn)行。定標(biāo)過程為:ADC的采樣電壓范圍為0~2.5 V,因此,采樣過程實(shí)際上就是將信號電壓除以2.5進(jìn)行歸一化,使得采樣得到的數(shù)據(jù)范圍為O~1 V,此時(shí)數(shù)據(jù)就可用Q15表示,即將ADC的12位采樣結(jié)果寄存器中的數(shù)據(jù)右移4位保存起來,維持12位精度,轉(zhuǎn)換為Q15定點(diǎn)數(shù)表示。由于FFT運(yùn)算過程中,蝶形輸出相對蝶形輸入數(shù)據(jù)被放大了3倍,因此蝶形輸出數(shù)據(jù)范圍為一3~+3 V。此時(shí)數(shù)據(jù)如果仍然使用Q15表示,就會發(fā)生溢出,故改用Q13表示數(shù)據(jù),即將12位ADC數(shù)據(jù)右移1位。實(shí)際上經(jīng)過處理后,ADC數(shù)據(jù)精度沒有變化,但使用Q13表示數(shù)據(jù)比用Q12表示數(shù)據(jù),其蝶形輸出的數(shù)據(jù)精度高。這是由于時(shí)需要對蝶形輸出右移以防止溢出,而使用Q13表示數(shù)據(jù)比使用Q12表示數(shù)據(jù)少右移了1位,因此多了1位有效數(shù)據(jù)。FFT運(yùn)算過程中使用Q13表示數(shù)據(jù),就使得加法乘法運(yùn)算都可以直接使用定點(diǎn)指令實(shí)現(xiàn),減少了很多判斷處理,提高了運(yùn)算速度。使用Q13表示數(shù)據(jù),即最高位(左邊的第1位)是符號位,剩下的15位表示數(shù)據(jù)的大小。表示數(shù)據(jù)大小的15位中,高2位(左邊的第2位和第3位)用來表示數(shù)據(jù)中的整數(shù)部分,在計(jì)算中作為保護(hù)位;最低的13位(右邊的13位)表示數(shù)據(jù)中的小數(shù)部分,如果經(jīng)過某次蝶形單元運(yùn)算后,最大值正好被放大3倍,此時(shí)數(shù)據(jù)就由13位擴(kuò)大到15位,保證數(shù)據(jù)不會增大到16位,沖走符號位,發(fā)生溢出。運(yùn)算完成后將FFT計(jì)算過程中的這一級所有結(jié)果都右移2位,就能夠使得這一級計(jì)算結(jié)果的最大值仍然可用13位表示,同時(shí)也可將這一級所有蝶形運(yùn)算輸出的數(shù)據(jù)同時(shí)縮小,保證下級計(jì)算。表示數(shù)值大小的15位數(shù)據(jù)的數(shù)據(jù)格式如圖2所示。

1.4 旋轉(zhuǎn)因子數(shù)據(jù)定標(biāo)
FFT運(yùn)算過程使用,且使用有符號乘法,必須始終保留1位作為符號位;而旋轉(zhuǎn)因子范圍為-1~1,因此可定標(biāo)為Q14,轉(zhuǎn)換為16位定點(diǎn)數(shù)。其轉(zhuǎn)換過程為:根據(jù)參與FFT運(yùn)算的數(shù)據(jù)點(diǎn)數(shù)計(jì)算出旋轉(zhuǎn)因子的正余弦表,然后將正余弦表乘以16384,即左移14位,最后四舍五人取整。如果使用Q15表示數(shù)據(jù),即需要左移15位,那么正余弦表中最大值1,經(jīng)過上述處理后成為-1,發(fā)生溢出。


2 防止溢出,保證精度
FFT中的蝶形運(yùn)算如圖3所示。設(shè)蝶形輸入為:X1(k),實(shí)部為X1(k)r,虛部為X1(k)i;X2(k),實(shí)部為X2(k)r,虛部為X2(k)i。設(shè)蝶形輸出為:X(k),實(shí)部為X(k),,虛部為X(k)i;X(k+N/2),實(shí)部為X(k+N/2)r,虛部為X(k+N/2)i。則有:



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉