基于Matlab的m序列发生器的00
m序列 matlab code实现流程

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序列

在matlab中⽣成m序列实验环境为matlab2013b1、⾸先编写⼀个mseq.m⽂件,内容为:function[mseq]=m_sequence(fbconnection)n=length(fbconnection);N=2^n-1;register=[zeros(1,n-1) 1]; %移位寄存器的初始状态mseq(1)=register(n); %m序列的第⼀个输出码元for i=2:Nnewregister(1)=mod(sum(fbconnection.*register),2);for j=2:nnewregister(j)=register(j-1);end;register=newregister;mseq(i)=register(n);end2、在matlab中打开这个⽂件3、在matlab的命令⾏窗体中执⾏primpoly(7,'all')这个命令的⽬的是得到7阶M序列的全部本原多项式。
假设想得到其它阶的m序列,⾃⾏改动数字7就可以。
4、得到的结果为Primitive polynomial(s) =D^7+D^1+1D^7+D^3+1D^7+D^3+D^2+D^1+1D^7+D^4+1D^7+D^4+D^3+D^2+1D^7+D^5+D^2+D^1+1D^7+D^5+D^3+D^1+1D^7+D^5+D^4+D^3+1D^7+D^5+D^4+D^3+D^2+D^1+1D^7+D^6+1D^7+D^6+D^3+D^1+1D^7+D^6+D^4+D^1+1D^7+D^6+D^4+D^2+1D^7+D^6+D^5+D^2+1D^7+D^6+D^5+D^3+D^2+D^1+1D^7+D^6+D^5+D^4+1D^7+D^6+D^5+D^4+D^2+D^1+1D^7+D^6+D^5+D^4+D^3+D^2+1ans =1311371431451571671711851911932032112132292392412472535、输⼊mseq([1 0 0 0 0 0 1])6、便可得到⼀个127位的m序列,整理之后为1000000111111101010100110011101110100101100011011110110101101100100100011100001011111001010111001101000100111100010100001100000说明。
基于matlab的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 序列与逐位移位后的序列相关性的一种度量。
基于MATLAB的m序列仿真

s1(n)=mod(sum(s1(n-r:n-1).*f1(1:r)),2);%通过模2加产生m1序列 end stem(s1); title('生成m序列') %绘制生成m序列的图形
4
基于 Matlab 的 m 序列仿真分析
2.2 m 序列的基本性质
参考文献 ......................................................... 16 附录 ............................................................. 17
基于 Matlab 的 m 序列仿真分析
1.2
系统设计流程图
本文通过软件 Matlab 编写程序,从而在 GUI 环境下看到 m 序列的产生、m 序列的自 相关和互相关函数图形,其系统设计流程图如图 1.1 所示: 开始
用 Matlab 编写程序产生两个 m 序列
对 m 序列进行自相关特性分析
对 m 序列进行互相关特性分析
用 Matlab GUI 显示仿真结果
结束 图 1.1 系统设计流程图
1
基于 Matlab 的 m 序列仿真分析
第二章
2.1 m 序列产生原理及结构
m 序列的产生及性质
伪随机序列有很多种,其中最基本最常用的一种是最长线性反馈移位寄存器序 列,也称作 m 序列,通常由反馈移位寄存器产生。 m 序列是最长线性移位寄存器序列的简称。它是由多级移位寄存器或其他延迟 元件通过线性反馈产生的最长的码序列。由于 m 序列容易产生、规律性强、有许多 优良的性能,在扩频通信中最早获得广泛的应用。 由 m 级寄存器构成的线性移位寄存器如图 2.1 所示,通常把 m 称为这个移位寄 存器的长度。每个寄存器的反馈支路都乘以 Ci。当 Ci=0 时,表示该支路断开;当 Ci=1 时,表示该支路接通。显然,长度为 m 的移位寄存器有 2n 种状态,除了全零序 列,能够输出的最长序列长度为 N=2n-1。此序列便称为最长移位寄存器序列,简称 m 序列。 m 序列每移位一次,就出现一种状态,在移位若干次后,一定能重复出现前某 一状态,其后的过程便周而复始了。反馈线位置不同将出现不同周期的不同序列, 我们希望找到线性反馈的位置,能使移存器产生的序列最长,即达到周期 P=2n-1。 按图中线路连接关系,可以写为:
基于matlab的移位寄存器法m序列的产生

