《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于DSP Builder的偽隨機序列發(fā)生器設(shè)計及FPGA實現(xiàn)
基于DSP Builder的偽隨機序列發(fā)生器設(shè)計及FPGA實現(xiàn)
來源:微型機與應(yīng)用2011年第2期
楊 東,王建業(yè)
(空軍工程大學(xué) 導(dǎo)彈學(xué)院,,陜西 三原713800)
摘要: 簡要分析了偽隨機序列中應(yīng)用廣泛的m序列,Gold序列及平衡Gold碼的概念,、原理和應(yīng)用。提出了一種基于Altera的DSP Builder工具箱的偽隨機序列產(chǎn)生器設(shè)計方法,并通過設(shè)計實例,說明這種方法在簡化設(shè)計難度、提高設(shè)計速度和靈活性等方面的優(yōu)點和應(yīng)用價值,。并提出了其仿真和FPGA實現(xiàn)的基本方法,。
Abstract:
Key words :

摘  要: 簡要分析了偽隨機序列中應(yīng)用廣泛的m序列Gold序列平衡Gold碼的概念,、原理和應(yīng)用,。提出了一種基于Altera的DSP Builder工具箱的偽隨機序列產(chǎn)生器設(shè)計方法,并通過設(shè)計實例,說明這種方法在簡化設(shè)計難度、提高設(shè)計速度和靈活性等方面的優(yōu)點和應(yīng)用價值,。并提出了其仿真和FPGA實現(xiàn)的基本方法。
關(guān)鍵詞: DSP Builder,;m序列,;Gold序列;平衡Gold碼

    在擴展頻譜通信系統(tǒng)中,,偽隨機序列起著十分關(guān)鍵的作用,。在直接序列擴頻系統(tǒng)的發(fā)射端,偽隨機序列擴展信息序列的頻譜,,在接收端,偽隨機序列將擴頻信號恢復(fù)為窄帶信號,,進而完成信息的接收,。因此,偽隨機序列產(chǎn)生器是擴頻系統(tǒng)的核心單元,。偽隨機序列具有理想隨機序列的性質(zhì),易于產(chǎn)生,,具有隨機性和盡可能長的周期,使第三方難以從擴頻碼的一小段去重建整個碼序列,,具有雙值自相關(guān)特性等。理想隨機序列在工程上無法應(yīng)用,,實際上所用的均為偽隨機序列。偽隨機序列主要有:m序列,、Gold序列,、R-S碼,、復(fù)合碼以及混沌序列等。
1 m序列基本原理
    m序列又稱最長線性反饋移位寄存器序列,,它具有平衡性,、移位可加性、游程特性及很好的相關(guān)性能,,廣泛應(yīng)用于直接序列擴頻系統(tǒng)。一個典型的m序列組成如圖1所示,。

    由反饋移位寄存器產(chǎn)生的序列,,取決于反饋系數(shù),對于此反饋移位寄存器,,反饋邏輯為:
 
上式即為序列的特征多項式。(cn,,cn-1,…,,c0)為反饋系數(shù),其取值為“0”或“1”,,“1”表示該反饋支路連通,,“0”表示該反饋支路斷開,。m序列的反饋系數(shù)與其寄存器級數(shù)對應(yīng)關(guān)系可由查表獲得,據(jù)此,,便可以構(gòu)造任意級m序列。
2 Gold序列基本原理
    擴頻通信中,不僅要求偽隨機序列具有隨機性好,、周期長,、不易被敵方檢測等特性,而且要求有盡可能多的可用的偽隨機序列,,以便進行多址通信和組網(wǎng)運用。Gold序列便具有此特性,。GOLD R指出:“給定移位寄存器級數(shù)為n時,,總可以找到一對互相關(guān)函數(shù)值最小的碼序列,,采用移位相加的方法構(gòu)成新碼,,其互相關(guān)旁瓣都很小,,并且自相關(guān)函數(shù)和互相關(guān)函數(shù)都是有界的”,。這一對互相關(guān)函數(shù)最小的序列稱為m序列優(yōu)選對,,是指在m序列集中,,其互相關(guān)函數(shù)最大值的絕對值小于某個值的兩個m序列,。設(shè)序列{a}是對應(yīng)于n階本原多項式f(x)產(chǎn)生的m序列,,序列,對應(yīng)于n階本原多項式g(x)產(chǎn)生的m序列,,當它們的互相關(guān)函數(shù)值Rab(τ)滿足不等式(2):

