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