通信系统专业课程设计一.课题名称:PN(伪随机码)码发生器的设计二.设计目的:1、巩固加深对电子线路的基本知识,提高综合运用专业知识的能力;2、培养学生查阅参考文献,独立思考、设计、钻研专业知识相关问题的能力;3、通过实际制作安装电子线路,学会单元电路以及整机电路的调试与分析方法;4、掌握相关电子线路工程技术规范以及常规电子元器件的性能技术指标;5、了解电气图国家标准以及电气制图国家标准,并利用电子CAD正确绘制电路图;6、培养严肃认真的工作作风与科学态度,建立严谨的工程技术观念;7、培养工程实践能力、创新能力和综合设计能力。
三.设计要求:1、通信系统的原理框图,说明系统中各主要组成部分的功能;2、根据选用的软件编好用于系统仿真的测试文件;3、拟采用的实验芯片的型号可选89c51、TSC 5402、5416、2407及ALTERA的EPM7128CPLD或EP1K30进行硬件验证;4、独立完成课程设计报告,严禁报告内容雷同;5、电路图中的图形符号必须符合国家或国际标准。
四.所用仪器设备:Altera的MAX 7000S系列芯片;方正文祥电脑。
五.设计内容:1、伪随机序列产生原理及作用:随着通信理论的发展,早在20世纪40年代,香农就曾指出,在某些情况下,为了实现最有效的通信,应采用具有白噪声的统计特性的信号。
另外,为了实现高可靠的保密通信,也希望利用随机噪声。
然而,利用随机噪声最大困难是它难以重复产生和处理。
直到60年代,伪随机噪声的出现才使这一难题得到解决。
伪随机噪声具有类似于随机噪声的一些统计特性,同时又便于重复产生和处理。
由于它具有随机噪声的优点,又避免了它的缺点,因此获得了日益广泛的应用。
目前广泛应用的伪随机序列都是由数字电路产生的周期序列得到的,我们称这种周期序列为伪随机序列。
对与伪随机序列有如下几点要求:①应具有良好的伪随机性,即应具有和随机序列类似的随机性;②应具有良好的自相关、互相关和部分相关特性,即要求自相关峰值尖锐,而互相关和部分相关值接近于零。
这是为了接收端准确检测,以减少差错;③要求随机序列的数目以保证在码分多址的通信系统中,有足够的地址提供给不同的用户;④要求设备简单,易实现,成本低。
通常产生伪随机序列的电路为一反馈移存器。
它又分为线形反馈移存器和非线形反馈移存器两类。
由线形反馈移存器产生出的周期最长的二进制数字序列称为最大长度线形反馈移存器,通常称为m序列。
由于它的理论比较成熟,实现比较简便,实际应用也比较广泛,故在这里以m序列发生器为例,设计伪随机序列发生器。
m序列是由带线形反馈的移存器产生的周期最长的一种序列。
线形反馈移位寄存器由时钟控制若干个串接的存储器所组成。
在时钟信号的控制下,寄存器的存储信号由上一级向下一级传递。
如果让某些寄存器的输出反馈回来进行运算,运算结果作为第一级寄存器的输入,则我们可以得到一个移位寄存器序列。
如果移位寄存器的反馈函数和初始状态不同,那么可得到不同的移位寄存器序列。
线性移位寄存器的一般形式如图1所示,总共有1,2,3,…,N个寄存器,他们的状态为Xi(i=1,2,3,…,n),经Ci (I=1,2,3,…,n)相乘后模2加,再反馈。
这里Ci∈(0,1),且乘法规则是0·0=0·1=1·0=0,1·1=1。
实际上Ci =0表示断开,Ci=1表示连接。
因此这个N阶移位寄存器的反馈函数为:F(X1,X2,…,X n)=∑i n=1C i X i特征多项式是:f(x)= ∑i n=1CiX i=C+C1X1+C2X2+…+CnX n特征多项式中的Xi(i=0,1,2...n)与移位寄存器的第i个触发器相对应。
图1 线形移位寄存器的一般形式上述的反馈函数是一个线形递归函数。
当级数(n)和反馈系数一旦确定,则反馈移位寄存器的输出序列就确定了。
反馈移存器的级数n不同,则m序列的反馈系数也不同,表1列出了部分的m序列发生器的反馈系数。
表中给出的是八进制数值,经转换成二进制数值后,可求出相应的反馈系数。
伪随机信号在雷达、遥控、遥测、通信加密和无线电测量系统领域有着广泛的应用。
利用VHDL语言进行软件编程,通过EDA设计软件对程序编译、优化、综合、仿真、适配,最后将生成的网表文件配置于制定的目标芯片中,可以实现不同序列长度的伪随机信号发生器。
2、m序列的性质:(1)均衡性m序列在一个周期内“1”和“0”的个数基本相等。
具体来说,m序列的一个周期中的“0”的个数比“1”的个数少一个。
(2)游程分布我们把伪随机序列中取值(“0”或“1”)相同的一段码位称为一个游程。
在一个游程中包含的位数称为游程长度。
把取值为“0”的游程称为“0”游程,取值为“1”的游程为“1”游程。
在m序列中的一个周期内,游程的总个数等于2n-1,而且“0”游程的数目与“1”游程的数目相等,即各占一半。
一般来说,在m序列中,长度为1的游程占游程总数的一半;长度为2的游程占游程总数的2-k,其中1≤k≤(n-2),而且“0”和“1”的游程各占一半。
长为n-1的游程只有一个,且为“0”游程,长为“1”。
表1 部分m序列发生器的反馈系数3、伪随机码发生器的VHDL实现:基于m序列的性质,我利用EDA技术,在Altera的MAX 7000S系列芯片上实现的伪随机序列发生器,为产生低成本的电子系统测试信号提供了一种简单易行的方法。
EDA (Electronic Design Automation)是以大规模可编程逻辑器件替代中小规模集成电路作为硬件载体,以EDA软件编程的方式对可编程器件进行电子系统设计的计算机辅助电路设计技术。
目前已经广泛应用于电子电路与系统的设计和产品的开发,逐渐取代了传统的手工硬件电路设计方式。
设计的系统具有体积小、重量轻、功耗小、速度快、价格低、可靠性高、设计周期短等优点。
一个功能完备的EDA设计软件加上一片普通功能的可编程逻辑芯片就可以构成以前需几百个集成电路才能构成的电子系统。
目前常用的可编程逻辑器件有CPLD(ComplexProgrammable Logic Device)和FPGA(Field Programmable Gate Array),常用的EDA软件包括VHDL,Verilog HDL,ABEL等硬件描述语言。
其中,VHDL作为IEEE 的工业标准硬件描述语言,又受到众多EDA工具厂家的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
(1)PN码(m序列,n=7)发生器的VHDL源程序:library ieee;use ieee.std_logic_1164.all;entity PS7 is ——实体名为“PS7”port(clk:in std_logic;load:in std_logic;Q :out std_logic;); ——定义实体接口end PS7;architecture behav of PS7 issignal c0,c1,c2,c3,c4,c5,c6,c7:std_logic;beginprocess(clk,load)beginif clk’event and clk=’1’then ——定义时钟上升沿触发if(load=’1’)thenc7<=’0’;c6<=’0’;c5<=’0’;c4<=’0’;c3<=’0’;c2<=’0’;c1<=’0’;c0<=’1’;Q<=c7;ELSEc1<=c0;c2<=c1;c3<=c2;c4<=c3;c5<=c4;c6<=c5;c7<=c6;c0<=c7 xor c4 xor c3 xor c2; ——设置反馈方式Q<=c7;end if;end if;end process;end behav;(3)调试过程及现象:n=7的伪随机序列产生器的时序仿真波形如下图所示。
图中的“load”在“1”电平期间对伪随机序列发生器置初始信号,在“0”电平期间伪随机序列发生器进行移位操作;“CLK”表示移位寄存器的位同步信号;“Q”表示串行伪随机序列信号输出。
图3 n=7的伪随机序列产生器的时序仿真波形(4)出现的问题及解决方法:当m序列的序列的级数为n=7,序列长度为m=27-1=127,若选反馈系数的八进制数值为235,转换成二进制数值为10011101,依据建模图c0=(c7)xor(c4)xor(c3)xor(c2);Q=c;则可推出寄存器以后的状态。
如下:7c7c6 c5 c4 c3 c2 c1 c0输出1 0 0 1 1 1 0 10 0 1 1 1 0 1 0 Q=10 1 1 1 0 1 0 0 Q=01 1 1 0 1 0 0 0 Q=11 1 0 1 0 0 0 0 Q=11 0 1 0 0 0 0 0 Q=10 1 0 0 0 0 0 1 Q=11 0 0 0 0 0 1 0 Q=0续表:0 0 0 0 0 1 0 1 Q=10 0 0 0 1 0 1 1 Q=00 0 0 1 0 1 1 1 Q=00 0 1 0 1 1 1 0 Q=00 1 0 1 1 1 0 0 Q=01 0 1 1 1 0 0 1 Q=00 1 1 1 0 0 1 1 Q=11 1 1 0 0 1 1 1 Q=01 1 0 0 1 1 1 0 Q=1所以,n=7时反馈移位寄存器的输出为:1001110100000101,而这与实际仿真的波形不符(见图3)。
六.心得体会及建议:这两周进行的通信系统专业课程设计是通信工程专业的最后一次课程设计。
这次课程设计是在我们学完主要专业课程之后进行的,这使得这次课程设计能够综合以前所学的专业知识,是对前面知识的一次实际检验。
我选的是有关PN码(也就是伪随机序列)发生器的设计。
虽说我们的教材——《基于CPLD/FPGA的数字通信系统建模与设计》上面有一整套详细的设计,但是我还是从最基本的原理分析到设计原理框图,再到程序设计及仿真的完整设计流程做起,巩固已学知识,加深理解,力争做到灵活应用。
在选好课题之后,我在图书馆及互联网查找相关资料,确定详细的设计方案。
最后,参阅了大量资料后,确定了以m序列发生器的设计为例,阐述伪随机序列发生器设计的一般原理。
在通信工程应用中,常采用二进制伪随机序列。
而伪随机序列或称伪随机码,是模仿随机序列的随机特性而产生的一种玛字,也称为伪噪声序列或伪噪声码。
在数字通信中,伪随机序列有很多种,有m序列、Gold序列、M序列等。
本次课程设计,让我学到了很多东西,更让我明白了做任何事情没有正确的态度是不行的。
而且我发现有些事情看似容易,但是做起来就不象想象中的那么容易了。