則由f(x)和g(x)產(chǎn)生的m序列{a}和構(gòu)成一優(yōu)選對,。m序列優(yōu)選對可由查表獲得,。
    Gold序列的產(chǎn)生方式有并行和串行兩種方式,。由兩個碼長相等、碼時鐘速率相同的m序列優(yōu)選對模2和構(gòu)成Gold序列的方法為并行方式,,每改變兩個m序列相對位移就可得到一個新的Gold序列,。將產(chǎn)生兩優(yōu)選對m序列的本原多項式相乘,展開后,,按此多項式構(gòu)成2n級Gold序列產(chǎn)生器的方法為串行方式。以n=6級Gold序列產(chǎn)生器為例,,其優(yōu)選對m序列的本原多項式為:


    Gold序列族中任意兩個Gold序列滿足如下的互相關(guān)特性:
    
    這一特性使得Gold序列中的任意碼都可以作為地址碼,,因而大大增加了地址碼的數(shù)量。
3 平衡Gold碼
    擴頻通信系統(tǒng)中,,對系統(tǒng)質(zhì)量影響因素之一就是偽碼的平衡性(即序列中的“0”、“1”均勻性),,平衡碼具有更好的頻譜特性。在DS系統(tǒng)中,,碼的平衡性對載波抑制有密切的關(guān)系,,碼不平衡會造成載波泄漏,,破壞擴頻通信系統(tǒng)的保密性,、降低其抗偵破能力,。序列中“1”和“0”的碼元數(shù)量相差等于1時為平衡碼,,而大于1時為非平衡碼,。為尋找平衡Gold碼,,首先要確定特征相位,,當序列處于特征相位時,,序列每隔一位抽樣后得到的序列與原序列完全一樣。設(shè)序列特征多項式f(x)為n級線性移位寄存器產(chǎn)生m序列的本原多項式,,序列的特征相位由g(x)/f(x)的比值確定,。g(x)計算如下:

d(x)的階數(shù)為n,,c(x)的階數(shù)小于n,長除后的結(jié)果為1+d1x+d2x+…的形式,。
    因此,處于特征相位上的序列{a}和,,,以{a}序列為參考序列,移動,序列,,使之第一位為“0”,對應(yīng)于{a}序列第一位為“1”,。兩序列相加后得到的序列必定是平衡Gold碼,。那么,,移動,序列的第一位為“0”的序列的前k位為相對相位。
    產(chǎn)生平衡Gold碼的一般步驟為:
    (1)選一參考序列,,其本原多項式為fa(x),求出其生成多項式ga(x),;
    (2)由G(x)=ga(x)/fa(x),,求出序列多項式,使序列{a}處于特征相位上,;
    (3)求位移序列,,,使位移序列的初始狀態(tài)的第一位為“0”,即處于相對相位,,對應(yīng)于序列{a}第一位“1”,;
    (4)將處于特征相位的序列{a}和處于相對相位的序列,模2加,,就得到平衡Gold序列,。
4 利用DSP Builder設(shè)計偽隨機序列發(fā)生器
4.1 DSP Builder介紹

    Matlab工具一般作為DSP算法的建模和基于純數(shù)學(xué)的仿真,,其數(shù)學(xué)模型無法為硬件DSP應(yīng)用系統(tǒng)直接產(chǎn)生實用程序代碼,,仿真測試結(jié)果也僅僅是基于數(shù)學(xué)算法結(jié)構(gòu)。而傳統(tǒng)的FPGA基于硬件描述語言(HDL)的設(shè)計由于需要考慮FPGA的硬件延時,、VHDL的遞歸算法的銜接,、補碼運算和乘積結(jié)果截取等問題,相當繁雜,。DSP Builder是美國Altera公司推出的一個面向DSP開發(fā)的系統(tǒng)級工具,,為Matlab的一個Simulink工具箱,以幫助設(shè)計者完成基于FPGA的DSP系統(tǒng)設(shè)計的整個流程,,它充分體現(xiàn)了現(xiàn)代電子技術(shù)自動化開發(fā)的特點與優(yōu)勢,?;贒SP Builder的設(shè)計流程如圖4所示。

