基于Matlab产生m序列
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最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
基于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序列输出
matlab生成m序列的方法

1 matlab生成m序列的方法
1 matlab生成m序列的方法
1.1 m序列基本知识点
1.2 matlab产生m序列
1.2.1 根据产生原理编写生成函数
1.2.1.1 生成m序列的函数:
1.2.1.2 调用已编写函数生成m序列
1.2.2 利用$idinput$函数
引言
m序列属于伪随机序列的一种。
在通信领域应用较为广泛。
由于其具有很好的伪噪声特性,因此在保密通信中,可以将其应用在高可靠性的保密通道中。
另外,雷达领域也有广泛应用,伪随机相位编码脉冲/连续波雷达中用到的调制信号正是m 序列。
1.1 m序列基本知识点
1. m序列的周期等于,N是m序列的级数,m序列由N级线性反馈移存
器产生。
2. m序列具有均衡性,序列中“1”和“0”的数目基本相等,“1”的个数比“0”多1。
3. m序列的循环自相关函数是双值电平。
4. m序列具有游程分布的规律。
1.2 matlab产生m序列
具体产生原理可参考相关资料(通信原理第七版,樊昌信、曹丽娜),这里只介绍matlab实现方法。
2. 生成其他阶数的m序列则只需要将 primpoly(7,'all') 命令中的数字‘7’更换到
函数
函数可以成成多种不同的序列。
也可以用来产生m序列:
序列的阶数等于7
Order_number)-1),'prbs')';%生成m序列。
matlab利用idinput函数产生m序列

之前不懂系统辨识的理论,输入信号随便用了一个阶跃信号,后来发现阶跃信号其实很菜,不足以激励起系统的全部动态特性,额,实验数据立马弱爆了。
M序列是工程中常用的输入信号,它的性质类似于白噪声,而白噪声是理论上最好的输入信号,可见M序列的价值。
下面介绍M序列的matlab产生方法,看到很多论坛产生M 序列的程序复用性不高,而matlab就提供了产生M序列的专门函数,这里尝试一下。
idinput函数产生系统辨识常用的典型信号。
格式u = idinput(N,type,band,levels)[u,freqs] = idinput(N,'sine',band,levels,sinedata)N产生的序列的长度,如果N=[N nu],则nu为输入的通道数,如果N=[P nu M],则nu指定通道数,P为周期,M*P为信号长度。
默认情况下,nu=1,M=1,即一个通道,一个周期。
Type指定产生信号的类型,可选类型如下stairs(ms)title('M序列')ylim([-0.5 1.5])结果如下同时,matlab给出如下警告Warning: The PRBS signal delivered is the 12 first values of a full sequence of length 15.即函数的输出为周期为15(大于12的第一个2^n-1的值)PRBS信号的前12个值组成的序列。
如ms = idinput(15, 'prbs', [0 1], [0 1]);figurestairs(ms)title('M序列')ylim([-0.5 1.5])可以看到指定12时的序列为指定15时的序列的前面部分。
对于M>1时,ms = idinput([12,1,2], 'prbs', [0 1], [0 1]);figurestairs(ms)title('M序列')ylim([-0.5 1.5])结果如下Matlab给出的响应警告为Warning: The period of the PRBS signal was changed to 7. Accordingly, the length of thegenerated signal will be 14.对于正弦信号和的产生,貌似用的不多,语法还挺复杂,等用的时候再看吧。
基于Matlab产生m序列