2012年01月第02期科技视界Science &technology viewSCIENCE &TECHNOLOGY VIEW 科技视界作者简介:刘艳华,盐城工学院信息工程学院教师。
基于matlab的移位寄存器法m序列的产生刘艳华(盐城工学院信息工程学院江苏盐城224051)【摘要】扩频通信是在民用和军用都有广泛应用的一种通信技术,自从其诞生就受到了广泛关注。
扩频通信中频谱的扩展是通过一个独立的伪随机序列来完成的。
其中m 序列是最常用的一种伪随机码,本文在matlab 平台上通过仿真,来研究如何用移位寄存器产生m 序列,虽然matlab 中有现成的m 序列产生模块,但是它的相位是不可以调节的,而本文产生的m 序列相位可以调节。
详细讲解了m 序列的产生原理,和matlab 仿真过程,最后给出了仿真结果,结果表明该方法是可行的。
【关键词】移位寄存器;扩频;m 序列;Design of m-sequence Generator Based on Shift Register with MatlabLIU Yan-hua(Yancheng Institute of Technology,School of Information Engineering,Yancheng Jiangsu,224051)【Abstract 】Spread spectrum communication is widely used in both civilian and military communications,Itis potential and promising which attracts wide attention since its emergence.The spectrum expansion of spreadspectrum communication is through of an independent pseudo-random sequence to complete.m-sequence is one of the most common sequence of pseudo-random code,this paper is in matlab platform to study how to use shift registers to generate m-sequence,although there is ready-made matlab m-sequence generation module,but its phase is not regulation,and phase of m-sequence generated by this paper can be adjusted.Explain in detail theprinciples of the m sequence generation,and the matlab simulation process,the final simulation results,the re⁃sults show that the simulation is feasible.【Key words 】Shift register;Spread spectrum;m-sequence0引言所谓扩频,是扩展频谱的简称。
基于Matlab的m序列发生器的设计

软件工程实践报告题名称目:基于Matlab的m序列发生器的设计姓名:郭新潮专业:电子信息工程班级学号:088205115摘要伪随机信号既有随机信号所具有的优良的相关性,又有随机信号所不具备的规律性. 因此,伪随机信号既易于从干扰信号中被识别和分离出来,又可以方便地产生和重复,其相关函数接近白噪声的相关函数,有随机噪声的优点,又避免了随机噪声的缺点. m序列是伪随机序列中最重要的序列中的一种伪随机序列具有可确定性、可重复性,易于实现相关接受或匹配接受,故有很好的抗干扰性能. 因此伪随机序列在相关辩识、伪码测距、导航、遥控遥测、扩频通信、多址通信、分离多径、误码测试、线形系统测量、数据加扰、信号同步等方面均有广泛的应用. m 序列是一类重要的伪随机序列,最早应用于扩频通信.可以通过移位寄存器,利用MATLAB编程产生m序列。
关键词: 伪随机序m 序列移位寄存器仿真目录第一章设计内容及要求 (1)第二章m序列设计方案选择2.1 方案一 (3)2.2 方案二 (3)第三章m序列产生和性质3.1 m 序列的原理、结构及产生 (4)3.2 m序列的基本性质 (5)第四章m序列的程序代码及运行结果4.1 m序列程序 (6)4.2 输入本原多项式产生m序列 (6)4.3 GUI界面及其代码设计 (7)第五章程序调试及运行结果分析 (16)结论 (16)参考文献 (17)第一章 设计内容及要求基于Matlab 的m 序列发生器的设计:基于Matlab 语言编程,生成m 序列,并利用Matlab GUI 工具设计图形界面显示结果,具体要求如下:1、m 序列的本原多项式为:52()1A x x x =++ 2、采用伽罗瓦型移位寄存器结构3、界面设计要有按钮控件以及一、二级菜单第二章m序列设计方案选择2.1 方案一编程实现m 序列MATLAB编程非常简单,无需进行变量声明,可以很方便的实现m序列。
2.2方案二图2.2 Simulink 实现m 序列Simulink 实现m 序列(如图2.2所示)Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
基于MTLAB的m序列的产生及相关特性仿真

基于MTLAB的m序列的产生及相关特性仿真
刘新永;蔡凤丽;裴晓根
【期刊名称】《安徽电子信息职业技术学院学报》
【年(卷),期】2009(008)005
【摘要】本文主要是介绍MATLAB在m序列的产生及其相关特性分析方面的应用,研究了基于MATLAB完成m序列simulink硬件仿真方法,并且利用MATLAB 对不同长度的几种m序列进行相关特性的分析.
【总页数】3页(P14-16)
【作者】刘新永;蔡凤丽;裴晓根
【作者单位】解放军蚌埠坦克学院,安徽,蚌埠,233050;安徽电子信息职业技术学院,安徽,蚌埠,233060;解放军蚌埠坦克学院,安徽,蚌埠,233050
【正文语种】中文
【中图分类】TN95
【相关文献】
1.m序列与Gold序列特性的仿真研究 [J], 宁宁;陈群;刘欢
2.m序列产生和性能的MATLAB仿真 [J], 王昆;陈昕志
3.伪随机m序列自相关函数的Simulink仿真设计与实现 [J], 阿依夏木·力提甫
4.采用M序列相关法测量材料界面的声散射特性 [J], 王卫防;盛胜我
5.三值m序列的产生及特性 [J], 潘爱玲;张公礼
因版权原因,仅展示原文概要,查看原文内容请购买。
基于Matlab的m序列生成及性能仿真

