1、PN 码发生器的设计1通信系统专业课程设计一 课题名称:PN(伪随机码)码发生器的设计二 设计目的:1、巩固加深对电子线路的基本知识,提高综合运用专业知识的能力;2、培养学生查阅参考文献,独立思考、设计、钻研专业知识相关问题的能力;3、通过实际制作安装电子线路,学会单元电路以及整机电路的调试与分析方法;4、掌握相关电子线路工程技术规范以及常规电子元器件的性能技术指标;5、了解电气图国家标准以及电气制图国家标准,并利用电子 CAD 正确绘制电路图;6、培养严肃认真的工作作风与科学态度,建立严谨的工程技术观念;7、培养工程实践能力、创新能力和综合设计能力。三 设计要求:1、通信系统的原理框图,说明
2、系统中各主要组成部分的功能;2、根据选用的软件编好用于系统仿真的测试文件;3、拟采用的实验芯片的型号可选 89c51、TSC 5402、5416、2407 及 ALTERA 的EPM7128 CPLD 或 EP1K30 进行硬件验证;4、独立完成课程设计报告,严禁报告内容雷同;5、电路图中的图形符号必须符合国家或国际标准。四 所用仪器设备:Altera 的 MAX 7000S 系列芯片;方正文祥电脑。五设计内容:1、伪随机序列产生原理及作用:随着通信理论的发展,早在 20 世纪 40 年代,香农就曾指出,在某些情况下,为了实现最有效的通信,应采用具有白噪声的统计特性的信号。另外,为了实现高可靠
3、的保密通信,也希望利用随机噪声。然而,利用随机噪声最大困难是它难以重复产生和处理。直到 60 年代,伪随机噪声的出现才使这一难题得到解决。PN 码发生器的设计2伪随机噪声具有类似于随机噪声的一些统计特性,同时又便于重复产生和处理。由于它具有随机噪声的优点,又避免了它的缺点,因此获得了日益广泛的应用。目前广泛应用的伪随机序列都是由数字电路产生的周期序列得到的,我们称这种周期序列为伪随机序列。对与伪随机序列有如下几点要求: 应具有良好的伪随机性,即应具有和随机序列类似的随机性; 应具有良好的自相关、互相关和部分相关特性,即要求自相关峰值尖锐,而互 相关和部分相关值接近于零。这是为了接收端准确检测,
4、以减少差错; 要求随机序列的数目以保证在码分多址的通信系统中,有足够的地址提供给不同的用户; 要求设备简单,易实现,成本低。通常产生伪随机序列的电路为一反馈移存器。它又分为线形反馈移存器和非线形反馈移存器两类。由线形反馈移存器产生出的周期最长的二进制数字序列称为最大长度线形反馈移存器,通常称为 m 序列。由于它的理论比较成熟,实现比较简便,实际应用也比较广泛,故在这里以 m 序列发生器为例,设计伪随机序列发生器。m 序列是由带线形反馈的移存器产生的周期最长的一种序列。线形反馈移位寄存器由时钟控制若干个串接的存储器所组成。在时钟信号的控制下,寄存器的存储信号由上一级向下一级传递。如果让某些寄存器
5、的输出反馈回来进行运算,运算结果作为第一级寄存器的输入,则我们可以得到一个移位寄存器序列。如果移位寄存器的反馈函数和初始状态不同,那么可得到不同的移位寄存器序列。线性移位寄存器的一般形式如图 1 所示,总共有 1,2,3,N 个寄存器,他们的状态为 Xi(i=1,2,3,n) ,经 Ci(I=1,2,3,n)相乘后模 2 加,再反馈。这里 Ci(0,1) ,且乘法规则是00=01=10=0,11=1。实际上 Ci=0 表示断开,C i=1 表示连接。因此这个 N 阶移位寄存器的反馈函数为: F(X 1,X 2,Xn)= in=1CiXi特征多项式是:f(x)= in=1CiXi=C0+C1X1
6、+C2X2+CnXnPN 码发生器的设计3特征多项式中的 Xi(i=0,1,2.n)与移位寄存器的第 i 个触发器相对应。c0 c1 c2 c3 cn-1 cn 输出图 1 线形移位寄存器的一般形式上述的反馈函数是一个线形递归函数。当级数(n)和反馈系数一旦确定,则反馈移位寄存器的输出序列就确定了。反馈移存器的级数 n 不同,则 m 序列的反馈系数也不同,表 1 列出了部分的 m 序列发生器的反馈系数。表中给出的是八进制数值,经转换成二进制数值后,可求出相应的反馈系数。图 2 n=7 的反馈移位寄存器的结构模型伪随机信号在雷达、遥控、遥测、通信加密和无线电测量系统领域有着广泛的应用。利用 VH
7、DL 语言进行软件编程,通过 EDA 设计软件对程序编译、优化、综合、仿真、适配,最后将生成的网表文件配置于制定的目标芯片中,可以实现不同序列长度的伪随机信号发生器。2、m 序列的性质:(1) 均衡性m 序列在一个周期内“1”和“0”的个数基本相等。具体来说,m 序列的一个周期中的“0”的个数比“1”的个数少一个。(2) 游程分布我们把伪随机序列中取值(“0”或“1” )相同的一段码位称为一个游程。在一个游输出1 2 3 4 5 6 7+ak-1 ak-2 ak-3 ak-n-1 ak-nPN 码发生器的设计4程中包含的位数称为游程长度。把取值为“0”的游程称为“0”游程,取值为“1”的游程为
8、“1”游程。在 m 序列中的一个周期内,游程的总个数等于 2n-1,而且“0”游程的数目与“1”游程的数目相等,即各占一半。一般来说,在 m 序列中,长度为 1 的游程占游程总数的一半;长度为 2 的游程占游程总数的 2-k,其中 1k(n-2),而且“0”和“1”的游程各占一半。长为 n-1 的游程只有一个,且为“0”游程,长为“1” 。级数(n) 序列长度 反馈系数3 7 134 15 235 31 45,67,756 63 103,147,1557 127 203,211,217,235,277,313,325,345,3678 255 435,453,537,543,545,551,7
9、03,7479 511 1021,1055,1131,1157,1167,117510 1023 2011,2033,2157,2443,2745,347111 2047 4005,4445,5023,5263,6211,736312 4095 10123,11417,12515,13505,14124,1505313 8191 20033,23261,30471,32535,3750514 16383 42103,51761,55753,60153,71147,6740115 32767 100003,110003,120265,133663,142305,16470516 65536 21
10、0013,233303,307572,311405,347433,37521317 131071 400011,411335,444257,527427,646775,71430318 262143 1000201,1002241,1025711,170360119 524287 2000047,2020471,2227023,2331067,2570103,361035320 1048575 4000011,4001151,4004515,6000031表 1 部分 m 序列发生器的反馈系数3、伪随机码发生器的 VHDL 实现:基于 m 序列的性质,我利用 EDA 技术,在 Altera 的
11、 MAX 7000S 系列芯片上实现的伪随机序列发生器,为产生低成本的电子系统测试信号提供了一种简单易行的方法。 EDA(Electronic Design Automation)是以大规模可编程逻辑器件替代中小规模集成电路作为硬件载体,以 EDA 软件编程的方式对可编程器件进行电子系统设计的计算机辅助电路设计技术。目前已经广泛应用于电子电路与系统的设计和产品的开发,逐渐取代了PN 码发生器的设计5传统的手工硬件电路设计方式。设计的系统具有体积小、重量轻、功耗小、速度快、价格低、可靠性高、设计周期短等优点。一个功能完备的 EDA 设计软件加上一片普通功能的可编程逻辑芯片就可以构成以前需几百个集
12、成电路才能构成的电子系统。目前常用的可编程逻辑器件有 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
13、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 clkevent and clk=1then 定义时钟上升沿触发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
14、=c3;c5=c4;c6=c5;PN 码发生器的设计6c7=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,序列长度为
15、m=27-1=127,若选反馈系数的八进制数值为 235,转换成二进制数值为 10011101, 依据建模图 c0=(c 7)xor(c 4)xor(c 3)xor(c 2) ;Q=c 7 ;则可推出寄存器以后的状态。如下:c7 c6 c5 c4 c3 c2 c1 c0 输出1 0 0 1 1 1 0 1 0 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=1 1 0 1 0 0 0 0 0 Q=10 1 0 0 0 0 0 1 Q=1PN 码发生器的设计71 0 0 0 0 0 1 0 Q=0续
16、表: 0 0 0 0 0 1 0 1 Q=10 0 0 0 1 0 1 1 Q=0 0 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) 。六心得体会及建议:这两周进行的通信系统专业课程设计是通信工程专业的最后一次课程设计。这次课程设计是在我们学完主要专业课程之后进行的,这
17、使得这次课程设计能够综合以前所学的专业知识,是对前面知识的一次实际检验。我选的是有关 PN 码(也就是伪随机序列)发生器的设计。虽说我们的教材基于 CPLD/FPGA 的数字通信系统建模与设计上面有一整套详细的设计,但是我还是从最基本的原理分析到设计原理框图,再到程序设计及仿真的完整设计流程做起,巩固已学知识,加深理解,力争做到灵活应用。在选好课题之后,我在图书馆及互联网查找相关资料,确定详细的设计方案。最后,参阅了大量资料后,确定了以 m 序列发生器的设计为例,阐述伪随机序列发生器设计的一般原理。在通信工程应用中,常采用二进制伪随机序列。而伪随机序列或称伪随机码,是模仿随机序列的随机特性而产生的一种玛字,也称为伪噪声序列或伪噪声码。在数字通信中,伪随机序列有很多种,有 m 序列、Gold 序列、M 序列等。本次课程设计,让我学到了很多东西,更让我明白了做任何事情没有正确的态度是不行的。而且我发现有些事情看似容易,但是做起来就不象想象中的那么容易了。此次设计我获益太多。希望以后能有更多自己动手的机会!PN 码发生器的设计8七 参考文献:1段吉海等.基于 CPLD/FPGA 的数字通信系统建模与设计.电子工业出版社 2004,52樊昌信等.通信原理. 国防工业出版社 2001,5 3张亦华等.数字电路 EDA 入门VHDL 程序实例集.北京邮电大学出版社 2003,3