新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 數(shù)字頻率信號(hào)校正的FPGA實(shí)現(xiàn)

數(shù)字頻率信號(hào)校正的FPGA實(shí)現(xiàn)

作者: 時(shí)間:2010-11-23 來源:網(wǎng)絡(luò) 收藏

  一般情況下,當(dāng)旋轉(zhuǎn)的次數(shù)足夠大時(shí),Ki一般為常數(shù)。由于在實(shí)現(xiàn)時(shí),可在最終的計(jì)算結(jié)果中再乘以這一常數(shù),所以,可以去掉式(3)中的Ki,這樣,迭代方程就僅含移位和加法運(yùn)算,從而大大的簡化了的實(shí)現(xiàn)復(fù)雜性。由于還需要一個(gè)方程決定di的符號(hào),引入變量zi表示每次旋轉(zhuǎn)預(yù)定角度的累加值:

程序

  這樣,算法的迭代方程可表示為:

程序

  其最終結(jié)果為:

程序

  在電路中,通常需要根據(jù)給定相位θ產(chǎn)生余弦信號(hào)cosθ和正弦信號(hào)sinθ。為了產(chǎn)生標(biāo)準(zhǔn)且無放大的正弦和余弦信號(hào),可令輸入向量的y分量(即yo)為0,x分量(即xo)為1/An,這樣,式(6)就可簡化為:

程序

  可見,經(jīng)過上述處理就可將輸入相位zo轉(zhuǎn)換為標(biāo)準(zhǔn)的正弦和余弦信號(hào)。

  2 算法的實(shí)現(xiàn)

  用實(shí)現(xiàn)算法,最常用的方法有迭代算法和基于流水線的算法。CORDIC迭代算法只有一級(jí)迭代單元,在系統(tǒng)時(shí)鐘的驅(qū)動(dòng)下,可將迭代單元的輸出作為本級(jí)的輸入,并通過同一級(jí)迭代完成計(jì)算。迭代算法的硬件開銷很小,但完成一次CORDIC運(yùn)算需要多個(gè)時(shí)鐘周期,其運(yùn)算速度相對(duì)較慢。

  在CORDIC流水線結(jié)構(gòu)算法中,每一級(jí)CORDIC迭代運(yùn)算都使用單獨(dú)的運(yùn)算單元,當(dāng)流水線填滿之后,每個(gè)時(shí)鐘周期都馬上會(huì)計(jì)算出一組結(jié)果,所以計(jì)算速度很快。

  雖然流水線結(jié)構(gòu)算法的計(jì)算速度很快,但其精度會(huì)受到流水線級(jí)數(shù)的限制。而要提高精度,就必須增加流水線級(jí)數(shù),從而增大硬件開銷,因此,流水線級(jí)數(shù)的選擇要兼顧速度和精度的要求。



評(píng)論


相關(guān)推薦

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

關(guān)閉