目录前言 (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序列产生

基于MATLAB的m序列产生第一章设计内容及要求基于MATLAB产生m序列要求:1.通过matlab编程产生m序列的产生原理及其产生方法。
2.对特定长度的m序列,分析其性质,及其用来构造其它序列的方法。
第二章m序列设计方案的选择2.1 方案一MATLAB编程非常简单,无需进行变量声明,可以很方便的实现m序列。
2.2 方案二图2.1 Simulink实现m序列Simulink是MATLAB最重要的组件之一,它提供了一个动态系统建模,仿真和综合分析的集成环境。
在此环境中无需大量书写程序,而只需通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应性广,结构及流程清晰及仿真精细等优点,基于以上优点,Simulink已被广泛的运用到控制理论和数字信号处理的复杂仿真和设计。
通过比较方案一和方案二,发现方案一的有点具有通用性而方案二利用MATLAB的Simulink直接搭建模块,在移位寄存器较少的情况下利用此方法比较简单,可是当移位寄存器的个数增多时,要搭建那么多的模块就显的很繁琐了,缺乏通用性,因此本次实验选择方案一。
第三章m序列的产生及性质3.1 m序列的产生原理、结构及产生m序列是最长线性反馈移位寄存器序列的简称,m序列是由带线性反馈的移位寄存器产生的。
由n级串联的移位寄存器和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。
带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化,其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。
n级线性移位寄存器的如图3.1所示:◇A图3.1 n级线性移位寄存器图中C i表示反馈线的两种可能连接方式,C i=1表示连线接通,第n-i级输出加入反馈中;C i=0表示连线断开,第n-i级输出未参加反馈。
因此,一般形式的线性反馈逻辑表达式为------表达式3.1将等式左边的a n移至右边,并将a n=C0a n(C0=1)带入上式,则上式可以写成-------表达式3.2定义一个与上式相对应的多项式--------表达式3.3 其中x的幂次表示元素的相应位置。
第11组基于Matlab的m序列仿真

《移动通信》课程项目报告题目:基于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所构成的编码序列。
伪随机码序列具有类似于随机序列的基本特性,是一种貌似随机但实际上是有规律的周期性二进制序列。
如果发送数据序列经过完全随机性的加扰,接收机就无法恢复原始序列。
在实际系统中使用的是一个足够随机的序列,一方面这个随机序列对非目标接收机是不可识别的,另一方面目标接收机能够识别并且很容易同步地产生这个随机序列。
m序列的生成及其相关性的matlab分析

%matlab程序:生成m序列和相关性分析clc;N=5;connections=gfprimfd(N,'all');%生成级数为5时所有本原多项式系数序列矩阵f1=connections(2,:); %取一组本原多项式序列,此系数为45(100101)f2=connections(3,:); %取另一组本原多项式序列,此系数为75(111101)registers1=[0 0 0 0 1];%给定寄存器的初始状态registers2=[0 0 0 0 1];%取相同的初始状态L=2^N-1; %周期长度sum2=0;sum1=0;for k=1:Lseq1(k)=registers1(N); %第一组m序列seq2(k)=registers2(N); %第二组序列for j=1:N %进行模2加sum1=sum1+f1(j+1)*registers1(j); %各级寄存器送参与模2加的值sum1=mod(sum1,2);sum2=sum2+f2(j+1)*registers2(j); %各级寄存器送参与模2加的值sum2=mod(sum2,2);endfor t=N:-1:2 %寄存器移位registers1(t)=registers1(t-1);registers2(t)=registers2(t-1);endregisters1(1)=sum1; registers2(1)=sum2;sum1=0; sum2=0;enddisp(f1); %显示反馈系数序列disp(seq1); %显示第一组m序列m1=xcorr(seq1,’unbiased’);%计算自相关函数figure;stem(m1/max(m1));title('m1的自相关函数'); %画出m1序列的自相关函数disp(f2);disp(seq2);m2=xcorr(seq2,’unbiased’);figure;stem(m2/max(m2));title('m2的自相关函数');%画出m2序列的自相关函数R12= xcorr(seq1,seq2,’unbiased’)figure;plot(R12/max(R12));title('m2,m1的互相关函数');%画出m1,m2序列的互相关特性s=fftshift(abs(fft(seq1,2*L)).^2); s=s/max(s);figure;plot(s);分析:由图知m 序列具有良好的自相关特性,但其互相关特性并不理想,存在多值。
MATLAB利用IDINPUT函数产生M序列

MATLAB利⽤IDINPUT函数产⽣M序列stairs(ms) title('M序列') ylim([-0.51.5])结果如下同时,matlab给出如下警告Warning:The PRBS signal delivered is the12first values of a full sequence of length15.即函数的输出为周期为15(⼤于12的第⼀个2^n-1的值)PRBS信号的前12个值组成的序列。
如ms=idinput(15,'prbs',[01],[01]);figurestairs(ms)title('M序列')ylim([-0.51.5])可以看到指定12时的序列为指定15时的序列的前⾯部分。
对于M>1时,ms=idinput([12,1,2],'prbs',[01],[01]); figurestairs(ms)title('M序列')ylim([-0.51.5])结果如下Matlab给出的响应警告为Warning:The period of the PRBS signal was changed to7.Accordingly, the length of thegenerated signal will be14.对于正弦信号和的产⽣,貌似⽤的不多,语法还挺复杂,等⽤的时候再看吧。
⽅法产⽣’rgs’信号的带通信号使⽤的是⼀个8阶巴特沃斯滤波器,使⽤idfilt做的⾮因果滤波,这个是可信赖的⽅法。
对于’rbs’信号,使⽤的是相同的滤波器,但是是在⼆值化之前,这意味着频率成分并不保证是精确的。
产⽣⾼斯随机信号clcclear allclose all%⾼斯随机信号u=idinput(1000,'rgs');figurestairs(u)title('⾼斯随机信号') figurehist(u,-4:4)title('⾼斯随机信号的分布')产⽣⼆值随机信号clc clear allclose all%⼆值随机信号u=idinput(100,'rbs'); figurestairs(u)title('⼆值随机信号')ylim([-1.51.5])产⽣⼆值伪随机信号(M序列)合理的选择输⼊激励信号,能有效的激励起系统的动态信号。
M序列的matlab产生方法

M序列是工程中常用的输入信号,它的性质类似于白噪声,而白噪声是理论上最好的输入信号,可见M序列的价值。
下面介绍M序列的matlab产生方法。
idinput函数产生系统辨识常用的典型信号。
格式u = idinput(N,type,band,levels)[u,freqs] = idinput(N,'sine',band,levels,sinedata)N产生的序列的长度,如果N=[N nu],则nu为输入的通道数,如果N=[P nu M],则nu指定通道数,P为周期,M*P为信号长度。
默认情况下,nu=1,M=1,即一个通道,一个周期。
Type指定产生信号的类型,可选类型如下Band指定信号的频率成分。
对于’rgs’、’rbs’、’sine’,band = [wlow, whigh]指定通带的范围,如果是白噪声信号,则band=[0, 1],这也是默认值。
指定非默认值时,相当于有色噪声。
对于’prbs’,band=[0, B],B表示信号在一个间隔1/B(时钟周期)内为恒值,默认为[0, 1]。
Levels指定输入的水平。
Levels=[minu, maxu],在type=’rbs’、’prbs’、’sine’时,表示信号u的值总是在minu和maxu之间。
对于type=’rgs’,minu指定信号的均值减标准差,maxu指定信号的均值加标准差,对于0均值、标准差为1的高斯白噪声信号,则levels=[-1, 1],这也是默认值。
说明对于PRBS信号,如果M>1,则序列的长度和PRBS周期会做调整,使PRBS的周期为对应一定阶数的最大值(即2^n-1,n为阶数);如果M=1,PRBS的周期是大于N 的相应阶数的值。
在多输入的情形时,信号被最大平移,即P/nu为此信号能被估计的模型阶次的上界。
上面的意思可如下理解:对于M=1时,ms = idinput(12, 'prbs', [0 1], [0 1]);figurestairs(ms)title('M序列')ylim([-0.5 1.5])结果如下同时,matlab给出如下警告Warning: The PRBS signal delivered is the 12 first values of a full sequence of length 15.即函数的输出为周期为15(大于12的第一个2^n-1的值)PRBS信号的前12个值组成的序列。
基于Matlab的m序列发生器的设计1

引言伪随机噪声具有类似于随机噪声的某些统计特性,同时又能够重复产生。
由于它具有随机噪声的优点,又避免了随机噪声的缺点,因此获得了日益广泛的实际实用。
这种周期性数字序列称为随机序列,有时又称为随机信号和伪随机码。
m序列是伪随机序列中最重要的序列中的一种,它不但具有易于产生的特点,还具有良好的自相关特性,在扩频通信中得到了广泛的应用。
1. m序列设计方案选择1.1 方案一编程实现m 序列:MA TLAB编程非常简单,无需进行变量声明,可以很方便的实现m序列。
1.2方案二图1.1 Simulink 实现m 序列Simulink 实现m 序列(如图1.1所示) 。
Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
通过比较方案一和方案二,发现方案一的优点具有通用性,其中mserises.m相当于一个通项,根据具体的本原多项式调用它即可,而方案二利用MATLAB的simulink直接搭建模块,在移位寄存器较少时利用此方法极为简单,可是当移位寄存器的数量增多时,要搭建那么多的模块就显得很繁琐,缺乏通用性。
2.Simulink工具介绍2.1 Simulink简介Simulink是MATLAB软件最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可以构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用与控制理论和数字信号处理的复杂仿真和设计。
同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
用matlab产生M序列极其逆M序列

用matlab产生M序列极其逆M序列①用产生M序列,②以此M序列为基础产生逆M序列,③并将逆M序列的复制变为-a和+a。
解:(1)产生M序列,用一个4级移位寄存器生成M序列。
程序及结果如下(可执行文件xiti3见文件夹中):%产生M序列x=[0 1 0 1 1 0 1 1 1];%给移位寄存器初始化N=50;%N为脉冲数目M=[];%存放M序列for i=1:Na=xor(x(4),x(9));%x(4)与x(9)取异或赋值给aM(i)=x(9);%把x(9)里的值赋给M[]产生M序列for j=9:-1:2x(j)=x(j-1);%实现移位寄存器的循环移位endx(1)=a;%把x(4)与x(9)取异值a给x(1)endfigure(1)%创建图形1stairs(1:N,M)%把M序列以阶梯图形显示hold onaxis([0,N,0,1.2])%图形横轴从0到N,纵轴从0到1.2title('M序列');%图形标题为‘M序列’xlabel('时序脉冲');%横轴为‘时序脉冲’(2)用0、1方波序列与M序列取异或得逆M序列。
程序及结果如下(可执行文件xiti3见文件夹中):%产生逆M序列f=zeros(1,length(M));%f为方波序列f(1)=1;for i=2:Nf(i)=f(i-1);endNM=xor(M,f);%M序列与方波异或赋值给NMfigure(2)stairs(1:N,NM)hold onaxis([0,N,0,1.2])title('逆M序列');xlabel('时序脉冲');(3)将逆M序列的复制变为-a和+a,程序及结果如下(可执行文件xiti3见文件夹中):%将逆M序列的幅值变为a和-aa=5;%a为指定的幅值A=NM.*a*2;A=A-a;figure(3)stairs(1:N,A);axis([0,N,-a-1,a+1]);hold ontitle('幅值为a的逆M序列');xlabel('时序脉冲');。
基于MATLAB的扩频通信m序列的仿真解析

********************实践教学********************兰州理工大学计算机与通信学院2010年秋季学期移动通信课程设计题目:基于MATLAB的扩频通信m伪随机序列产生专业班级:通信工程07级(1)班姓名:周超学号: 07250115指导教师:贾科军成绩:目录摘要 (3)前言 (4)第一章基本原理 (5)1.1扩频调制 (5)1.2直接序列扩频(DS)原理 (8)1.3伪随机(PN)序列 (9)第二章 m序列发生器的系统分析 (12)2.1 m序列的产生 (12)2.2 m序列的反馈系数 (15)2.3 m序列发生器结构 (16)2.4 m序列的基本性质 (17)2.5 m序列的相关性 (17)第三章详细设计 (19)3.1 十阶m序列的设计框图 (19)3.2工作流程图 (20)第四章仿真测试及结论 (22)4.1 十阶m序列的仿真结果及分析 (22)4.2该设计的序列相关性仿真结果及分析 (27)参考文献 (28)总结 (29)所谓扩频通信,是扩展频谱通信技术的简称。
它是指用来传输信息的射频带宽远大于信息本身带宽的一种通信方式,扩频通信系统的出现,被誉为是通信技术的一次重大突破。
伪随机序列是具有某种随机特性的确定的序列。
它们是由移位寄存器产生确定序列,然而它们却具有某种随机序列的随机持性。
因为同样具有随机特性,无法从一个已经产生的序列的特性中判断是真随机序列,只能根据序列的产生办法来判断。
本设计运用MATLAB实现产生扩频通信中的m序列,并分析了相关性能。
关键词:扩频通信;随机序列;m序列随着社会,经济的发展,移动通信得到了越来越广泛的应用,在我国,移动通信发展的起步晚,但发展极其迅速。
移动通信的发展日新月异,从1978年第一代模拟蜂窝网电话系统的诞生至今,不过10多年,第二代全数字蜂窝网电话系统就已问世,第三代的个人通信系统的方案和实验均已开始。
在这种情况下,相应的扩频编码技术也随之诞生了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录前言 (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 序列,分析其性质,及其用来构造其它序列的方法;研究伪随机序列在跳频通信中的应用方法。
1.2 设计要求m 序列的本原多项式为:52()1A x x x =++,移位寄存器结构如图1.1图1.1 移位寄存器结构各寄存器初值分别为5[00001]r -,参照该移位寄存器的结构图,用Matlab 语言编写程序,生成m 序列。
1.3 系统框图产生m 序列的框图如下图1.2 系统框图第二章m 序列的分析2.1 m 序列的含义m 序列是最长线性移位寄存器的简称。
顾名思义,m 序列是由多级移位寄存器中,若N 为移位寄存器的级数,n 级移位寄存器共有2n 个状态,除去全0状态外还剩下不21n -种状态,因此它能产生的最大长度的码序列为21n -位。
产生m 序列的线性反馈移们寄存器称作最长线性移位寄存器。
产生m 序列的移位寄存器的电路结构,其反馈线连接不是随意的,m 序列的周期P 也不能取任意值,而必须满足21n p =-,式中,n 是移位寄存器的级数。
m 序列码发生器是一种反馈移位型结构的电路,它由n 位移位寄存器加异或反馈网络组成,其序列长度21n M =-,只有一个多余状态即全0状态,所以称为最大线性序列码发生器。
由于其结构已定型,且反馈函数和连接形式都有一定的规律,因此利用查表的方式就设计出m 序列码。
列出部分m 序列码的反馈函数F 和移存器位数n 的对应关系。
如果给定一个序列信号长度M ,则根据12-=n M 求出n ,由n 查表2-1便可以得到相应的反馈函数F 。
表2-1 反馈函数F2.2 m 序列产生的原理移位寄存器的后续状态可以用当前状态及特定矩阵来表示,这个矩阵是n n ⨯阶矩阵,称为A 矩阵,A 矩阵的第r 行对应移位寄存器第r 级反馈输入状态。
对于一个n 级移位寄存器序列产生器,其A 矩阵的第一个元素1n a 必定为1,否则,该序列发生器就必然退化为级数小于n 的移位寄存器序列发生器。
一个n 级简单线性移位寄存器序列发生器,其A 矩阵有如下形式12311100000100000010n n nc c c c A -⨯⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦在给定移位寄存器的初始状态后,可由A 矩阵求出后续状态,即111111212221222212()(1)(1)()(1)(1)()(1)()(1)(1)n n n n nn n n n x j x j x j a a a x j x j a a a x j X j A X j A a a a x j x j x j --⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥--⎢⎥⎢⎥⎢⎥⎢⎥==-==⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥--⎣⎦⎣⎦⎣⎦⎣⎦因此,1()(1)ni r r r x j a x j ==-∑,且()()k X j k A X j +=当k A I =单位矩阵时,有()()X j k X j +=,即移位寄存器中的内容在第j 个状态和第j k +个状态是相同的,即序列发生器从第j 个状态开始,经过k 次状态转移后,又回到了第j 个状态,产生的序列长度就为k 。
因此,对于最大长度线性移位寄存器序列发生器,必然有21nN A A I -== (2-1)对于n n ⨯阶矩阵A ,若x 为其特征值,则有0A xI -=,由于在二进制系统中,11-=,0A xI -=,整理化简得123123110n n n n n x C x C x C x C x ----++++++= (2-2)定义特征方程和特征多项式分别为0()nn r r r F x C x -==∑ (2-3)()nr r r f x C x ==∑ (2-4)其中01,1n C C ==。
2.2 m 序列的性质扩展频谱通信要求扩频序列应具有较好的随机特性,而m 序列既具有一定的随机特性,又具有一定的周期性,因而它是一种伪随机序列,m 序列应具有移位相加特性、平衡特性和游程特性。
1.移位相加特性(线性叠加性)一个m 序列{n a }与其经任意次延迟移位后产生的另一个不同序列{k n a +}模2 相加,得到是仍是该m 序列的延迟移位序列。
例如1110100与向右移3 位后的序列1001110逐位模2相加后的序列为0111010 ,相当于原序列向右移1位后的序列,仍是m 序列。
2.平衡特性在m 序列的每个21n -周期中,“1”码元出现的数目为12-n 次,“0”码元出现的数目为121--n 次,即“0”的个数比“1”的个数少一个。
伪随机序列的平衡性是指序列中“1”的数目只比“0” 的数目多l 。
码的平衡性由码序列中的直流分量决定。
平衡性好,则载波抑制度大,从而有利扩频通信的抗干扰能力以及保密和抗侦破能力。
其物理意义是不平衡码会使扩频后的信号中出现一些稳定的信号,从而易于被检测而导致保密能力的降低。
3.游程特性游程是指在一个序列周期中连续排列的取值相同的码元的合称 ,所谓的游程长度就是一个游程中码元的个数。
而m 序列的分布特性为1.m 序列的一个周期(12-=n M )中,游程总数为12-n ;2.当2>n ,且1 <游程长度k ≤n -2,长度为k 的游程占游程总数的k 21,其中0游程和1游程各占一半;3.长度为1-n 的游程只有一个,是0游程; 4.长度为n 的游程只有一个,是1有游程。
2.3 自相关特性周期为p 的m 序列的自相关函数为:()A D A DR A D pτ--==+ (2-5) 其中:A - 该序列与其j 次移位序列一个周期中对应元素相同数目 D - 该序列与其j 次移位序列一个周期中对应元素不同数目 P - 序列周期 上式可改写为:[0][1]()i i i i a a a a R pτττ++⊕=-⊕==的数目的数目 (2-6)由移位相加特性和均衡特性,可知m 序列的自相关函数为:1()1R p τττ=⎧⎪=-⎨⎪≠⎩(2-7)对于一个周期为21n p =-的m 序列{}n a (n a 取值1或0),其自相关函数如图1-5所示。
由图可见,当0τ=时,m 序列的自相关函数()R τ出现峰值1;当τ偏离0时,相关函数曲线很快下降;当11p τ≤≤-,相关函数值为1p -;当p τ=时,又出现峰值;如此周而复始。
当周期P 很大时,m 序列的自相关函数与白噪声类似。
这一特性很重要,相关检测就是利用这一特性,在‘有’或‘无’信号相关函数值的基础上识别信号,检测自相关函数值为1的码序列。
从m 序列的自相关系数可以看出,m 序列是一个狭义伪随机码。
知当m 序列的移位值为其周期的整数倍时,其自相关值取得最大值为1,移位值取其他值时,其自相关值恒为1p -。
其自相关函数如图2.1所示。
t/τ图2.1 m 序列的自相关函数第三章m 序列的设计3.1 特征多项式确定n 级线性移位寄存器的如图3.1所示:图3.1 n 级线性移位寄存器图中i C 表示反馈线的两种可能连接方式,i C =1表示连线接通,第n-i 级输出加入反馈中;i C =0表示连接线断开,第n-i 级输出未参加反馈。
因此,一般形式的线性反馈逻辑表达式为:112201(mod 2)nn n n n i n i i a C a C a C a C a ---==⊕⊕⊕=∑ (3-1)将上式左面的n a 移至右面,并将00(1)n n a C a C ==代入上式,则上式可改写为100ni n i C a -==∑ (3-2)定义一个与上式相对应的多项式0()ni i i F x C x ==∑ (3-3)根据上式可以确定m 序列的特征多项式:010()nni n i i f x c c x c x c x ==+++=∑ (3-4)()f x 的次数n 表示移存器的级数。
Ci 取值(1或0)确定反馈线连接状态。
线性移位寄存器的相继状态具有周期性,周期21n p ≤-。
用多项式f(x)来描述线性反馈移位寄存器的反馈连接状态。
其中x 的幂次表示元素的相应位置。
上式称为线性反馈移位寄存器的特征多项式。
输出a k3.2 本原多项式的确定特征多项式与输出序列的周期有密切关系。
当()f x 满足下列三个条件时,就一定能产生m 序列:(1) ()f x 是不可约的,即不能再分解多项式; (2) ()f x 可整除1p x +,这里21n p =-; (3) ()f x 不能整除1q x +,这里q p <。
满足上述3个条件的多项式称为本原多项式。
一个本原多项式对应一个最大长度移位m 序列,只要知道或找到了本原多项式,就能由它构造m 序列发生器,这样产生m 序列的充要条件就变成了如何寻找本原多项式。
寻找本原多项式是一件繁琐的工作,计算的到的结果已列表。
表3-1 本原多项式系数表3-1给出其中部分结果,每个n 只给出一个本原多项式为了使序列发生器尽量简单,常用的只有3项的本原多项式表中列出的本原多项式都是项数最少的,为了简便起见,用八进制数字记载本原多项式的系数。