PN_mod8=reshape(PN—mod8,1,512); end
location=1; k=1: for i=1:length(reg_a11)
if reg__test==reg_all(i,:) location(k)=i; k=k+1:
%寻找初始状态,以验证其周期
end
end
合伪随机序列的基本性质,可以满足扩频序列的设计需求。
基于以上m序列移位寄存器结构,可在Matlab中用M语言编程
产生113序列的程序代码:
reg=[1 0 1 1 1 0 1 0 1 1 0 1];
%从高位到低位
re。gLtest=reg;
eoeff=[1 0 0 0 0 0 1 0 1 0 0 1 11;%高位到低位
%计算In序列自相关性
subplot(2,1,1);
plot(j,temp/length(n)); tide(7自相关性,);
axis([一1000 1000—0.1 1.2]);
酣d on; 同理可计算m序列互相关性程序。
运行程序后可返回D1序列相关函数如图2所示。
由图2可以看出,m序列具有良好的自相关特性和互相关性,符
关和互相关特性【”。
1.m序列简介
m序列是最长线性移位寄存序列的简称.是由带线性反馈的移存
器产生的周期最长的序列。它是周期为N=2r_1的线性伪随机序列,r
是移位寄存器阶数。 m序列的性质有闭:
a)均衡性,即在m序列的一个周期中,…1’和…0’的数目基本相等。
b)长度为k的游程数目占游程总数的24.其中“+”游程和“一”游程
i=l;
for k=1:(2^length(reg))
%计算一个周期的rfl序列输出
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录第一章绪论..................................................................................................................11.1背景及意义 ....................................................................................................11.2设计内容及要求...............................................................................................11.2.1 设计内容................................................................................................11.2.2 设计要求................................................................................................21.3系统框图..........................................................................................................2第二章 m序列的分析.......................................................................................................32.1 m序列的原理...........................................................................................................32.2 m序列的相关特性 ...................................................................................................42.2.1均衡特性(平衡性) ...............................................................................42.2.2游程分布(游程分布的随机性) ...............................................................42.2.3移位相加特性(线性叠加性) ..................................................................42.2.4自相关特性.............................................................................................5第三章 m序列的设计............................................................................................................. 63.1特征多项式确定..............................................................................................63.2本原多项式的确定...........................................................................................73.3 m序列的发生..............................................................................................8第四章程序调试及结果分析................................................................................ 10结论. (24)参考文献 (25)附录一:程序代码 (26)第一章绪论1.1 背景及意义扩展频谱通信是一种不同于常规通信系统的新调制理论和技术,简称扩频通信。
其设计思想是将待传输的信息信号用特定的扩频码扩展频谱后成为宽带信号进行传输;接收时再采用相应的技术手段将频谱压缩,恢复原来待传信息信号的带宽,从而实现通信。
扩频通信具有两个特点:传输信号的带宽远大于原始信息信号的带宽;传输信号的带宽主要由扩频码决定,此扩频码通常是伪随机码。
伪随机码(pseudo randomcode)简称PN码,可以人为产生与复制,具有类似白噪声的性质,相关函数具有尖锐的特性,功率谱占据很宽的频带,易于从其他信号或干扰中分离出来,具有优良的抗干扰特性,其特点是:具有尖锐的自相关函数;互相关函数值应足够小;有足够长的码周期,以确保抗侦破与抗干扰的要求;码的数量足够多,以实现码分多址的要求;平衡性好,以满足抗干扰的要求;工程上易于产生、加工、复制与控制。
扩频通信的优势主要来自于伪随机码具有白噪声的统计特性。
而随着扩频速率的不断提高,扩频码的长度急剧增加,利用计算机设计并验证扩频码的各项指标能大大提高效率。
通过对伪随机码中常用的m序列的结构和性质进行了分析,给出了基于MATLAB平台的m序列生成算法及代码伪随机序列分析. 软件平台选择Matlab,Malab是美国Math Works公司推出的一种以矩阵为基本编程单位的高效数值计算语言。
Matlab在编程效率、可读性、可移植性与可扩充性上,远远优于其他高级编程语言,是公认的最优秀的科技应用软件。
1.2设计内容及要求1.2.1 设计内容基于Matlab的m序列发生器的设计。
1.2.2 设计要求m序列的本原多项式为:52=++,移位寄存器结构为:()1A x x x各寄存器初值分别为[0 0 0 0 1]1-5,参照该移位寄存器的结构图,用Matlab语言编写程序,生成m序列。
1.3 系统框图图1-1 程序框图图1-1 系统框图第二章 m 序列的分析2.1 m 序列的原理伪随机信号具有类似于随机噪声的一些统计特性,同时又便于重复产生和处理。
目前广泛使用的伪随机信号都是由数字电路产生的周期序列得到的。
产生伪随机序列的电路包括线性反馈的移位寄存器:m 序列和非线性反馈移存器;M 序列m 序列是最长线性反馈移位寄存器序列的简称,m 序列是由带线性反馈的移位寄存器产生的.由n 级串联的移位寄存器和和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。
带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化。
其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。
m 序列码发生器是一种反馈移位型结构的电路,它由n 位移位寄存器加异或反馈网络组成,其序列长度M =2n-1,只有一个多余状态即全0状态,所以称为最大线性序列码发生器。
由于其结构已定型,且反馈函数和连接形式都有一定的规律,因此利用查表的方式就设计出m 序列码。
列出部分m 序列码的反馈函数F 和移存器位数n 的对应关系。
如果给定一个序列信号长度M ,则根据M =2n-1求出n ,由n 查表2-1便可以得到相应的反馈函数F 。
表2-1 反馈函数Fn 12-=nm反馈函数F3 7 31Q Q ⊕,32Q Q ⊕ 4 15 4341,Q Q Q Q ⊕⊕ 5 31 5352,Q Q Q Q ⊕⊕6 63 61Q Q ⊕71277371,Q Q Q Q ⊕⊕8 255 8381,Q Q Q Q ⊕⊕9 511 94Q Q ⊕ 10 1023 107Q Q ⊕ 11 2047 112Q Q ⊕12 409512541Q Q Q Q ⊕⊕⊕2.2 m 序列的相关特性 2.2.1均衡特性(平衡性)伪随机序列的平衡性是指序列中“1”的数目只比“0” 的数目多l 。
码的平衡性由码序列中的直流分量决定。
平衡性好,则载波抑制度大,从而有利扩频通信的抗干扰能力以及保密和抗侦破能力。
其物理意义是不平衡码会使扩频后的信号中出现一些稳定的信号,从而易于被检测而导致保密能力的降低。
2.2.2 游程分布(游程分布的随机性)游程是一个序列中取值(1 或 0)相同连在一起的元素的统称 ,所谓的游程长度就是一个游程中元素的个数。
而m 序列的分布特性为1.m 序列的一个周期(p=2n-1)中,游程总数为2n-1。
2. 当1 <游程长度k ≤n -1,游程数目占总数2-k 当1 ≤k ≤n -2,连“1”和连”0“游程各占一半2.2.3移位相加特性(线性叠加性)m 序列和其移位后的序列逐位模2 相加,所得的序列还是m 序列,只是相移不同而已. 例如1110100与向右移3 位后的序列1001110逐位模2相加后的序列为0111010 ,相当于原序列向右移1位后的序列,仍是m 序列.2.2.4自相关特性周期为p 的m 序列的自相关函数为:其中:A - 该序列与其j 次移位序列一个周期中对应元素相同数目 D - 该序列与其j 次移位序列一个周期中对应元素不同目 P - 序列周期 上式可改写为: 式中xi= 0或1。
由移位相加特性和均衡特性,可知m 序列的自相关函数为:j=0 j= 1,2,……p -1 从m 序列的自相关系数可以看出,m 序列是一个狭义伪随机码.知当m 序列的移位值为其周期的整数倍时,其自相关值取得最大值为2n 一1,移位值取其他值时,其自相关值恒为一1。
其自相关函数如图2-1所示。
图2-1m 序列的自相关函数pD A DA DA j R -=+-=)(pa a a a j R j i i j i i ]1[]0[)(的数目的数目=⊕-=⊕=++⎪⎩⎪⎨⎧-=pj R 11)(R (j )1123-1-2-3-PP -1Pj第三章 m 序列的设计3.1 特征多项式确定n 级线性移位寄存器的如图3-1所示:图3-1 n 级线性移位寄存器图中i C 表示反馈线的两种可能连接方式,i C =1表示连线接通,第n-i 级输出加入反馈中;i C =0表示连接线断开,第n-i 级输出未参加反馈。