您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 基于Matlab的m序列发生器的设计1
陕西理工学院课程设计第1页共8页引言伪随机噪声具有类似于随机噪声的某些统计特性,同时又能够重复产生。由于它具有随机噪声的优点,又避免了随机噪声的缺点,因此获得了日益广泛的实际实用。这种周期性数字序列称为随机序列,有时又称为随机信号和伪随机码。m序列是伪随机序列中最重要的序列中的一种,它不但具有易于产生的特点,还具有良好的自相关特性,在扩频通信中得到了广泛的应用。1.m序列设计方案选择1.1方案一编程实现m序列:MATLAB编程非常简单,无需进行变量声明,可以很方便的实现m序列。1.2方案二图1.1Simulink实现m序列Simulink实现m序列(如图1.1所示)。Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。通过比较方案一和方案二,发现方案一的优点具有通用性,其中mserises.m相当于一个通项,根据具体的本原多项式调用它即可,而方案二利用MATLAB的simulink直接搭建模块,在移位寄存器较少时利用此方法极为简单,可是当移位寄存器的数量增多时,要搭建那么多的模块就显得很繁琐,缺乏通用性。2.Simulink工具介绍2.1Simulink简介Simulink是MATLAB软件最重要的组件之一,它提供一个动态系统建模、仿真和综合分析陕西理工学院课程设计第2页共8页的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可以构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用与控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。2.2Simulink的功能和特点Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI),这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理等系统,Simulink提供了交互式图形化环境和可定制模块库对其进行设计、仿真、执行和测试。构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。Simulink与MATLAB紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。Simulink的特点:丰富的可扩充的预定义模块库。交互式的图形编辑器来组合和管理直观的模块图。以设计功能的层次性来分割模型,实现对复杂设计的管理。通过ModelExplorer导航、创建、配置、搜索模型中的任意信号、参数、属性,生成模型代码。提供API用于与其他仿真程序的连接或与手写代码集成。使用EmbeddedMATLAB模块在Simulink和嵌入式系统执行中调用MATLAB算法。使用定步长或变步长运行仿真,根据仿真模式(Normal,Accelerator,RapidAccelerator)来决定以解释性的方式运行或以编译C代码的形式来运行模型。图形化的调试器和剖析器来检查仿真结果,诊断设计的性能和异常行为。可访问MATLAB从而对结果进行分析与可视化,定制建模环境,定义信号参数和测试数据。3.m序列产生和性质3.1m序列的原理、结构及产生m序列是最长线性反馈移位寄存器序列的简称,m序列是由带线性反馈的移位寄存器产生的.由n级串联的移位寄存器和和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化。其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。n级线性移位寄存器的如图3.1所示:陕西理工学院课程设计第3页共8页图3.1n级线性移位寄存器图中iC表示反馈线的两种可能连接方式,iC=1表示连线接通,第n-i级输出加入反馈中;iC=0表示连接线断开,第n-i级输出未参加反馈。因此,一般形式的线性反馈逻辑表达式为112201(mod2)nnnnniniiaCaCaCaCa将等式左面的na移至右面,并将00(1)nnaCaC代入上式,则上式可改写为100niniCa定义一个与上式相对应的多项式0()niiiFxCx,其中x的幂次表示元素的相应位置。式称为线性反馈移位寄存器的特征多项式,特征多项式与输出序列的周期有密切关系.当F(x)满足下列三个条件时,就一定能产生m序列:(1)F(x)是不可约的,即不能再分解多项式;(2)F(x)可整除1px,这里21np;(3)F(x)不能整除1qx,这里qp.满足上述条件的多项式称为本原多项式.这样产生m序列的充要条件就变成了如何寻找本原多项式.3.2m序列的基本性质1)均衡性.在m序列中一个周期内“1”的数目比“0”的数目多l位,这表明,序列平均值很小.2)m序列和其移位后的序列逐位模2相加,所得的序列还是m序列,只是相移不同而已.例如1110100与向右移3位后的序列1001110逐位模2相加后的序列为0111010,相当于原序列向右移1位后的序列,仍是m序列.3)m序列发生器中移位寄存器的各种状态,除全0状态外,其他状态只在m序列中出现1次.如7位m序列中顺序出现的状态为111,110,101,010,100,001和011,然后再回到初始状态111.4)m序列发生器中,并不是任何抽头组合都能产生m序列.理论分析指出,产生的m序列数由下式决定:Φ(2n-1)/n其中Φ(X)为欧拉数(即包括1在内的小于X并与它互质的正整数的个数).例如5级移位寄存器产生的31位m序列只有6个.5)m序列具有良好的自相关特性,其自相关系数:从m序列的自相关系数可以看出,m序列是一个狭义伪随机码.1na2na3na1c2c3c1nc01c1nc0a1a输出10()10jjjN陕西理工学院课程设计第4页共8页4.m序列的程序代码及运行结果4.1m序列程序根据m序列的特征方程:20120()nniniifxccxcxcxcx并根据其联接多项式编写Matlab程序.输入参数为由本原多项式所决定的反馈连接形式,以五阶m序列为例,其中用于产生m序列的程序代码如下:m=5an=[00001];%初始寄存器的内容cn=[00101];%cn为移位寄存器len=length(an);%所需移位寄存器的内容an=[zeros(1,len-1),1];L=2^len-1;%m序列的长度m(1)=an(1);%m序列的第一个输出码元fori=2:Lan1(1:len-1)=an(2:len);an1(len)=mod(sum(cn.*an),2);%寄存器与反馈的模2和an=an1;%移位后的寄存器m(i)=an(1);%新的寄存器输出endstairs(m)%对m序列绘图将以上代码命名为Untitled.m运行结果见图4.1。Untitledm=5-(N+1)Tc-(N-1)Tc-TcTc(N-1)Tc(N+1)TcRa-NTcNTc0图3.2m序列信号的自相关函数陕西理工学院课程设计第5页共8页图4.1m序列的输出4.2Simulink实现m序列在Simulink中建模如图4.2所示。图4.2m序列的仿真框图运行图4.2中的模型文件,所得结果如图4.3所示。陕西理工学院课程设计第6页共8页图4.3m序列的输出4.3输入本原多项式产生m序列以5阶移位寄存器为例来产生m序列,由文献可知其特征多项式52()1fxxx为本原多项式,亦及其反馈连接形式为[1C2C3C4C5C]=[00101];移位寄存器结构为图4.4移位寄存器结构利用Matlab编程环境求m序列的自相关特性程序:cleara=[1101010001110111110010011000010];b=[0110101000111011111001001100001];L=length(b);N=120;x=[1:N];fork=1:Nc=xor(a,b);D=sum(c);A=L-D;R(k)=(A-D)/(A+D);b=[b(L),b(1:L-1)];plot(k,R(k));1D2D3D4D5D0C3C5Cm序列陕西理工学院课程设计第7页共8页holdonendplot(x,R);grid运行结果见图4.5。图4.55级线性反馈移位寄存器产生m序列的相关特性5.程序调试及运行结果分析通过运行结果可以看出是由0、1组成的阶梯形图形,Stairs函数功能是画阶梯形,生成一系列的m序列,成功实现了要求。在调试过程中遇到一些错误,例如:???Subscriptindicesmusteitherberealpositiveintegersorlogicals.经过认真分析,解决了错误。6.心得体会课程设计是一个十分有价值,有意义的实践活动,把一个课题设计好不是一步到位的,是经过反复修改,不断调试的过程,其间有困难也有乐趣,使人对工程实践有一个初步的认识。本次课程设计完全实现了设计要求,利用软件实现m序列的生成,通过这次实践不但加深了对m序列的了解,而且对MATLAB编程有了很好的掌握,在不断的程序调错中提高了自己寻错的能力。m序列可以软件实现,也可以硬件实现,但是通过本次设计可以看到软件设计的许多优点。在课程设计的过程中,查询了大量的资料,通过相关资料的查阅,还掌握了通信领域的有关知识,扩大了知识面。致谢此次课程设计是在我的导师井敏英老师的悉心指导下进行的。在每次设计遇到问题时老师不辞辛苦的讲解才使得我的设计顺利的进行。从设计的选题到资料的搜集直至最后设计的修改的整个过程中,井老师花费了很多宝贵的时间和精力,在此向我的导师表示衷心地感谢!导师严谨的治学态度,开拓进取的精神和高度的责任心都将使学生受益终生!还要感谢同组同学,是你们在我平时设计中和我一起探讨问题,并指出我设计上的误区,使我能及时的发现问题把设计顺利的进行下去,没有你们的帮助我不可能这样顺利地结稿,在此表示深深的谢意。陕西理工学院课程设计第8页共8页参考文献[1]李贺冰,袁杰萍,孔俊霞.Simulink通信仿真教程[M].北京:国防工业出版社,2005,P53-55.[2]翁剑枫,叶志前.MATLABLabVIEWSystemView仿真分析基础[M].北京:机械工业出版社,2003,P32-34.[3]查光明,熊贤祚.扩频通信[M].西安:西安电子科技大学出版社,2002,P87-88.[4]曾兴雯,刘乃安,孙献璞.扩展频谱通信及其多址技术[M].北京:高等教育出版社,2004,P38-40.[5]樊昌信,张甫翊,吴成柯.现代通信[M].北京:高等教育出版社,2001,P77-81.[6]李妍等,MATLAB通信真开发手册[J]北京:国防工业出版社2005,11(2):P47-48.[7]陈奎等,m序列发生器的设计仿真[J],江
本文标题:基于Matlab的m序列发生器的设计1
链接地址:https://www.777doc.com/doc-2570567 .html