m序列产生和性能的MATLAB仿真
- 格式:pdf
- 大小:207.97 KB
- 文档页数:3
m序列 matlab code实现流程一、引言m序列是一种具有良好性质的伪随机序列,广泛应用于通信、密码学等领域。
本文将介绍如何使用Matlab编写m序列的代码,并给出实现流程。
二、代码实现流程1. 初始化参数我们需要初始化一些参数,包括m序列的阶数n和初始状态寄存器的初值。
可以根据应用需要进行设置。
2. 生成m序列接下来,我们通过循环迭代的方式生成m序列。
在每一次迭代中,我们根据当前状态寄存器的值计算下一个状态寄存器的值,并将该值作为m序列的输出。
具体的实现代码如下:```matlabmSeq = zeros(1, 2^n - 1);reg = initReg;for i = 1:2^n - 1mSeq(i) = reg(n);nextReg = zeros(1, n);for j = 1:nnextReg(j) = mod(sum(reg(1:j-1)), 2);endreg = [nextReg reg(1:n-1)];end```其中,mSeq是用来存储m序列的数组,reg是用来存储当前状态寄存器的数组。
3. 输出m序列生成m序列后,我们可以将其输出,以便后续的应用。
可以使用Matlab的disp函数将m序列打印出来,或者将mSeq保存为文本文件。
具体的实现代码如下:```matlabdisp(mSeq);```或```matlabfileID = fopen('mSeq.txt', 'w');fprintf(fileID, '%d\n', mSeq);fclose(fileID);```4. 示例为了更好地理解m序列的生成过程,我们可以进行一个简单的示例。
假设我们设置n=3、初始状态寄存器的值为[1 0 0],则根据上述代码,可以得到对应的m序列为[1 1 0 1 1 0 0]。
5. 结果分析m序列具有良好的性质,包括平衡性、最长线性周期等。
基于matlab的m序列的产生和特性分析作者:耿亚南来源:《中国新通信》 2017年第15期【摘要】 m 序列是一种重要的伪随机序列。
本文借助MATLAB 平台,详细介绍了m 序列的产生原理,并仿真了由移位寄存器产生的m 序列,同时研究了m 序列的自相关函数并得到了m 序列自相关函数的图像。
仿真结果验证了该方法的正确性和可行性。
【关键字】 m 序列自相关函数 MATLAB一、引言m 序列是最长线性移位寄存器序列的简称,有着良好的自相关性,易于产生和复制,是目前广泛应用的一种伪随机序列。
其在通信领域有着广泛的应用,如扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量等领域。
近几十年来,运用m 序列测量房间声学系统脉冲响应的技术研究也受到了人们的关注。
m 序列法测量技术有两大优点其一是较强的抗噪声性能,其二是运算速度快、效率高。
二、m 序列的产生2.1 m 序列的产生原理m 序列是由带线性反馈的移位寄存器产生的。
由n 级串联的移位寄存器和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2 和构成,则称为线性反馈移位寄存器。
m 序列的产生框图如图1 所示。
图中C0、C1…Cn 均为反馈线,其中C0= Cn=1,表示反馈连结。
因为m 序列是由循环序列发生器产生的,因此C0和Cn 肯定为1,即参与反馈。
而反馈系数C1、C2…Cn - 1若为1,参与反馈,若为0,则表示断开反馈线,即开路、无反馈连线。
2.2 MATLAB 仿真MATLAB 产生m 序列的部分程序:function[mseq]=m_sequence(fbconnection)n=length(fbconnection);N=2^n-1;register=[zeros(1,n-1) 1];mseq(1)=register(n);for i=2:Nnewregister(1)=mod(sum(fbconnection.*register),2);for j=2:nnewregister(j)=register(j-1);end;三、m 序列的自相关函数3.1 自相关函数自相关是指m 序列与逐位移位后的序列相关性的一种度量。
XUEBAO 2009.10.20*[收稿日期]2009-07-28[作者简介]刘新永(1975-,男,解放军蚌埠坦克学院教育技术中心,讲师,研究方向:通信与网络技术。
蔡凤丽(1978-,女,安徽电子信息职业技术学院,讲师,研究方向:通信与信息系统。
裴晓根(1975-,男,解放军蚌埠坦克学院信息指挥教研室,助讲,研究方向:军事通信。
No.52009General No.44Vol.82009年第5期第8卷(总第44期安徽电子信息职业技术学院学报JOURNALOF ANHUI VOCATIONAL COLLEGE OF ELECTRONICS&INFORMATION TECHNOLOGY[文章编号]1671-802X(200905-0014-03基于MATLAB 的m 序列的产生及相关特性仿真刘新永1,蔡凤丽2,裴晓根3(1、3.解放军蚌埠坦克学院,安徽蚌埠233050;2.安徽电子信息职业技术学院,安徽蚌埠233060[摘要]本文主要是介绍MATLAB 在m 序列的产生及其相关特性分析方面的应用,研究了基于MATLAB 完成m序列simulink 硬件仿真方法,并且利用MATLAB 对不同长度的几种m 序列进行相关特性的分析。
[关键词]m 序列;simulink 硬件仿真;自相关[中图分类号]TN95[文献标识码]B一、m 序列的产生原理m 序列是最长线性反馈移存器序列的简称,它是由带线性反馈的移存器产生的周期最长的一种序列。
如图1所示为n 级移位寄存器,其中有若干级经模2加法器反馈到第1级。
不难看出,在任何一个时刻去观察移位寄存器的状态,必然是2n 个状态之一,其中每一状态代表一个n 位的二进制数字;但是,必须把全0排斥在外,因为一旦出现全0状态,则以后的序列将恒为0,所以,寄存器的起始状态可以是非全0的2n -1状态之一。
这个电路的输出序列是从寄存器移出的,尽管移位寄存器的状态每一移位节拍改变一次,但无疑是循环的。
目录前言 (1)第一章设计任务 (2)1.2设计内容 (2)1.2设计要求 (2)1.3系统框图 (2)第二章m序列的分析 (4)2.1m序列的含义 (4)2.2m序列产生的原理 (5)2.2m序列的性质 (6)2.3自相关特性 (7)第三章m序列的设计 (8)3.1特征多项式确定 (8)3.2本原多项式的确定 (9)3.3m序列的发生 (10)第四章程序调试及结果分析 (11)4.1m序列的仿真结果及分析 (12)4.2该设计的序列相关性仿真结果及分析 (13)结论 (14)参考文献 (15)附录:程序代码 (16)前言扩频通信因其具有抗干扰、抗多径衰落、抗侦察等优点在通信领域中得到广泛应用。
扩频序列的设计和选择是扩频通信的关键技术,扩频序列性能的优劣在很大程度上决定了通信系统的多址干扰和符号间干扰的大小,从而直接影响到系统的性能。
因此,深入研究扩频序列的性质,构造设计具有良好相关性的扩频序列,来满足扩频系统的要求,是直接序列扩频系统的核心课题。
白噪声是一种随机过程,它有极其优良的相关特性。
但至今无法实现白噪声的放大、调制、检测、同步及控制等,而只能用类似于白噪声统计特性的伪随机序列来逼近它,并作为扩频系统的扩频码。
常见的伪随机序列有m 序列、GOLD 序列、M 序列、Walsh 序列等。
m 序列是目前研究最为彻底的伪随机序列,m 序列容易产生,有优良的自相关和互相关特性。
序列是伪随机序列的一种情况。
他可以在很多领域中都有重要应用。
由n级移位寄存器所能产生的周期最长的序列。
这种序列必须由非线性移位寄存器产生,并且周期为2n(n为移位寄存器的级数)。
通过对伪随机码中常用的m序列的结构和性质进行了分析,本文给出了基于MATLAB平台的m序列生成算法及代码伪随机序列分析。
第一章 设计任务1.2 设计内容掌握PN 序列的相关知识,掌握m 序列的产生原理及其在matlab 中的产生方法,对特定长度的m 序列,分析其性质,及其用来构造其它序列的方法;研究伪随机序列在跳频通信中的应用方法。
西 安 邮 电 大 学实验名称:基于Matlab 直接序列扩频系统性能仿真一、 实验目的通过仿真,进一步掌握m 序列产生方法及其性能,重点掌握直接序列扩频通信系统原理及性能。
二、 实验环境Win10 Matlab2015b三、 实验内容● 产生n=7时203对应的m 序列,并给出其NRZ 波形的自相关函数;● 选用相位差16个码片的两条序列兼做地址和扩频码,构造码分系统,仿真其通信原理;●仿真AWGN 和单频干扰下系统的BER 性能。
四、 实验原理扩频通信的可行性是从香农公式引申而来2log (1+S/N)C W其中,C 为系统信道容量(bit/s );W 为系统信道带宽;N 为噪声功率S 为信号功率。
由上式可以看出,可以从两种途径提高信道容量C ,即加大带宽W 或提高信噪比S/N 。
也就是说当信道容量C 一定时,信道带宽W 和信噪比S/N 是可以互换的,增加带宽可以降低对信噪比的要求,可以使有用信号的功率接近甚至湮没在噪声功率之下。
扩频通信就是通过增加带宽来换取较低的信噪比,这就是扩频通信的基本思想和理论依据。
当信噪比无法提高时,可以加大带宽,达到提高信道容量的目的。
直接序列扩频的原理是,在发射端把有用信号与伪随机序列相乘(或者模二加),使信号的频谱展宽到一个很宽的范围,然后用扩展后的序列去调制载波。
在接收端,把接收到的信号用相同的伪随机序列相乘,有用信号与伪随机码相关,相乘后恢复为扩频前的信号。
输入的数据信息为d(t)(设基带带宽为B 1),由伪随机编码(如m 序列)调制成基带带宽为B 2的宽带信号,由于扩频信号带宽大于数据信号带宽,所以信号扩展的带宽由伪随机码控制,而与数据信号无关。
经扩频调制的信号再经射频调制后即可发送。
直扩系统的原理框图接收端收到发送来的信号,经混频得到中频信号后,首先通过同步电路捕捉并跟踪发端伪码的准确相位,由此产生与发端伪码相位完全一致的伪随机码作为扩频解扩的本地扩频码,再与中频信号进行相关解扩,恢复出扩频前的窄带信号,而在解扩处理中,干扰和噪声与伪随机码不相关故被扩展,通过滤波使之受到抑制,这样就可在较高的解扩输出信噪比条件下进行信息解调解码,最终获得信息数据。
《移动通信》课程项目报告题目:基于MATLAB的m序列仿真专业班级电子信息0121208班组长周易德组员叶子源组员胡楗指导教师李兆玉提交日期 2015年6月15日成绩课程设计任务分配表目录一、设计目的 0二、设计要求和设计指标 0三、设计内容 03.1 伪随机码 03.2 m序列的定义 (1)3.3 m序列的生产 (2)3.4 m序列的性质 (3)3.4.1平衡性 (3)3.4.2游程特性 (3)3.4.3自相关特性 (4)3.4.4功率谱与噪声类似 (5)3.4.5 互相关特性 (6)3.5 m序列的应用 (7)3.5.1 CDMA IS-95的前向信道 (9)3.5.1 CDMA IS-95的反向信道 (9)四、本设计改进建议 (9)五、总结 (9)六、主要参考文献 (10)附录1程序清单 (11)附录2 m序列本原多项式表 (16)一、设计目的我们想通过本次课程设计提高自己对移动通信的认识,熟练Matlab软件的使用,锻炼发现问题解决问题的能力,最终提示我们的自学能力。
具体来讲,本次课程设计将通过Matlab对m序列的生产方法和性质进行深刻的讨论,需要我们去了解m序列的生产和性质。
二、设计要求和设计指标设计要求:1.了解m序列的定义和其背后的意义2.通过Matlab生产m序列3.验证m序列主要性质4.讨论m序列的主要性质在扩频中的作用设计指标:1.能通过Matlab生产任意长度的m序列2.讨论任意长度m序列的均衡性、游程性、自相关特性、互相关特性等主要性质三、设计内容3.1 伪随机码伪随机(或伪噪声,Pseudorandom Noise,PN)码序列是一种常用的地址码,它具有与白噪声类似的自相关性质的0和1所构成的编码序列。
伪随机码序列具有类似于随机序列的基本特性,是一种貌似随机但实际上是有规律的周期性二进制序列。
如果发送数据序列经过完全随机性的加扰,接收机就无法恢复原始序列。
在实际系统中使用的是一个足够随机的序列,一方面这个随机序列对非目标接收机是不可识别的,另一方面目标接收机能够识别并且很容易同步地产生这个随机序列。
序列伪随机码产生及应用仿真matlab一、概述随机序列是一种具有随机性质的数字序列,可用于信息传输、通信系统、密码学、雷达等领域。
伪随机序列是一种经过数学算法产生的序列,其具有类似与随机序列的统计特性,但实际上是确定性的。
在通信系统中,伪随机序列广泛应用于码分多址技术、扩频通信、混沌通信等领域。
本文将介绍伪随机码的产生原理,并使用matlab进行仿真实现,以加深对该技术的理解。
二、伪随机码的产生原理伪随机码的产生主要包括线性反馈移位寄存器(LFSR)、加法(XOR)运算和乘法(AND)运算等步骤。
下面以LFSR为例,介绍伪随机码的产生原理。
1. LFSR原理LFSR是一种利用移位寄存器和反馈逻辑电路构成的伪随机码产生器。
在LFSR中,存在一个移位寄存器和一个反馈逻辑电路。
移位寄存器中存储了若干比特的信息,经过时钟信号的控制完成信息的移位操作。
而反馈逻辑电路则根据寄存器中的信息产生反馈信号,从而实现伪随机序列的产生。
2. 伪随机码的产生过程(1)初始化LFSR。
将移位寄存器中的初始状态设置为一个非零的值。
(2)循环移位寄存器。
根据时钟信号的控制,移位寄存器中的信息进行移位操作。
(3)根据反馈逻辑电路的输出,生成伪随机序列。
通过反馈逻辑电路生成的反馈信号,即为伪随机序列的一部分。
三、matlab仿真实现matlab是一种功能强大的科学计算软件,具有丰富的绘图和仿真功能。
下面将使用matlab进行伪随机码的产生和仿真实现。
1. 产生伪随机码在matlab中,可以使用shiftregister函数实现LFSR的移位寄存器功能。
结合matlab的位运算功能,可以方便地实现伪随机码的产生。
以下是一个简单的matlab代码示例:```matlab定义LFSR的初始状态state = [1 0 1 0 1];定义LFSR的反馈多项式polynomial = [5 2];产生伪随机码for i = 1:10获取LFSR的输出output = state(end);计算新的状态new_state = mod(sum(state(polynomial)), 2);更新状态state = [new_state, state(1:end-1)];显示输出disp(output);end```上述代码中,通过定义LFSR的初始状态和反馈多项式,使用循环产生了10个伪随机码的输出。
通信原理实验:m 序列的仿真设计一.实验目的了解m 序列的概念、产生原理、方法、性质和运用,了解m 序列的框图、仿真波形,学会对m 序列的仿真设计. 二.实验原理✓ m 序列的概念——由线性反馈移位寄存器产生的周期最长的序列。
它是由带线性反馈的移存器产生的周期最长的一种序列,是多级移位寄存器或其他延迟元件通过线性反馈产生的最长的码序列。
✓ m 序列的产生一般来说,在一个n 级的二进制移位寄存器发生器中,所能产生的最大长度的码序周期为12-n。
以m=4为例,若其初始状态为),0,0,0,1(),,,(0123=a a a a ,则在移位一次时,由3a 和0a 模2相加产生新的输入,1014=⊕=a 新的状态变为),0,0,1,1(),,,(0123=a a a a 这样移位15次后又回到初始状态,但若初始状态为(0,0,0,0),则移位后得到地全是0状态,这说意味着在这种反馈中要避免出现全0的状态.在4级移存器共有1624=种不同状态,除全0状态以外还有15种可用.即由任何4级反馈移存器产生的序列的周期最长为15,满足12-n(当n 为4时).图1:m 序列的产生举例:4级m 序列产生器及其状态图2中,ai (i = 0 – n ) - 移存器状态。
ai = 0或1。
ci -反馈状态。
ci = 0表示反馈线断开, ci = 1表示反馈线连通。
如图2中示出的一个一般的纯属反馈移存器的组成,反馈线的连接状态用1c ,=i i c 表示表示此线接通(参加反馈),0=i c 表示断开,反馈线的接线状态不同,就可能以改变此移存器序列的周期.✓ m 序列的性质➢ 均衡性: 在m 序列一个周期N=2n -1内“1”和“0”的码元数大致相等,“0”出现2n-1-1次,“1”出现2n-1次 (即“1”比“0”只多一个) 。
➢ 游程分布:游程是指序列中取值相同的一段元素。
并把这段元素的个数称为游程长度。
例如,在上面的一个周期中,共有8个游程,其中长度为4的游程有1个,即“1111”;长度为3的游程有1个,即“000”;长度为2的游程有两个,即“11”和“00”;长度为1的游程有4个,即两个“1”和两个“0”。
M序列的生成原理与仿真1.1 m序列的生成r 级非退化的移位寄存器的组成如图1 所示,移位时钟源的频率为Rc。
r 级线性移位寄存器的反馈逻辑可用二元域GF(2)上的r 次多项式表示(1)图(1)r 级线性移位寄存器式(1)称为线性移位寄存器的特征多项式,其给出的表示反馈网络的而逻辑关系式是现行的。
因此成为线性移位寄存器。
对于动态线性移位寄存器,其反馈逻辑也可以用线性移位寄存器的递归关系式来表示(2)以式(1)为特征多项式的r 级线性反馈移位寄存器所产生的序列,其周期N≤2r−1。
假设以GF(2)域上r次多项式(1)为特征多项式的r级线性移位寄存器所产生的非零序列{ a i }的周期为N =2r−1,称序列为{ a i }是最大周期的r 级线性移位寄存器序列,简称m序列。
构造一个产生m 序列的线性移位寄存器,首先要确定本原多项式。
本原多项式确定后,根据本原多项式可构造出m 序列移位寄存器的结构逻辑图。
仿真时以n=6的6级移位寄存器为例,产生本源多项式的方法:n=6; %以6级寄存器为例,connections=gfprimfd(n,'all');f1=connections(4,:); %取一组本原多项式序列根据本院多项式确定的反馈系数做出反馈移位寄存器如图(2)所示图(2)m 序列发生器1.2 m 序列自相关函数1.2.1周期自相关函数编写周期自相关函数和非周期自相关函数,实验结果如下图(2)和(3)所示:图(2)m 序列周期自相关函数结论:周期自相关函数R (k )={63 k =0−1 otℎersm 序列周期自相关函数1.2.2非周期自相关函数图(3) m 序列非周期自相关函数1.3 m 序列的互相关函数选用的两个m 序列为一对优选对,以211作为基准本原多项式(反馈系数10001001),217作为配对本原多项式(反馈系数10001111),生成两个m 序列,求出互相关函数如图(4)和(5):、图(4)m 序列互相关函数结论:互相关函数的取值{-1,-17,15}m 序列非周期自相关函数m 序列周期互相关函数m序列非周期互相关函数图(5)m序列非周期互相关函数1.4 附:matlab代码clear;clc;%%------生成m序列-----%%n=6; %以6级寄存器为例,connections=gfprimfd(n,'all');f1=connections(4,:); %取一组本原多项式序列registers1=[1 0 0 0 0 0 ];%给定寄存器的初始状态L=2^n-1; %周期长度sum1=0;for k=1:Lseq(k)=registers1(n); %m序列for j=1:n %进行模2加sum1=sum1+f1(j+1)*registers1(j); %各级寄存器送参与模2加的值sum1=mod(sum1,2);endfor t=n:-1:2 %寄存器移位registers1(t)=registers1(t-1);endregisters1(1)=sum1;sum1=0;end% %%----------------------自相关函数-------------------------%%% %-------非周期自相关函数--------%%a=1-2*seq;b=a;for i=1:LR(i)=sum(a.*b)b=[0 b(1:62)]endplot(R)title('m序列非周期自相关函数');% %-------周期自相关函数------%%% a=1-2*seq;% b=a;% for i=1:L% R(i)=sum(a.*b)% b=[b(63) b(1:62)]% end% plot(R);% title('m序列周期自相关函数');%%-------利用公式编写自相关函数验证---------------%% % a=seq1;% b=[a(1,63),a(1,1:62)];% L=length(b);% n=400;% x=1:n;% for k=1:n% c=xor(a,b);% D=sum(c);% A=L-D;% R(k)=(A-D)/(A+D);% b=[b(L),b(1:L-1)];% end% plot(x,R);% title('gold序列的自相关函数');% xlabel('τ');% ylabel('R(τ)');% grid;。
电子信息科学与技术专业课程设计题单班级0982081学生课程名称专业课程设计课题基于Matlab的m序列相关特性的仿真设计要求基于Matlab语言编程,对m序列相关特性进行仿真,并用Matlab GUI工具设计图形界面显示结果,具体要求如下:1、给定m序列S1、S2,码长为10232、计算m序列S1的自相关函数3、计算m序列对S1、S2的互相关函数4、界面设计要有按钮控件以及一、二级菜单课题发给日期2012.07.04课程设计完成日期2012.07.29指导教师评语:评分:摘要m 序列是最长线性反馈移存器序列的简称,它是由带线性反馈的移存器产生的周期最长的一种序列。
本文主要是介绍MATLAB 在m 序列的产生及其相关特性分析方面的应用,研究了关于matlab完成m序列simulink 硬件仿真方法,并且利用MATLAB 对不同长度的几种m 序列进行相关特性的分析。
对m序列的原理、结构、性质进行了分析,在matlab中采用编程和simulink动态仿真功能2种方式实现m序列,仿真实验表明,这两种方法简单,易于实现,可移植性较强,具有可行性和设计的合理性。
[关键词]m 序列;simulink 硬件仿真;自相关目录第一章设计内容及要求第二章m序列设计方案的选择第三章m序列的产生及性质3.1 m序列的产生原理、结构及产生3.2 m序列的基本性质3.3 生成m序列的模块第四章 m序列构造其他序列第五章程序调试及运结果5.1仿真设计流程图5.2实验的调试与运行结果5.3 错误排除第六章结论参考文献附录第一章设计内容及要求基于MATLAB产生m序列要求:1.通过matlab编程产生m序列的产生原理及其产生方法。
2.对特定长度的m序列,分析其性质,及其用来构造其它序列的方法。
第二章m序列设计方案的选择2.1 方案一MATLAB编程非常简单,无需进行变量声明,可以很方便的实现m 序列。
2.2 方案二图2.1 Simulink实现m序列Simulink是MATLAB最重要的组件之一,它提供了一个动态系统建模,仿真和综合分析的集成环境。
m序列产生和性能的MATLAB仿真
王昆;陈昕志
【期刊名称】《华电技术》
【年(卷),期】2007(000)012
【摘要】在扩频系统中通常采用扩频序列对信号进行频谱扩展,因而扩频序列对系统性能起着决定性作用,伪随机序列中的m序列为最常用的基本序列,介绍了m序列的原理,性能及产生方法,并在MATLAB中进行了实现和分析,仿真结果表明了该方法的正确性和可行性.
【总页数】3页(P170-171,200)
【作者】王昆;陈昕志
【作者单位】郑州大学,信息工程学院,河南,郑州,450046;河南职业技术学院,河南,郑州,450046
【正文语种】中文
【中图分类】TP332.1+1
【相关文献】
1.m序列的Matlab仿真与实现 [J], 李栋;刘进江
2.由m序列构造的同级类m序列及性能研究 [J], 方俊初;张爱雪;吕虹
3.浅析m序列产生器在C5ISR系统中的通信应用 [J], 王群辉;苏步鹏;杨菊忠;郭华
4.基于DDS芯片产生的M序列信号性能测试 [J], 朱亮;
5.一种m序列信号产生实验设计 [J], 刘恒; 黄晓钰; 孙晋; 刘建成
因版权原因,仅展示原文概要,查看原文内容请购买。
m序列的仿真验证一:实验目的:利用matlab验证m序列的产生方法及其自相关特性二:实验要求:设m序列的生成多项式为g(x)=1+x3+ x4,求(1)m序列的输出及其自相关序列;(2)设脉冲成形为p(t)= 1 0<t<T s0 其他画出其m序列信号的自相关函数;(3)设脉冲波形为升余弦成形(α=0),画出其m序列信号的自相关函数。
三:实验原理:m序列即为maximal length linear feedback shift register sequence 它具有类似与随机噪声的某些统计特性,有是可以重复产生的。
四:实验源码:clear all;close all;g=19;state=8;L=1000;%m序列产生N=15;mq=mgen(g,state,L);%求序列自相关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序列自相关')%m序列构成的信号(矩形脉冲)N_sample=8;Tc=1;dt=Tc/N_sample;t=0:dt:Tc*L-dt;gt=ones(1,N_sample);mt=sigexpand(1-2*mq,N_sample);mt=conv(mt,gt);figure(1)subplot(221);plot(t,mt(1:length(t)));axis([0 63 -1.2 1.2]);title('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:1))/(N*N_sample);subplot(223);plot(t,rt1(length(st):length(st)+length(t)-1));axis([0 63 -1.2 1.2]);title('m序列矩形形成信号的自相关');xlabel('t');%sinc脉冲Tc=1;dt=Tc/N_sample;t=-20:dt:20;gt=sinc(t/Tc);mt=sigexpand(1-2*mq,N_sample);mt=conv(mt,gt);st2=sigexpand(1-2*mq(1:15),N_sample);s2=conv(st2,gt);st2=s2;rt2=conv(mt,st2(end:-1:1))/(N*N_sample);subplot(224);t1=-55+dt:dt:Tc*L-dt;%plot(t,mt(1:length(t)));plot(t1,rt2(1:length(t1)));axis([0 63 -0.5 1.2]);title('m序列sinc形成信号的自相关');xlabel('t');调用函数:sigexpand(d,M)function[out]=sigexpand(d,M)N=length(d);out=zeros(M,N);out(1,:)=d;out=reshape(out,1,M*N);五:实验结果及分析:m序列的输出波形在每次运行程序后不尽相同,这是由m序列特性决定的,它是一种伪随机序列。