用 FPGA 產(chǎn)生高斯白噪聲序列的一種快速方法
在 ISE8.1i 開(kāi)發(fā)環(huán)境中得到的系統(tǒng)功能仿真圖如圖 6 所示。實(shí)驗(yàn)中,系統(tǒng)的輸入時(shí)鐘為 60MHz 。圖 6 中的 regl_value 表示線性反饋的移位寄存器在時(shí)鐘 clk1 上升沿觸發(fā)的狀態(tài)值。 reg2_value 表示在同步時(shí)鐘 clk2 上升沿采樣 reg_value1 的值, clk2 是 clk1 的 8 倍分頻。仿真證明,本系統(tǒng)可以實(shí)現(xiàn)線性反饋移位寄存器每轉(zhuǎn) 8 次取出一個(gè)狀態(tài)值,并可減小不同時(shí)刻隨機(jī)變量之間的相關(guān)性 ( 非相關(guān)化處理 ) 。根據(jù) reg2_value 并通過(guò)比較選擇器輸出對(duì)應(yīng)直線段的 slope( 斜率 ) 、 point( 起點(diǎn)的橫坐標(biāo) ) 、 point_value( 起點(diǎn)的縱坐標(biāo) ) 可見(jiàn), reg2_value_delay 比 reg2_value 可延時(shí)半個(gè) clk2 ,因而可保證輸入算術(shù)計(jì)算模塊的數(shù)據(jù)的同步。這樣,再經(jīng)算式: gauss_output=(reg2_value_delay-point)*slope+point_value ,就可得到高斯白噪聲序列。為了確保采得穩(wěn)定的信號(hào)值,操作時(shí)應(yīng)在信號(hào)持續(xù)時(shí)間的中間位置進(jìn)行采樣。由于高斯白噪聲序列 gauss_output 是 reg2_value_delay ,、 point 、 slope 、 point_value 之間的加、減、乘運(yùn)算所得到的,所以, gauss_output 有相應(yīng)延時(shí)。
本文引用地址:http://www.ex-cimer.com/article/192113.htm
本設(shè)計(jì)用 Xilinx 的 xc3s1200e-4fg320 為目標(biāo)器件來(lái)對(duì)代碼進(jìn)行綜合,所用的 FPGA 資源如下:
可見(jiàn),該方案占用硬件資源較少。
為了驗(yàn)證硬件實(shí)現(xiàn)的正確性,還可將其下載到開(kāi)發(fā)板,并采用 ChipScope Pro 8.1i 將硬件產(chǎn)生的高斯白噪聲序列通過(guò)并口回傳,同時(shí)將數(shù)據(jù)導(dǎo)入到 Matlab 。由于 ChipScope 要利用 FPGA 的片內(nèi)存儲(chǔ)空間暫存采樣值,所以,一次采集的信號(hào)數(shù)目有限且與 FPGA 型號(hào)有關(guān)。筆者將一次采集到的 16384 個(gè)樣值導(dǎo)入 Maflab 后,再將數(shù)據(jù)小數(shù)化 ( 因?yàn)?FPGA 中處理的是定點(diǎn)數(shù) ) ,然后調(diào)用 Matlab 中的 psd 函數(shù)估計(jì)出了其功率譜圖。實(shí)際結(jié)果證明,本系統(tǒng)產(chǎn)生的高斯白噪聲與理論值非常接近,也就是說(shuō),該方案可行。
由于本系統(tǒng)采用 VHDL 語(yǔ)言編寫(xiě),故其可移植性較強(qiáng)。當(dāng)在通信工程中需要帶限高斯白噪聲時(shí),就可在高斯白噪聲后接一個(gè)帶通濾波器 ( 在 FPGA 中應(yīng)用自帶 IP 核可輕松實(shí)現(xiàn) ) 。由于濾波后的噪聲能量會(huì)有損失,所以要做相應(yīng)的能量補(bǔ)償。之后,再將產(chǎn)生的帶限高斯白噪聲序列 ( 約 50000 點(diǎn) ) 導(dǎo)入 Matlab 中,然后調(diào)用 hist 函數(shù)就可得到圖 7 所示的序列直方圖,而調(diào)用 psd 函數(shù)即可得到圖 8 所示的序列功率譜圖。從直方圖可見(jiàn)帶限高斯白噪聲的概率密度函數(shù)是高斯型的,而從功率譜可見(jiàn),在通帶內(nèi),功率譜密度近似為常數(shù),這些都與理論一致。
4 結(jié)束語(yǔ)
本文提出了一種在 FPGA 中快速產(chǎn)生高斯白噪聲序列的實(shí)現(xiàn)方案。同時(shí)基于均勻分布和高斯分布之間的映射關(guān)系曲線,提出并應(yīng)用了適合在 FPGA 中實(shí)現(xiàn)的折線逼近法。本文采用了 15 條首尾連接的直線段去逼近映射關(guān)系曲線 ( 按不同的工程精度要求,可選擇個(gè)數(shù)不同的直線段去逼近 ) 。顯然,所用的折線拐角越多 ( 直線段個(gè)數(shù)越多 ) ,精度越高,但所消耗的 FPGA 資源也越多。該方案具有簡(jiǎn)單易行,運(yùn)算量小等優(yōu)點(diǎn)。而且實(shí)現(xiàn)速度快,可源源不斷的產(chǎn)生高斯白噪聲序列,同時(shí)占用的硬件資源較少。由于軟件采用 VHDL 語(yǔ)言編寫(xiě),可移植性強(qiáng),故可靈活用于 Watterson 信道模擬器或嵌入調(diào)制解調(diào)器等其它系統(tǒng)。
fpga相關(guān)文章:fpga是什么
評(píng)論