4.2 利用Simulink建立各序列模型
    DSP Builder設(shè)計中首先是在Matlab/Simulink中進行設(shè)計輸入,即在Matlab的Simulink環(huán)境建立一個MDL模型文件,,用圖形方式調(diào)用Simulink庫中的模塊,,構(gòu)成系統(tǒng)級或算法級設(shè)計框圖(或稱Simulink建模),。建立的m序列、Gold序列和平衡Gold序列產(chǎn)生器模型如圖5所示,。

    圖5中主要模塊功能為:
    (1)The Delay block:延遲模塊,,起延時作用,,在硬件上可以采用寄存器來實現(xiàn)。此模塊可接受任意類型的數(shù)據(jù)輸入,。
    (2)The Logical Bit Operator block:位邏輯運算模塊,,能實現(xiàn)單個位輸入數(shù)之間的邏輯運算,,能實現(xiàn)多種功能:AND,NAND,,OR,XOR,,NOR,NOT,。
    (3)SignalCompiler:DSP Buider的核心,,將Simulink設(shè)計轉(zhuǎn)換成可綜合的RTL級VHDL代碼,并產(chǎn)生各種測試和仿真矢量文件,。
    (4)The Testbench block:通過測試平臺模塊,,可自動運行Modelsim,,對比仿真結(jié)果。
5 各模型仿真及FPGA實現(xiàn)
5.1 Simulink模型系統(tǒng)級仿真

    Simulink中進行的仿真屬于系統(tǒng)驗證性質(zhì)的,,是對mdl文件進行的仿真,,而對VHDL代碼進行仿真則需要使用ModelSim,如圖6所示,。

5.2 使用ModelSim進行RTL級仿真
    ModelSim是一個基于單內(nèi)核的Verilog/VHDL混合仿真器,,是Mentor Graphic的子公司ModelTechnology的產(chǎn)品。主要用于對生成的RTL級VHDL代碼進行功能仿真,。對應(yīng)圖5中(b),、(d),經(jīng)過ModelSim功能仿真的波形如圖7所示,。

5.3 FPGA實現(xiàn)
    在Matlab/Simulink中對設(shè)計模型進行編譯,,再用DSP Builder的Signal Compiler工具直接生成QuartusⅡ工程文件,再調(diào)用QuartusⅡ完成綜合,、網(wǎng)表生成和適配,,直至完成FPGA的配置下載。本設(shè)計使用的FPGA芯片是Altera公司的Cyclone系列芯片EP2C35F672C6,。
    設(shè)計表明,,在利用FPGA進行偽隨機序列發(fā)生器設(shè)計時,利用DSP Builder能簡化設(shè)計難度,,加快設(shè)計速度,靈活選取精度,實現(xiàn)優(yōu)化設(shè)計,;DSPBuilder與QuartusⅡ軟件的融合,實現(xiàn)了自頂向下的設(shè)計流程,充分顯示了現(xiàn)代EDA開發(fā)的特點與優(yōu)勢,。然而,,該方法的應(yīng)用在精度、速度和器件選擇等方面也受到一定限制,。
參考文獻
[1] 何世彪,,譚曉衡.擴頻技術(shù)及其實現(xiàn)[M].西安:電子工業(yè)出版社,2006.
[2] 潘松,,黃繼業(yè),,王國棟.現(xiàn)代DSP技術(shù)[M].西安:西安電子科技大學(xué)出版社,2003.
[3] 楮振勇,,齊亮,,田紅心,,等.FPGA設(shè)計及應(yīng)用.西安電子科技大學(xué)出版社,,2006.
[4] 張洪潤,張亞凡.FPGA/CPLD應(yīng)用設(shè)計200例[M].北京:北京航空航天大學(xué)出版社.2007.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。