【正文】
ller公式,結(jié)合FPGA內(nèi)部的各種IP核我們可以完全用硬件來產(chǎn)生高斯白噪聲,其實現(xiàn)框圖如下:圖317 基于CODIC的高斯白噪聲產(chǎn)生模塊系統(tǒng)工作原理如下:均勻隨機數(shù)發(fā)生器I輸出的12位無符號數(shù)R1經(jīng)對數(shù)發(fā)生器進行對數(shù)運算、求反運算和右移(除2)操作后,得到指數(shù)分布隨機數(shù);指數(shù)分布隨機數(shù)經(jīng)方根函數(shù)發(fā)生器進行算術(shù)左移(乘4)和方根運算,得到瑞利分布隨機數(shù)。均勻隨機數(shù)方生器Ⅱ的輸出R2首先與相乘,乘法結(jié)果經(jīng)正/余弦發(fā)生器后得到一對三角運算結(jié)果:。與瑞利分布隨機數(shù)分別相乘,即得到相互獨立的高斯白噪聲x1和x2。其中均勻隨機數(shù)發(fā)生器,用我們上面討論的線性移位寄存器來實現(xiàn);正/余弦發(fā)生器由FPGA內(nèi)部的正/余弦查找表來實現(xiàn);對數(shù)發(fā)生器和方根發(fā)生器由FPGA內(nèi)部的CODIC來實現(xiàn);乘法器由FPGA內(nèi)部的硬件乘法器來實現(xiàn)。 仿真結(jié)果用線性移位寄存器產(chǎn)生的均勻隨機序列如下:圖318 均勻隨機序列仿真基于ROM查找表產(chǎn)生的高斯白噪聲序列如下:圖319 高斯白噪聲序列仿真用MATLAB產(chǎn)生的基于BoxMuller公式的高斯白噪聲仿真結(jié)果如下,分別為高斯白噪聲,自相關(guān)函數(shù)和功率譜密度。圖320 高斯白噪聲的MATLAB仿真 數(shù)據(jù)輸出模塊 輸出框圖輸出模塊,本設(shè)計采用如下圖所示的MUX接口,將4路正/余弦信號組合成一路信號輸出。由于每路信號的相位間隔為K,相鄰兩路信號的頻率相同,相位分別相差K/2K/3K/4,所以按照如圖的結(jié)構(gòu)將數(shù)據(jù)組合后,仍為頻率不變的完整的正/余弦信號。輸入時鐘為輸出時鐘的四分頻,即如果內(nèi)部為100M的時鐘,則輸出接口端為400M。為了保證設(shè)計的同步,兩個時鐘采用同源時鐘,用FPGA內(nèi)部高性能的數(shù)字時鐘管理器(DCM模塊)來進行分頻,將時鐘控制一體化。這樣的設(shè)計在內(nèi)部時鐘較慢,可以保證復(fù)雜設(shè)計的性能和精度,而只在接口來實現(xiàn)高速設(shè)計。輸出的信號加上產(chǎn)生的高斯白噪聲信號后接一個LVDS模塊程序,將輸出信號轉(zhuǎn)化為低壓差分信號(LVDS),再通過FPGA的輸出管腳輸出,就可以通過示波器或頻譜儀來觀察波形了。LVDS信號可以實現(xiàn)低噪聲和低功耗。圖321 輸出接口模塊 仿真結(jié)果輸出接口的MUX仿真時序圖如下:圖322 MUX時序仿真4 上位機模塊上位機模塊采用C++語言編寫,在Visual C++ Wizard生成應(yīng)用程序。程序主要包括CPCI母板的初始化,參數(shù)寄存器的設(shè)置,對話框的創(chuàng)建,對話框中各控件的安排及響應(yīng)的消息函數(shù)等。 主界面圖41 上位機界面該界面主要包括四部分:252。 模式選擇:可以選擇連續(xù)波或脈沖波,可以選擇添加或不添加噪聲;252。 參數(shù)設(shè)置:如果選擇連續(xù)波,則設(shè)置頻率、幅度、相位;如果選擇脈沖波,則設(shè)置頻率、幅度、相位、脈寬、帶寬;如果選擇添加噪聲,還需設(shè)置噪聲幅度;252。 四相調(diào)制:可以選擇是否四相調(diào)制;252。 提示窗口:顯示提示信息,指導(dǎo)用戶操作。 操作流程圖通過上位機可以實時地控制下位機的操作,實現(xiàn)波形的選擇、參數(shù)的置入、復(fù)位等功能。下圖是上下位機聯(lián)合工作示意圖:圖42 操作流程圖打開界面后如果提示框中顯示“No card was detected VendorID=0x551 DeviceID=0x5065”,則初始化板卡失敗,關(guān)機,檢查硬件連接然后重新開始。如果顯示“The board has been initiated sucessfully. ”,則初始化成功,可以進行相應(yīng)的設(shè)置。點連續(xù)波按鈕,則需設(shè)置頻率、幅度、相位等參數(shù);點脈沖波按鈕,則需設(shè)置頻率、幅度、相位、脈寬、帶寬等參數(shù);點四相調(diào)制按鈕可以實現(xiàn)QPSK,如果添加噪聲,還需設(shè)置信噪比。點開始按鈕,將參數(shù)置入FPGA產(chǎn)生波形;點復(fù)位按鈕,可以清除波形;點關(guān)閉按鈕,關(guān)閉界面,結(jié)束仿真。 上下位機通訊寄存器名稱地址意義參數(shù)設(shè)置寄存器0x80000000x8000008設(shè)置各參數(shù)控制寄存器0x800000a0x800000c控制程序的啟動和復(fù)位四相調(diào)制寄存器0x8000016進行四相調(diào)制選擇噪聲選擇寄存器0x80000120x8000014控制噪聲發(fā)生器的啟動和停止以及信噪比模式選擇寄存器0x800000e選擇輸出波形的模式 表41 上下位機通訊寄存器5 功能驗證及結(jié)果分析 功能驗證 測試時,PMC板采用內(nèi)部100M時鐘,經(jīng)過DCM分頻和倍頻,內(nèi)部邏輯為50M,輸出端口為200M。 程序加載成功后,檢查板上2個LED的亮滅情況:★ LED1:接板上復(fù)位撥碼開關(guān),撥碼置‘1’燈亮,撥碼置‘0’燈滅。作用:rst信號,將程序所有寄存器清零,復(fù)位DCM,低有效?!?LED2:接內(nèi)部DCM時鐘鎖定管腳,DCM鎖定燈亮,沒有鎖定燈滅。 如果LED1滅,LED2亮,則DCM鎖定,可以進行下面的流程;否則,撥碼復(fù)位,直到LED2亮為止。 初始波形程序內(nèi)初始產(chǎn)生的波形為連續(xù)的正弦波,頻率控制字為x“00800000”,幅度控制字為x“FFF”,不添加噪聲,正交輸出,產(chǎn)生的正/余弦波頻率為100kHz ,幅度為滿幅950mV ,上為正弦輸出,下為余弦輸出。圖51 初始波形 設(shè)置參數(shù)兩燈都亮,并且產(chǎn)生連續(xù)正弦波則程序加載正確,可打開上位機界面,進行相應(yīng)參數(shù)設(shè)置。以下給出五個實例及相應(yīng)的波形。252。 頻率為1M的連續(xù)正弦波,調(diào)幅,幅度為500mV。圖52 上位機設(shè)置連續(xù)波參數(shù)圖53 產(chǎn)生的調(diào)幅連續(xù)波252。 添加噪聲的連續(xù)正弦波圖54 上位機設(shè)置添加噪聲的連續(xù)正弦波圖55 添加噪聲的連續(xù)正弦波252。 頻率為1M的脈沖正弦波,脈寬為10um,調(diào)相,初始相位為90度。圖56 上位機設(shè)置脈沖正弦波圖57 脈寬為10um的調(diào)頻脈沖正弦波252。 添加噪聲的脈沖正弦波圖58 上位機設(shè)置添加噪聲脈沖正弦波圖59 添加噪聲的脈沖正弦波252。 ,脈寬為50um,四相調(diào)制 圖510 上位機設(shè)置調(diào)相脈沖波圖511 QPSK脈沖波(90度)圖512 QPSK脈沖波(180度)252。 起始頻率為1M,帶寬為2M的脈沖調(diào)頻波,脈寬為5um。圖513 上位機設(shè)置脈沖調(diào)頻波圖514 脈寬5um的脈沖調(diào)頻波 復(fù)位點復(fù)位按鈕,則將程序內(nèi)所有寄存器都清零,沒有輸出波形,需重新設(shè)置參數(shù)。仿真結(jié)束,關(guān)閉界面。 FPGA產(chǎn)生的報告表51是回波模擬器用FPGA實現(xiàn)后的資源利用率報告,表52是時序報告。由表中可以看出器件還有很大的資源可以利用,最大頻率可以達(dá)到153MHz。(Selected Device : 2v1500fg6764)表51 Device utilization summaryNumber of Slices1278 out of 768016%Number of Slice Flip Flops 2024 out of 1536013%Number of 4 input LUTs1329 out of 153608%Number of bonded IOBs77 out of 39219%Number of BRAMs12 out of 4825%Number of MULT18X18s11 out of 4822%Number of GCLKs4 out of 1625%Number of DCMs1 out of 812%表52 Timing Summary (Speed Grade: 4)Minimum periodMaximum Frequency: Minimum input arrival time before clockMaximum output required time after clockMaximum binational path delay結(jié) 論本文主要完成了以下幾個內(nèi)容:1、 學(xué)習(xí)了直接數(shù)字合成技術(shù)、線性調(diào)頻信號和高斯白噪聲信號產(chǎn)生的相關(guān)原理。2、 設(shè)計完成了高速信號模擬發(fā)生器的FPGA程序,可通過上位機進行參數(shù)設(shè)置,通過調(diào)試,工作正常。完成了基于查找表的高斯白噪聲信號的FPGA程序,并疊加到信號中去,但是性能指標(biāo)還有待進一步驗證。3、50