楊 東,王建業(yè)
(空軍工程大學(xué) 導(dǎo)彈學(xué)院,陜西 三原 713800)
基于DSP Builder的偽隨機(jī)序列發(fā)生器設(shè)計(jì)及FPGA實(shí)現(xiàn)
楊 東,王建業(yè)
(空軍工程大學(xué) 導(dǎo)彈學(xué)院,陜西 三原 713800)
簡要分析了偽隨機(jī)序列中應(yīng)用廣泛的m序列,Gold序列及平衡Gold碼的概念、原理和應(yīng)用。提出了一種基于Altera的DSP Builder工具箱的偽隨機(jī)序列產(chǎn)生器設(shè)計(jì)方法,并通過設(shè)計(jì)實(shí)例,說明這種方法在簡化設(shè)計(jì)難度、提高設(shè)計(jì)速度和靈活性等方面的優(yōu)點(diǎn)和應(yīng)用價(jià)值。并提出了其仿真和FPGA實(shí)現(xiàn)的基本方法。
DSP Builder;m序列;Gold序列;平衡 Gold碼
在擴(kuò)展頻譜通信系統(tǒng)中,偽隨機(jī)序列起著十分關(guān)鍵的作用。在直接序列擴(kuò)頻系統(tǒng)的發(fā)射端,偽隨機(jī)序列擴(kuò)展信息序列的頻譜,在接收端,偽隨機(jī)序列將擴(kuò)頻信號(hào)恢復(fù)為窄帶信號(hào),進(jìn)而完成信息的接收。因此,偽隨機(jī)序列產(chǎn)生器是擴(kuò)頻系統(tǒng)的核心單元。偽隨機(jī)序列具有理想隨機(jī)序列的性質(zhì),易于產(chǎn)生,具有隨機(jī)性和盡可能長的周期,使第三方難以從擴(kuò)頻碼的一小段去重建整個(gè)碼序列,具有雙值自相關(guān)特性等。理想隨機(jī)序列在工程上無法應(yīng)用,實(shí)際上所用的均為偽隨機(jī)序列。偽隨機(jī)序列主要有:m序列、Gold序列、R-S碼、復(fù)合碼以及混沌序列等。
m序列又稱最長線性反饋移位寄存器序列,它具有平衡性、移位可加性、游程特性及很好的相關(guān)性能,廣泛應(yīng)用于直接序列擴(kuò)頻系統(tǒng)。一個(gè)典型的m序列組成如圖1所示。
由反饋移位寄存器產(chǎn)生的序列,取決于反饋系數(shù),對(duì)于此反饋移位寄存器,反饋邏輯為:
上式即為序列的特征多項(xiàng)式。(cn,cn-1,…,c0)為反饋系數(shù),其取值為“0”或“1”,“1”表示該反饋支路連通,“0”表示該反饋支路斷開。m序列的反饋系數(shù)與其寄存器級(jí)數(shù)對(duì)應(yīng)關(guān)系可由查表獲得,據(jù)此,便可以構(gòu)造任意級(jí)m序列。
擴(kuò)頻通信中,不僅要求偽隨機(jī)序列具有隨機(jī)性好、周期長、不易被敵方檢測(cè)等特性,而且要求有盡可能多的可用的偽隨機(jī)序列,以便進(jìn)行多址通信和組網(wǎng)運(yùn)用。Gold序列便具有此特性。GOLD R指出:“給定移位寄存器級(jí)數(shù)為n時(shí),總可以找到一對(duì)互相關(guān)函數(shù)值最小的碼序列,采用移位相加的方法構(gòu)成新碼,其互相關(guān)旁瓣都很小,并且自相關(guān)函數(shù)和互相關(guān)函數(shù)都是有界的”。這一對(duì)互相關(guān)函數(shù)最小的序列稱為m序列優(yōu)選對(duì),是指在m序列集中,其互相關(guān)函數(shù)最大值的絕對(duì)值小于某個(gè)值的兩個(gè)m序列。設(shè)序列{a}是對(duì)應(yīng)于n階本原多項(xiàng)式 f(x)產(chǎn)生的 m序列,序列對(duì)應(yīng)于 n階本原多項(xiàng)式 g(x)產(chǎn)生的 m序列,當(dāng)它們的互相關(guān)函數(shù)值 Rab(τ)滿足不等式(2):
則由f(x)和 g(x)產(chǎn)生的m序列{a}和構(gòu)成一優(yōu)選對(duì)。m序列優(yōu)選對(duì)可由查表獲得。
Gold序列的產(chǎn)生方式有并行和串行兩種方式。由兩個(gè)碼長相等、碼時(shí)鐘速率相同的m序列優(yōu)選對(duì)模2和構(gòu)成Gold序列的方法為并行方式,每改變兩個(gè)m序列相對(duì)位移就可得到一個(gè)新的Gold序列。將產(chǎn)生兩優(yōu)選對(duì)m序列的本原多項(xiàng)式相乘,展開后,按此多項(xiàng)式構(gòu)成2n級(jí)Gold序列產(chǎn)生器的方法為串行方式。以n=6級(jí)Gold序列產(chǎn)生器為例,其優(yōu)選對(duì)m序列的本原多項(xiàng)式為:
并行方式如圖2所示。
由于:
可得串行方式如圖3所示。
Gold序列族中任意兩個(gè)Gold序列滿足如下的互相關(guān)特性:
這一特性使得Gold序列中的任意碼都可以作為地址碼,因而大大增加了地址碼的數(shù)量。
擴(kuò)頻通信系統(tǒng)中,對(duì)系統(tǒng)質(zhì)量影響因素之一就是偽碼的平衡性(即序列中的“0”、“1”均勻性),平衡碼具有更好的頻譜特性。在DS系統(tǒng)中,碼的平衡性對(duì)載波抑制有密切的關(guān)系,碼不平衡會(huì)造成載波泄漏,破壞擴(kuò)頻通信系統(tǒng)的保密性、降低其抗偵破能力。序列中“1”和“0”的碼元數(shù)量相差等于1時(shí)為平衡碼,而大于 1時(shí)為非平衡碼。為尋找平衡Gold碼,首先要確定特征相位,當(dāng)序列處于特征相位時(shí),序列每隔一位抽樣后得到的序列與原序列完全一樣。設(shè)序列特征多項(xiàng)式f(x)為n級(jí)線性移位寄存器產(chǎn)生m序列的本原多項(xiàng)式,序列的特征相位由g(x)/f(x)的比值確定。g(x)計(jì)算如下:
d(x)的階數(shù)為 n,c(x)的階數(shù)小于 n,長除后的結(jié)果為 1+d1x+d2x+…的形式。
因此,處于特征相位上的序列{a}和,以{a}序列為參考序列,移動(dòng)序列,使之第一位為“0”,對(duì)應(yīng)于{a}序列第一位為“1”。兩序列相加后得到的序列必定是平衡Gold碼。那么,移動(dòng)序列的第一位為“0”的序列的前k位為相對(duì)相位。
產(chǎn)生平衡Gold碼的一般步驟為:
(1)選一參考序列,其本原多項(xiàng)式為 fa(x),求出其生成多項(xiàng)式ga(x);
(2)由 G(x)=ga(x)/fa(x),求出序列多項(xiàng)式,使序列{a}處于特征相位上;
(3)求位移序列,使位移序列的初始狀態(tài)的第一位為“0”,即處于相對(duì)相位,對(duì)應(yīng)于序列{a}第一位“1”;
(4)將處于特征相位的序列{a}和處于相對(duì)相位的序列模2加,就得到平衡Gold序列。
Matlab工具一般作為DSP算法的建模和基于純數(shù)學(xué)的仿真,其數(shù)學(xué)模型無法為硬件DSP應(yīng)用系統(tǒng)直接產(chǎn)生實(shí)用程序代碼,仿真測(cè)試結(jié)果也僅僅是基于數(shù)學(xué)算法結(jié)構(gòu)。而傳統(tǒng)的FPGA基于硬件描述語言(HDL)的設(shè)計(jì)由于需要考慮FPGA的硬件延時(shí)、VHDL的遞歸算法的銜接、補(bǔ)碼運(yùn)算和乘積結(jié)果截取等問題,相當(dāng)繁雜。DSP Builder是美國Altera公司推出的一個(gè)面向DSP開發(fā)的系統(tǒng)級(jí)工具,為Matlab的一個(gè)Simulink工具箱,以幫助設(shè)計(jì)者完成基于FPGA的DSP系統(tǒng)設(shè)計(jì)的整個(gè)流程,它充分體現(xiàn)了現(xiàn)代電子技術(shù)自動(dòng)化開發(fā)的特點(diǎn)與優(yōu)勢(shì)?;贒SP Builder的設(shè)計(jì)流程如圖4所示。
DSP Builder設(shè)計(jì)中首先是在Matlab/Simulink中進(jìn)行設(shè)計(jì)輸入,即在Matlab的Simulink環(huán)境建立一個(gè)MDL模型文件,用圖形方式調(diào)用Simulink庫中的模塊,構(gòu)成系統(tǒng)級(jí)或算法級(jí)設(shè)計(jì)框圖(或稱Simulink建模)。建立的m序列、Gold序列和平衡Gold序列產(chǎn)生器模型如圖5所示。
圖5中主要模塊功能為:
(1)The Delay block:延遲模塊,起延時(shí)作用,在硬件上可以采用寄存器來實(shí)現(xiàn)。此模塊可接受任意類型的數(shù)據(jù)輸入。
(2)The Logical Bit Operator block:位邏輯運(yùn)算模塊,能實(shí)現(xiàn)單個(gè)位輸入數(shù)之間的邏輯運(yùn)算,能實(shí)現(xiàn)多種功能:AND,NAND,OR,XOR,NOR,NOT。
(3)SignalCompiler:DSP Buider的核心,將 Simulink設(shè)計(jì)轉(zhuǎn)換成可綜合的RTL級(jí)VHDL代碼,并產(chǎn)生各種測(cè)試和仿真矢量文件。
(4)The Testbench block:通過測(cè)試平臺(tái)模塊,可自動(dòng)運(yùn)行Modelsim,對(duì)比仿真結(jié)果。
Simulink中進(jìn)行的仿真屬于系統(tǒng)驗(yàn)證性質(zhì)的,是對(duì)mdl文件進(jìn)行的仿真,而對(duì)VHDL代碼進(jìn)行仿真則需要使用ModelSim,如圖6所示。
ModelSim是一個(gè)基于單內(nèi)核的Verilog/VHDL混合仿真器,是Mentor Graphic的子公司ModelTechnology的產(chǎn)品。主要用于對(duì)生成的RTL級(jí)VHDL代碼進(jìn)行功能仿真。 對(duì)應(yīng)圖 5中(b)、(d),經(jīng)過 ModelSim功能仿真的波形如圖7所示。
在Matlab/Simulink中對(duì)設(shè)計(jì)模型進(jìn)行編譯,再用DSP Builder的Signal Compiler工具直接生成QuartusⅡ工程文件,再調(diào)用QuartusⅡ完成綜合、網(wǎng)表生成和適配,直至完成FPGA的配置下載。本設(shè)計(jì)使用的FPGA芯片是Altera公司的Cyclone系列芯片EP2C35F672C6。
設(shè)計(jì)表明,在利用FPGA進(jìn)行偽隨機(jī)序列發(fā)生器設(shè)計(jì)時(shí),利用DSP Builder能簡化設(shè)計(jì)難度,加快設(shè)計(jì)速度,靈活選取精度,實(shí)現(xiàn)優(yōu)化設(shè)計(jì);DSPBuilder與QuartusⅡ軟件的融合,實(shí)現(xiàn)了自頂向下的設(shè)計(jì)流程,充分顯示了現(xiàn)代EDA開發(fā)的特點(diǎn)與優(yōu)勢(shì)。然而,該方法的應(yīng)用在精度、速度和器件選擇等方面也受到一定限制。
[1]何世彪,譚曉衡.擴(kuò)頻技術(shù)及其實(shí)現(xiàn)[M].西安:電子工業(yè)出版社,2006.
[2]潘松,黃繼業(yè),王國棟.現(xiàn)代 DSP技術(shù)[M].西安:西安電子科技大學(xué)出版社,2003.
[3]楮振勇,齊亮,田紅心,等.FPGA設(shè)計(jì)及應(yīng)用.西安電子科技大學(xué)出版社,2006.
[4]張洪潤,張亞凡.FPGA/CPLD應(yīng)用設(shè)計(jì)200例[M].北京:北京航空航天大學(xué)出版社.2007.
A DSP builder-based pseudo-random sequence and its FPGA implementation
Yang Dong,Wang Jianye
(The Missile Institute,Air Force Engineering University,Sanyuan 713800,China)
This text synopsisly analyzed the concept,principle and application of the m sequence,the Gold sequence and the equilibrium Gold code in the pseudo-random sequence.It put forward a designing way of pseudo-random sequence which based on the tool box of DSP builder in the Altera,and explained the advantages and values on simplifying the designing difficulty and advancing the designing speed and vivid through a solid example.It also put forward the basic method of imitating and carring out with FPGA.
DSP builder;m sequence;Gold sequence;equilibrium Gold code
TP331.1
A
1674-7720(2011)02-0096-04
2010-01-16)
楊東,男,1986年生,碩士研究生,主要研究方向:數(shù)字專用集成電路設(shè)計(jì)。