1、1、 利用Matlab实现M序列的产生及其自相关序列。2、 观察成形信号波形。参考文献1樊昌信,曹丽娜编著,通信原理(第六版),国防工业出版社,20062吴先用,邹学玉,一种m序列伪码发生器的产生方法J.测控技术,2003,,22(9)3肖国镇,梁传甲,王育民.伪随机序列及其应用。M.长沙:国防工业出版社,1985.4吕辉,何晶,王刚。伪随机序列中本原多项式生成算法J,计算机工程。审查意见指导教师签字:教研室主任签字: 2010年 12月 27日 1 需求分析伪随机信号既有随机信号所具有的优良的相关性,又有随机信号所不具备的规律性. 因此,伪随机信号既易于从干扰信号中被识别和分离出来,又可以方
2、便地产生和重复,其相关函数接近白噪声的相关函数, 有随机噪声的优点,又避免了随机噪声的缺点. 伪随机序列具有可确定性、可重复性,易于实现相关接受或匹配接受,故有很好的抗干扰性能. 因此伪随机序列在相关辩识、伪码测距、导航、遥控遥测、扩频通信、多址通信、分离多径、误码测试、线形系统测量、数据加扰、信号同步等方面均有广泛的应用. m序列是伪随机序列中最重要的一种,是最长线性移位寄存器序列,m序列易于实现,具有优良的自相关特性,在直扩通信系统中用于扩展要传递的信号。可以通过移位寄存器,利用MATLAB编程产生m序列。2 概要设计m 序列是最长线性反馈移位寄存器序列的简称,m 序列是由带线性反馈的移位
3、寄存器产生的.由n级串联的移位寄存器和和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化。其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。n级线性移位寄存器的如图1所示:输出 图1 n级线性移位寄存器图中表示反馈线的两种可能连接方式,=1表示连线接通,第n-i级输出加入反馈中;=0表示连接线断开,第n-i级输出未参加反馈。因此,一般形式的线性反馈逻辑表达式为将等式左面的移至右面,并将代入上式,则上式可改写为定义一个与上式相对应
4、的多项式其中x的幂次表示元素的相应位置。式称为线性反馈移位寄存器的特征多项式,特征多项式与输出序列的周期有密切关系.当F(x)满足下列三个条件时,就一定能产生m序列:(1) F(x)是不可约的,即不能再分解多项式;(2) F(x)可整除,这里;(3) F(x)不能整除,这里qp.满足上述条件的多项式称为本原多项式.这样产生m序列的充要条件就变成了如何寻找本原多项式.根据m 序列的特征方程:并根据其联接多项式编写Matlab 程序.3 运行环境硬件环境:Window xp软件环境:Matlab 6.54 开发工具和编程语言5 详细设计主程序Untitled.m:%m序列发生器及其自相关 mseq
5、.mclear all;close all;g=19;%G=10011;state=8;%state=1000L=1000;%m序列产生N=15;mq=mgen(g,state,L);%m序列自相关ms=conv(1-2*mq,1-2*mq(15:-1:1)/N;figure(1)%subplot(222)stem(ms(15:end);axis(0 63 -0.3 1.2);title(m序列自相关序列)figure(2)%m序列构成的信号(矩形脉冲)N_sample=8;Tc=1;dt=Tc/N_sample;t=0:dt:Tc*L-dt;gt=ones(1,N_sample);mt=si
6、gexpand(1-2*mq,N_sample);mt=conv(mt,gt);%subplot(221);plot(t,mt(1:length(t);m序列矩形成形信号st=sigexpand(1-2*mq(1:15),N_sample);s=conv(st,gt);st=s(1:length(st);rt1=conv(mt,st(end:1)/(N*N_sample);figure(3)%subplot(223)plot(t,rt1(length(st):length(st)+length(t)-1);m序列矩形成形信号的自相关);xlabel(tt=-20:20;gt=sinc(t/Tc
7、);st2=sigexpand(1-2*mq(1:s2=conv(st2,gt);st2=s2;rt2=conv(mt,st2(end:figure(4)%subplot(224);t1=-55+dt:plot(t1,rt2(1:length(t1);axis(0 63 -0.5 1.2);m序列since成形信号的自相关调用的子程序如下:(1)mgen.m:function out = mgen(g,state,N)%输入 g:m序列生成多项式(10进制输入)%state:寄存器初始状态(10进制输入)%N:输出序列长度% test g=11;state=3;gen = dec2bin(g)
8、-48;M = length(gen);curState = dec2bin(state,M-1) - 48;for k =1:N out(k) = curState(M-1); a = rem(sum( gen(2:end).*curState),2); curState = a curState(1:M-2);end(2)mseq.m(3)sigexpand.m:function out = sigexpand(d,M)N = length(d);out = zeros(M,N);out(1,:)=d;out = reshape(out,1,M*N);6 调试分析在调试程序中出现过以下问题
9、:Undefined function or variable sigexpand.后来查出是子程序定义和调用方面出的差错,经过修改,成功排除了错误。m序列的输出波形在每次运行程序后不尽相同,这是由m序列特性决定的,它是一种伪随机序列。7 测试结果 图2 m序列自相关序列 图3 m序列矩形成形信号 图4 m序列矩形成形信号的自相关 图5 m序列since成形信号的自相关8 参考文献 心得体会本次课程设计完全实现了设计要求,利用软件实现m序列的生成及成形信号,通过这次实践不但加深了我对m序列的了解,而且对MATLAB编程有了很好的掌握,在不断的程序调错中提高了自己寻错的能力。m序列可以软件实现,也可以硬件实现,但是通过本次设计可以看到软件设计的许多优点。在课程设计的过程中,我查询了大量的资料,通过相关资料的查阅,还掌握了通信领域的有关知识,扩大了知识面。课程设计是一个十分有价值、有意义的实践活动,把一个课题设计好不是一步到位的,而是一个经过反复修改,不断调试的过程,其间有困难也有乐趣,使我对工程实践有了一个更加深刻的认识。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1