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