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

文中的安排如下:在第2節中給出了均勻偽隨機數的實現過程。第3節詳細描述了本文的非均勻劃分的方法和尋址方式。在最后1節,給出了設計結果和結論。



評論