高斯噪聲源電路的設計與實(shí)現
摘要:為了實(shí)現占用資源少、精度高的高斯噪聲源電路,設計了一種新的高斯噪聲產(chǎn)生方案,該方案在FPGA上通過(guò)線(xiàn)性反饋移位寄存器產(chǎn)生高速均勻分布偽隨機數,接著(zhù)利用均勻分布與高斯分布之間的映射關(guān)系生成高斯噪聲,并創(chuàng )新地采用非均勻劃分的折線(xiàn)逼近映射曲線(xiàn),同時(shí)設計尋址電路,從而減少噪聲源占用的資源,改善噪聲精度。在XILINX Virtex5 XC5VLX50T上的實(shí)現結果表明,該方案僅使用了2%的可配置SUCE和1塊片上BRAM,實(shí)現了+4σ(σ為標準偏差)的高斯噪聲源。時(shí)序分析表明其最高頻率可達131 MHz。
關(guān)鍵詞:高斯噪聲源電路;查表法;非均勻劃分;尋址電路
在硬件實(shí)現的跟蹤系統中,經(jīng)常需要高斯噪聲信號源來(lái)提供噪聲。傳統的高斯噪聲大多在基于DSP的軟件系統上生成,其產(chǎn)生速度比硬件系統工作頻率要慢很多,且不利于SOC(system on chip)的集成。通常,在這樣的系統里有大量的運算與邏輯操作(例如,硬件粒子濾波系統)高斯源作為噪聲模塊只是很小的一個(gè)功能塊,因此設計時(shí)需要盡量減少噪聲源占用的資源,以便將有限的FPGA的資源盡量留給其他計算模塊。然而,噪聲的精度卻對最終的跟蹤結果精度有著(zhù)直接影響,因此要想獲得高精度的跟蹤結果必須改善噪聲的精度。為了獲得占用資源少、精度高的高斯噪聲源電路,設計了本文的高斯噪聲產(chǎn)生方案。該方案由Verilog HDL編程,可移植性強,可作為功能模塊移植到其他系統中產(chǎn)生高斯噪聲。
1 方案選擇
為了獲得高斯噪聲,通常采用數字合成方法,首先產(chǎn)生均勻分布的偽隨機數噪聲,然后通過(guò)一定的轉換方法獲得高斯白噪聲。
均勻分布的偽隨機數產(chǎn)生已經(jīng)有較長(cháng)的研究歷史,主要的方法有:線(xiàn)性同余法、m序列產(chǎn)生法、logist方程法、進(jìn)位加方法。FPGA具有并行計算的優(yōu)勢,可以勝任基本邏輯、簡(jiǎn)單加減法、大小比較、多路選擇和時(shí)序邏輯等操作。通常FPGA采用查找表實(shí)現組合邏輯運算,當組合邏輯過(guò)于復雜時(shí),往往需要使用多級查找表來(lái)完成運算,大大降低速度,如乘除法。因此用FPGA實(shí)現偽隨機數發(fā)生器,算法應該盡量簡(jiǎn)單,并盡量不要使用乘除法??紤]到以上因素,本設計采用m序列產(chǎn)生法,該算法具有簡(jiǎn)單、產(chǎn)生速度快、可重復性強的特點(diǎn),并且得到的偽隨機序列周期較長(cháng)。將均勻分布的隨機序列轉化為高斯分布的隨機序列的方法主要有函數變換法、中心極限法、查找表法3種。前兩種方法都使用到了復雜的運算,在FPGA上實(shí)現時(shí)需要占用較多的邏輯資源。查找表法通過(guò)圖1所示的均勻噪聲和高斯噪聲之間的映射關(guān)系建立查找表,通過(guò)查表方法得到對應高斯噪聲。若對每個(gè)均勻輸入都建立查找關(guān)系,則對于n位的均勻噪聲輸入需要建立2n大小的查找表,查找表大小隨著(zhù)輸入位數增加成指數增長(cháng)。當為了增加精度而提高n時(shí),查找表大小迅速增長(cháng)到不能接受。文獻利用折線(xiàn)來(lái)逼近映射曲線(xiàn),查找表里存儲折線(xiàn)的偏移和斜率,從而減少查找表的大小。觀(guān)察圖1發(fā)現曲線(xiàn)在高斯噪聲絕對值小的地方斜率小,在絕對值大的地方斜率大。如果采用均勻量化的方法,則在高斯噪聲絕對值越大的地方精度越差。要想得到更高精度,就要增加均勻量化級數,增大查找表。文中引入非均勻劃分的思想,在斜率較小的地方,用較少的折線(xiàn)逼近映射曲線(xiàn),在斜率大的地方,用更多的折線(xiàn)逼近映射曲線(xiàn),這樣可以在不增加查找表大小的情況下改善精度。
文中的安排如下:在第2節中給出了均勻偽隨機數的實(shí)現過(guò)程。第3節詳細描述了本文的非均勻劃分的方法和尋址方式。在最后1節,給出了設計結果和結論。
評論