基于QuartusⅡ的伪随机m序列发生器的设计.docx
《基于QuartusⅡ的伪随机m序列发生器的设计.docx》由会员分享,可在线阅读,更多相关《基于QuartusⅡ的伪随机m序列发生器的设计.docx(13页珍藏版)》请在冰豆网上搜索。
基于QuartusⅡ的伪随机m序列发生器的设计
通信系统
课程设计报告
设计题目:
伪随机m序列发生器的设计
班级:
13物联网1
姓名:
李亚军
学号:
2013313136
指导教师:
程钦、任艳玲
课程地点:
60-507
江苏理工学院
电气信息工程学院
2106年9月8日
序言………………………………………………………………………………………………1
第1章QuartusⅡ软件介绍……………………………………………………………2
1.1QuartusⅡ简介……………………………………………………………………………2
第2章基于QuartusⅡ的伪随机m序列发生器的设计………………………3
2.1伪随机m序列发生器的设计要求………………………………………………………3
2.2伪随机m序列发生器的设计……………………………………………………………3
2.3伪随机m序列发生器的实现……………………………………………………………5
2.3.1原理图输入法实现与仿真结果分析………………………………………………5
2.3.2VHDL语言实现与仿真结果分析……………………………………………………7
2.4 设计分析与总结……………………………………………………………………………9
2.4.1故障分析…………………………………………………………………………………9
2.4.2功能分析…………………………………………………………………………………9
参考文献………………………………………………………………………………………10
体会与建议……………………………………………………………………………………11
附录………………………………………………………………………………………………12
序 言
随机噪声降低了通信系统的可靠性,限制信道容量但又可以用于测试通信系统性能和提高保密通信,所以就有伪随机序列的产生。
因为其具有类似于随机噪声的某些统计特性又避免了随机噪声不能重复产生和处理的缺点。
m序列是最长线性移位寄存器序列的简称,是一种伪随机序列、伪噪声(PN)码或伪随机码。
可以预先确定并且可以重复实现的序列称为确定序列;既不能预先确定又不能重复实现的序列称随机序列;不能预先确定但可以重复产生的序列称伪随机序列。
m序列是目前广泛应用的一种伪随机序列,其在通信领域有着广泛的应用,如扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量等领域。
在所有的伪随机序列中,m序列是最重要、最基本的一种伪随机序列。
它容易产生,规律性强,有很好的自相关性和较好的互相关特性。
采用原理图输入和VHDL语言产生周期为127,码元速率为50HZ的m序列
第一章QuartusⅡ软件介绍
1.1QuartusⅡ简介
QuartusII是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(AlteraHardware支持DescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具
良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:
可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTapII逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
第二章基于QuartusⅡ的伪随机m序列发生器的设计
2.1伪随机m序列发生器的设计要求
采用原理图输入法,完成后可进一步选做采用VHDL语言输入法实现。
根据m序列产生原理,确定m序列发生器具体设计方案。
设计m序列产生电路原理图、调试及仿真时时序波形。
序列周期要求为127,码元速率为50Hz。
2.2伪随机m序列发生器的设计
m序列:
线性反馈移位寄存器产生的周期最长序列,
。
因题目要求序列周期为P=127,即可列出不等式为:
。
由不等式求得n最小值为7。
由n=7查询图2本原多项式表得本原多项式:
。
又因为本原多项式
的系数为1所以可得
。
由图3线性反馈移位寄存器原理图可画出图4的m序列线性反馈移位寄存器原理图。
由图4的m序列线性反馈移位寄存器原理图可得序列周期要求为127的伪随机m序列产生过程如下:
将a6原有值给a5,将a5原有值给a4,将a4原有值给a3,将a3原有值给a2,将a2原有值给a1,将a1原有值给a0,将a0与a4原有值异或后给a6。
如此循环,a0输出数据即为序列周期要求为127的伪随机m序列。
按此方法可算出序列周期要求为127伪的随机m序列一个周期内数据如图5所示,a6至a0下方对应的数据即初始值为1000000按上述循环的结果,n下数据是前面数据循环到第几次时出现的。
从图中可看出0-126无重复数据,从127开始与0-126内数据重复出现可知其周期即为127。
a0一列即序列周期要求为127的伪随机m序列。
2.3伪随机m序列发生器的实现
2.3.1原理图输入法实现与仿真结果分析
按照图4原理图,选用7个D触发器和1个异或门按照原理图相连接。
D触发器为上升沿有效,PRN引脚低电平时Q引脚输出为高电平,CLRN引脚低电平时Q引脚输出为低电平。
如图6的第一个D触发器PRN引脚开始输入一个低电则Q引脚输出为高电平可以防止Q引脚开始为低电平则整个电路都在低电平循环无法验证结果是否正确。
c0输出为m序列,c1-c6是为了易于分析结果。
由图6电路原理图可知时钟周期为输出的m序列周期2倍。
又因为码元速率要求为50Hz,所以时钟频率应设置为0.01秒(1/50*2=0.01s)。
又因为序列周期要求为127则m序列周期为2.54s(1/50*127=2.54s)。
即仿真结果应该在2.54s后数据开始重复出现。
如图7仿真结果c0-c6与算出的数据a0-a6一一对应,仿真图高电平为1,低电平为0。
仿真图纵向结果与数据横向结果对应,将仿真图与图5数据对比可知能产生符合要求的序列。
b为时钟信号一个上升沿产生一组数据。
大图为整体图,左右两张图分别为大图开始与2.54s处图的放大效果。
经对比2.54s后图像与开始一样即仿真数据与开始数据重复。
故该电路可以产生序列周期要求为127的伪随机m序列。
c0输出数据即序列周期要求为127的伪随机m序列。
2.3.2VHDL语言实现与仿真结果分析
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYlyjIS
PORT(CLK:
INSTD_LOGIC;--时钟信号
EN:
INSTD_LOGIC;--使能信号,高电平将D0值给Y
D0:
INSTD_LOGIC_VECTOR(6DOWNTO0);--输入初始值
Y:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));--输出信号m序列
ENDENTITYlyj;
ARCHITECTUREBHVOFlyjIS
BEGIN
PROCESS(CLK,EN)
VARIABLED1:
STD_LOGIC_VECTOR(6DOWNTO0);--D1与D2为变量用于实现逻辑功能
VARIABLED2:
STD_LOGIC_VECTOR(6DOWNTO0);--D0与D2高低位与原理图a6-0对应
BEGIN
IFEN='1'THEN
D1:
=D0;--EN=1时D0值给D1
ELSIFCLK'EVENTANDCLK='1'THEN--上升沿有效
D2(6):
=(D1(4)XORD1(0));--由原理图得D1(4)与D1(0)异或值给D2(6)
D2(5):
=D1(6);--D1(6)值给D2(5)
D2(4):
=D1(5);
D2(3):
=D1(4);
D2
(2):
=D1(3);
D2
(1):
=D1
(2);
D2(0):
=D1
(1);
D1(6):
=D2(6);--D2(6)值给D1(6)
D1(5):
=D2(5);
D1(4):
=D2(4);
D1(3):
=D2(3);
D1
(2):
=D2
(2);
D1
(1):
=D2
(1);
D1(0):
=D2(0);
ENDIF;
Y<=D1;--D1值给Y
ENDPROCESS;
ENDBHV;
由程序可知一个时钟周期输出一个m序列码元。
又因为码元速率要求为50Hz,所以时钟频率应设置为0.01秒(1/50*2=0.01s)。
又因为序列周期要求为127则m序列周期为2.54s(1/50*127=2.54s)。
即仿真结果应该在2.54s后数据开始重复出现。
由程序可知CLK为时钟源上升沿有效,EN为高电平将D0数据给D1。
Y为输出引脚,Y[0]引脚为产生m序列数据,如图8所示第一个上升沿开始产生m序列。
下面两张图分别为大图开始与2.54s处图的放大效果。
经对比2.54s后图像与开始一样即仿真数据与开始数据重复。
将Y输出数据与图5对比可知能产生题目要求的序列。
故该电路可以产生序列周期要求为127的伪随机m序列。
Y[0]数据即序列周期要求为127的伪随机m序列。
2.4 设计分析与总结
2.4.1 故障分析
现象:
m序列输出始终为低电平
原因:
初始值为0,则电路一直为0循环。
2.4.2 功能分析
可以产生周期为127,码元速率为50Hz的m序列。
VHDL语言可以自定义初始数据。
参考文献
[1]樊昌信.通信原理[M].北京:
国防工业出版社,2015年1月.P379-P390
[2]电信学院通信原理课程组.通信系统实验与设计指导书[M].常州,2013年9月.P4-P7
体会与建议
通过本次实验,对伪随机m序列有了进一步的学习。
本次实验只是用软件产生m序列,并将产生的序列与计算的理论值进行对比,以判断数据是否正确。
并没有对m序列进行实际应用。
m序列是一组随机而又重复的数据,可以对其进行相关编码这样就可以将m序列与其他知识相结合。
如对其进行简单的2ASK,2DPSK编码。
这样m序列就可以应用于通信系统。
伪随机序列具有随机噪声的特点,所以m序列也可以运用检测通信系统的性能。
由于序列的随机性也可以用于信息加密等。
若实验时间充裕可以将m序列与其它实验进行结合形成一个整体的通信系统,而不是一个个相对独立的个体。
附录
所用软件:
QuartusⅡ9.0
硬件:
7个D触发器、1个异或门
图2、图3截取于樊昌信的《通信原理》