基于FPGA的m序列发生器基于FPGA的m序列发生器摘要m序列广泛应用于密码学、通信、雷达、导航等多个领域,本文提出了一种基于FPGA的伪随机序列产生方法,应用移位寄存器理论从序列的本原多项式出发,获得产生该序列的移位寄存器反馈逻辑式,结合FPGA芯片结构特点,在序列算法实现中采用元件例化语句。算法运用VHDL语言编程,以A1tera的QuartusⅡ软件为开发平台,给出了序列的仿真波形。序列的统计特性分析表明:该方法产生的序列符合m序列的伪随机特性,验证了算法的正确性。关键词:m序列;移位寄存器理论;VHDL语言基于FPGA的m序列发生器1m序列m序列是伪随机序列的一种,结构简单,实现方便。在现代工程实践中,m序列在通讯、导航、雷达、通信系统性能的测量等领域中有着广泛的应用。例如,在连续波雷达中可用作测距信号,在遥控系统中可用作遥控信号,在多址通信中可用作地址信号,在数字通信中可用作群同步信号,还可用作噪声源及在保密通信中起加密作用等。伪噪声发生器在测距、通信等领域的应用日益受到人们重视。目前,m序列产生实现方法主要有3种:(1)门电路实现该方法设计简单,但随移位寄存器级数的增长,电路装调困难,且占用的印制板面积较大。(2)DSP编程实现该方法专业性过强,不适合一般用户。(3)VHDL与CPLD实现由于CPLD的高集成度,而且VHDL语言编程较为方便,故可以大大减少电路的装调的困难。文章提出VHDL语言实现,,l序列电路是周期、初相位可编程变化的,其应用较为灵活,通过微处理器对其进行适当的初始化,即可产生用户所需周期、初相位的m序列输出。用软件方式构成的特点是采用灵活的数据查询方式可以获得任意级数n的本原多项式系数,从而实现m序列的产生,但速度受到单片机工作速度的限制。而FPGA具有硬件电路实现的优点,又具有设计上的灵活性,并且由于FPGA便于实现大规模的数字系统。1.1理论基础m序列是最长线性反馈移位寄存器序列的简称,它是由带线性反馈的移位寄存器产生的周期最长的一种序列。。m序列发生器的结构主要分为两类,一类称为简单型码序列发生器,另一类称为模块型码序列发生器。原理图如图1所示。图1-1m列原理图基于FPGA的m序列发生器扰码的目的是使短周期输入序列变为长周期的信道序列。从原则上看,就可以用将一个长周期序列叠加在输入序列上的方法来实现,并且叠加序列的周期越长越好。从理论上说,一个真正的随机(二进制)序列的“周期”是无限长的,但是,采用这种序列时在接收端将无法产生相同的序列与之同步。所以,人们就不得不企图用简单电路来产生尽量长的序列。同时随机噪声在通信技术中,首先是作为有损通信质量的因素受到人们重视的。信道中存在的随机噪声会使模拟信号产生失真,或使数字信号解调后出现误码;同时,它还是限制信道容量的一个重要因素。因此,最早人们是企图设计消除或减小通信系统的随机噪声,但是,有时人们也希望获得随机噪声。例如,在实验室中对通信设备或系统进行测试时,有时要故意加入一定的随机噪声,这时则需要产生它。20世纪40年代末,随着通信理论的发展,仙农(Shannon)就曾指出,在某种情况下,为了实现最有效的通信,应采用具有白噪声的统计特性的信号。另外,为了实现高可靠的保密通信,也希望利用随机噪声。然而,利用随机噪声的最大困难是它难以产生和处理。直到60年代,伪随机噪声的出现才使上述困难得到解决。伪随机噪声具有类是与随机噪声的一些统计特性,同时又便于重复产生和处理。由于它具有随机噪声的优点,又避免了它的缺点,因此获得了日益广泛的实际应用。目前广泛应用的伪随机噪声都是由数字电路产生的周期序列(即滤波等处理后)得到的。今后我们将这种周期序列称为伪随机序列。通常产生伪随机序列的电路为一反馈移存器。他又可分为线性反馈移存器和非线性反馈遗存器两类。由线性反馈遗存器产生出的周期最长的二进制数字序列,称为最大长度线性反馈遗存器序列,通常简称为m序列。由于它的理论比较成熟,实现比较简便,实际应用也比较广泛[7]。m序列是最长线性反馈移存器序列的简称,它是由带线性反馈的移存器产生的周期最长的一种序列。图2-2中示出了n级移位寄存器,其中有若干级经模2加法器反馈到第1级。不难看出,在任何一个时刻去观察移位寄存器的状态,必然是n2个状态之一,其中每一状态代表一个n位的二进制数字;但是,必须把全0排斥在外,因为如果一个进入全0,不论反馈线多少或在哪些级,这种状态就不会再改变。所以,寄存器的状态可以是非全0的12n状态之一。这个电路的输出序列是从寄存器移出的,尽管移位寄存器的状态每一移位节拍改变一次,但无疑地是循环的。如果反馈线所分基于FPGA的m序列发生器布的级次是恰当的,那么,移位寄存器的状态必然各态历经后才会循环。这里所谓“各态历经”就是所有12n个状态都经过了。由此可见,应用n级移位寄存器所产生的序列的周期最长是12n。同时由于这种序列虽然是周期的,但当n足够大时周期可以很长,在一个周期内0和1的排列有很多不同方式,对每一位来说是0还是1,看来好像是随机的,所以又称为伪随机码;又因为它的某一些性质和随机噪声很相似,所以又称为伪噪声码(PN码)。基于FPGA的m序列发生器1.1.1线性反馈移位寄存器图1-2线性移位寄存器由于带有反馈,因此在移位脉冲作用下,移位寄存器各级的状态将不断变化,通常移位寄存器的最后一级做输出,输出序列为输出序列是一个周期序列。其特性由移位寄存器的级数、初始状态、反馈逻辑以及时钟速率(决定着输出码元的宽度)所决定。当移位寄存器的级数及时钟一定时,输出序列就由移位寄存器的初始状态及反馈逻辑完全确定。当初始状态为全零状态时,移位寄存器输出全0序列。为了避免这种情况,需设置全0排除电路。(1)线性反馈移位寄存器的递推关系式递推关系式又称为反馈逻辑函数或递推方程。设图10-1所示的线性反馈移位寄存器的初始状态为(a0a1…an-2an-1),经一次移位线性反馈,移位寄存器左端第一级的输入为若经k次移位,则第一级的输入为基于FPGA的m序列发生器其中,l=n+k-1≥n,k=1,2,3,…(2)用多项式f(x)来描述线性反馈移位寄存器的反馈连接状态:若一个n次多项式f(x)①f(x)为既约多项式(即不能分解因式的多项式)②f(x)可整除(xp+1),p=2n-③f(x)除不尽(xq+1),qp则称f(x)为本原多项式。基于FPGA的m序列发生器2m序列的性质2.1均衡性在一个周期中,m序列中“1”的个数比“0”的个数多一个。N级移位寄存器有2n状态,这些状态对应二进制有一半为偶数(即末位数为0),另一半为奇数(即末尾数为1)。m序列一个周期经历2n-1个状态,少一个全0状态(属于偶数状态),因此在一个周期中“1”的个数比“0”的个数多一个。例如,级数n=3,码序列周期P=23-1=7时,起始状态为“111”,Ci=(13)8=(1011)2,即C0=1、C1=0、C2=1、C3=1。产生的m序列为1110010,其中码元为“1”的有4个,码元为“0”的有3个,即在一个周期中“1”的个数比“0”多一个。2.2游程特性长度为k的游程数占游程总数的1/2k。一个周期中长度为1的游程数占游程总数的1/2;长度为2的游程数占游程总数的1/4;其中1=k=n-1。2.3移位相加特性一个m序列与其循环移位逐次比较,相同码的位数与不同码的位数相差1位。例如原序列{Xi}=1110010,那么右移2位的序列{Xi-2}=0011101.2.4自相关特性m序列具有非常重要的自相关特性。在m序列中,常常用+1代表0,用-1代表1。此时定义:设长为p的m序列,记作经过j次移位后,m序列为其中ai+p=ai(以p为周期),以上两序列的对应项相乘然后相加,利用所得的总和基于FPGA的m序列发生器来衡量一个m序列与它的j次移位序列之间的相关程度,并把它叫做m序列(a1,a2,a3,…,ap)的自相关函数。记作经过j次移位后,m序列为其中ai+p=ai(以p为周期),以上两序列的对应项相乘然后相加,利用所得的总和来衡量一个m序列与它的j次移位序列之间的相关程度,并把它叫做m序列(a1,a2,a3,…,ap)的自相关函数。记作基于FPGA的m序列发生器当采用二进制数字0和1代表码元的可能取值时由移位相加特性可知,仍是m序列中的元素,所以式(10-7)分子就等于m序列中一个周期中0的数目与1的数目之差。另外由m序列的均衡性可知,在一个周期中0比1的个数少一个,故得A-D=-1(j为非零整数时)或p(j为零时)。因此得m序列的自相关函数只有两种取值(1和-1/p)。R(j)是一个周期函数,即式中,k=1,2,…,p=(2n-1)为周期。而且R(j)是偶函数,即基于FPGA的m序列发生器图2-1m序列自相关函数2.5伪噪声特性如果我们对一个正态分布白噪声取样,若取样值为正,记为+1,取样值为负,记为-1,将每次取样所得极性排成序列,可以写成…+1,-1,+1,+1,+1,-1,-1,+1,-1,…(1)序列中+1和-12)序列中长度为1的游程约占1/2,长度为2的游程约占1/4,长度为3的游程约占1/8,…一般地,长度为k的游程约占1/2k,而且+1,-1游程的数目各占一(3)由于白噪声的功率谱为常数,因此其自相关函数为一冲击函数δ(τ)。基于FPGA的m序列发生器3m序列的应用3.1扩展频谱通信扩展频谱通信(SpreadSpectrumCommunication)是将待传送的信息数据被伪随机编码(扩频序列:SpreadSequence)调制,实现频谱扩展后再传输,接收端则采用同样的编码进行解调及相关处理,恢复原始信息数据。显然,这种通信方式与一般常见的窄带通信方式相反,是在扩展频谱后,宽带通信,再相关处理恢复成窄带后解调数据。扩展频谱通信方式有许多优点,如抗干扰、抗噪音、抗多径衰落、低功率谱密度下工作、有保密性、可多址复用和任意选址、高精度测量等。扩展频谱通信作为新型通信方式,特别引人注目,得到了迅速发展,如今在移动通信、卫星通信、宇宙通信、雷达、导航以及测距等领域得到越来越广泛的应用。扩频通信的优势主要来自于伪随机码具有白噪声的统计特性。而随着扩频速率的不断提高,扩频码的长度急剧增加,利用计算机设计并验证扩频码的各项指标能大大提高效率。m序列是伪随机序列中最重要的序列中的一种,是最长的线性移位寄存器序列。既然,m序列在扩频通信中占据着极其重要的位置,而对于m序列的产生及仿真的研究,自然也就有很大的必要性。在雷达信号设计中的应用近年兴起的扩展频谱雷达所采用的信号是已调制的具有类似噪声性质的伪随机序列,它具有很高的距离分辨力和速度分辨力。这种雷达的接收机采用相关解调的方式工作,能够在低信噪比的条件下工作,同时具有很强的抗干扰能力。该型雷达实质上是一种连续波雷达,具有低截获概率性,是一种体制新、性能高、适应现代高技术战争需要的雷达。采用伪随机序列作为发射信号的雷达系统具有许多突出的优点。首先,它是一种连续波雷达,可以较好地利用发射机的功率。其次,它在一定的信噪比时,能够达到很好的测量精度,保证测量的单值性,比单脉冲雷达具有更高的距离分辨力和速度分辨力。最后,它具有较强的抗干扰能力,敌方要干扰这种宽带雷达信号,将比干扰普通的雷达信号困难得多。在通信系统中的应用[1]伪随机序列是一种貌似随机,实际上是有规律的周期性二进制序列,具有类似噪声序列的性质,在CDMA中,地址码都是从伪随机序列中选取的,在CDMA中使用一种最易实现的伪随机序列:m序列,利用m序列不同相位来区分不同用户;为了数据安基于FPGA的m序列发生器全,在CDMA的寻呼信道和正向业务信道中使用了数据掩码(即数据扰乱)技术,其方法是用长度为2的42次方减1的m序列用于对业务信道进行扰码(注意不是扩频),它在分组交织器输出的调制字符上进行,通过交织器输出字符与长码PN码片的二进制模工相加而完成。扩展频谱技术的理论基础是山农公式。对于加性白高斯噪声的连续信道,其信道容量C与信道传输带宽B及信噪比S/N之间的关系