基于MATLAB的M序列产生
基于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序列生成及性能仿真

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的m序列仿真

3.1 系统结构功能设计 ......................................................................................... 9 3.2 GUI 界面设计 ................................................................................................. 9 第四章 系统调试结果分析 ......................................... 11
1.2
系统设计流程图
本文通过软件 Matlab 编写程序,从而在 GUI 环境下看到 m 序列的产生、m 序列的自 相关和互相关函数图形,其系统设计流程图如图 1.1 所示: 开始
用 Matlab 编写程序产生两个 m 序列
对 m 序列进行自相关特性分析
对 m 序列进行互相关特性分析
用 Matlab GUI 显示仿真结果
Ns (2n 1) / n
其中, ( x) 为欧拉函数,其值小于等于 x ,并与 x 互质的正整数的个数(包括 1 在内)。例如对于 4 级移位寄存器,则小于 24 1 15 并与 15 互质的数为 1、2、4、 7、8、11、13、14,共 8 个,所以 (15) 8, Ns 8/ 4 2 ,所以 4 级移位寄存器最多能 产生的 m 序列数为 2。 总之,移位寄存器的反馈系数决定是否产生 m 序列,起始状态决定序列的起始 点,不同的反馈系数产生不同的码序列。 在 Matlab 的 GUI 环境中,程序代码如下:
第一章
1.1 设计内容及要求
1.1.1 设计内容
m序列产生

m序列产生试验目的:1.熟悉m序列,进一步了解m序列原理。
2.学会m序列的产生。
实验内容:1.编写MATLAB程序仿真程序;2.对程序做修改,进行仿真;3.分析仿真中观察的数据,撰写实验报告。
试验代码clearclcG=63;%码长%使用生成多项式(45)8=(100101)2产生第一个m序列%(n)8代表八进制sd1=[0 0 0 0 1];%寄存器初始状态PN1=[];%第一个序列for j=1:GPN1=[PN1 sd1(5)];if sd1(1)==sd1(3)temp1=0;else temp1=1;endsd1(1)=sd1(2);sd1(2)=sd1(3);sd1(3)=sd1(4);sd1(4)=sd1(5);sd1(5)=temp1;endsubplot(3,1,1)stem(PN1)title('使用生成多项式(45)8=(100101)2产生第一个m序列')%使用生成多项市(67)8=(110111)2产生第二个m序列sd2=[0 0 0 0 1]%寄存器初始状态PN2=[];for j=1:GPN2=[PN2 sd2(5)];if sd2(1)==sd2(2)temp1=0;else temp1=1;endif sd2(4)==temp1temp2=0;elsetemp2=1;endif sd2(5)==temp2temp3=0;else temp3=1;endsd1(1)=sd1(2);sd1(2)=sd1(3);sd1(3)=sd1(4);sd1(4)=sd1(5);sd1(5)=temp3;endsubplot(3,1,2)stem(PN2)title('使用生成多项式(67)8=(110111)2产生第二个m序列')%使用生成多项市(75)8=(111101)2产生第三个m序列sd3=[0 0 0 0 1]%寄存器初始状态PN3=[];for j=1:GPN3=[PN3 sd3(5)];if sd3(1)==sd3(2)temp1=0;else temp1=1;endif sd3(3)==temp1temp2=0;elsetemp2=1;endif sd3(4)==temp2temp3=0;else temp3=1;endsd3(1)=sd3(2);sd3(2)=sd3(3);sd3(3)=sd3(4);sd3(4)=sd3(5);sd3(5)=temp3;endsubplot(3,1,3)stem(PN3)title('使用生成多项式(75)8=(111101)2产生第三个m序列')。
基于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 序列产生方法及其性能,重点掌握直接序列扩频通信系统原理及性能。
二、 实验环境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序列设计与实现

i性进行验证,对工程技术人员有很大的参考价值。
关键词m序列MATLAB相关性平衡性
1 引言
扩频技术在导航、通信、测控等领域都得到广泛 应用,扩频系统的抗干扰、保密、多址、捕获与跟踪等 都与扩频码的设计密切相关,因此扩频码的生成和 性能评估是扩频系统的关键核心技术,决定了系统
的性能甚至成败。扩频系统对扩频序列的要求是:① 尖锐的自相关特性;②尽可能小的互相关值;③足 够多的序列数;④序列平衡性好;⑤工程上易实现。
technicians.
Key words m sequence,MATLAB,correlation,equilibrium
安德鲁喜获德国iCE动车组长期合同
,7康普公司全资子公司暨全球通信系统及设备领域领袖企业安德鲁无线通信公司,近日成功斩获一项德国ICE动 车组长期合同,将为其提供更先进的无线覆盖通信系统。
N=2^n一1:
register=[zeros(1,n一1)1];%初始状态 mseqfunc l(1)=register(n); %第一个输出码元
for ii=2:N
newregister(1)=mod(sum(fbeonneetion. 水register),2);
for ij=2:n, newregister(ij)=register(iji一1);
朋汲孔A 8的
一种m
计
王雪
(北京电子职业技术学院北京100016)
一
h…’‘~‘…r 11一…,^一^’…‘1…÷…H‘…h●'-……,……’。‘^n…‘~j●J一…、……_~一一…,……
}摘要扩频码设计是扩频系统的关键技术,利用计算机实现伪随机码的
;之路。本文基于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的幂次表示元素的相应位置。
基于matlab的移位寄存器法m序列的产生

基于matlab的移位寄存器法m序列的产生【摘要】扩频通信是在民用和军用都有广泛应用的一种通信技术,自从其诞生就受到了广泛关注。
扩频通信中频谱的扩展是通过一个独立的伪随机序列来完成的。
其中m序列是最常用的一种伪随机码,本文在matlab平台上通过仿真,来研究如何用移位寄存器产生m序列,虽然matlab中有现成的m序列产生模块,但是它的相位是不可以调节的,而本文产生的m序列相位可以调节。
详细讲解了m序列的产生原理,和matlab仿真过程,最后给出了仿真结果,结果表明该方法是可行的。
【关键词】移位寄存器;扩频;m序列;Design of m-sequence Generator Based on Shift Register with MatlabLIUYan-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, It is potential and promising which attracts wide attention since its emergence. The spectrum expansion of spread spectrum 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 the principles of the m sequence generation, and the matlab simulation process, the final simulation results, the results show that the simulation is feasible.【Key words】Shift register;Spread spectrum;m-sequence0 引言所谓扩频,是扩展频谱的简称。
基于Matlab的m序列发生器的

目录第一章绪论..................................................................................................................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结论............................................................................................................................12参考文献....................................................................................................................13附录一:程序代码....................................................................................................14第一章绪论1.1 背景及意义扩展频谱通信是一种不同于常规通信系统的新调制理论和技术,简称扩频通信。
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序列

西 安 邮 电 大 学实验名称:基于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序列发生器的设计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 序列是工程中常用的输入信号,它的性质类似于白噪声,而白噪声是理论上最好的输入信号,可见M 序列的价值。
下面介绍M 序列的matlab 产生方法,看到很多论坛产生M 而序列的程序复用性不高,matlab 就提供了产生M 序列的专门函数,这里尝试一下。
idinput 函数产生系统辨识常用的典型信号。
格式u idinputNtypebandlevelsufreqs idinputNsinebandlevelssinedataN 产生的序列的长度,如果NN nu,则nu 为输入的通道数,如果NP nu M,则nu 指定通道数,P 为周期,MP 为信号长度。
默认情况下,nu1,M1,即一个通道,一个周期。
Type 指定产生信号的类型,可选类型如下…rgs‟ 高斯随机信号…rbs‟ (默认)二值随机信号…prbs‟ 二值伪随机信号(M 序列)…sine‟ 正弦信号和Band 指定信号的频率成分。
对于‟rgs‟、‟rbs‟、‟sine‟,band wlow whigh指定通带的范围,则如果是白噪声信号,band0 1,这也是默认值。
指定非默认值时,相当于有色噪声。
对于‟prbs‟,band0 B,B 表示信号在一个间隔1/B(时钟周期)内为恒值,默认为0 1。
Levels 指定输入的水平。
在Levelsminu maxu,type‟rbs‟、‟prbs‟、‟sine‟时,表示信号u 的值总是在minu 和maxu 之间。
对于type‟rgs‟,minu指定信号的均值减标准差,maxu 指定信号的均值加标准差,对于0均值、标准差为1 的高斯白噪声信号,则levels-1 1,这也是默认值。
说明对于PRBS 信号,如果M1,则序列的长度和PRBS 周期会做调整,使PRBS 的周期为对应一定阶数的最大值(即2n-1,n 为阶数);如果M1,PRBS 的周期是大于N 的相应阶数的值。
用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序列发生器的设计

通信工程专业《通信原理》课程设计题目基于MATLAB/Simulink的m序列发生器的设计学生姓名薛康学号所在院(系)陕西理工学院物理与电信工程学院专业班级通信工程专业1104 班指导教师井敏英完成地点陕西理工学院物理与电信工程学院实验2014年11月20日摘要m 序列是一种典型的伪随机序列,它在扩频通信、流密码、信道编码等领域有着十分广泛的应用。
本文介绍了m序列构造方法及基本性能,并利用Matlab中的Simulink仿真系统及M语言编程实现它们的产生和分析。
仿真结果验证了该方法的正确性和可行性.关键词: m序列; Matlab; 仿真Abstract: m sequence is a typical pseudo-random sequence, It has been widely used in spread-spectrum communications, stream cipher, channel coding, and other fields. the paper introduces m sequence construction method and the basic performance. m sequences have been produced and analysis by Simulink System and M Programming Language of Matlab. The simulation results show correctness and feasibility of the method. Keywords: m Sequence; Matlab; Simulation引言伪随机噪声具有类似于随机噪声的某些统计特性,同时又能够重复产生。
由于它具有随机噪声的优点,又避免了随机噪声的缺点,因此获得了日益广泛的实际实用。
这种周期性数字序列称为随机序列,有时又称为随机信号和伪随机码。
基于matlab的移位寄存器法m序列的产生

基于matlab的移位寄存器法m序列的产生
刘艳华
【期刊名称】《科技视界》
【年(卷),期】2012(000)002
【摘要】扩频通信是在民用和军用都有广泛应用的一种通信技术,自从其诞生就受到了广泛关注.扩频通信中频谱的扩展是通过一个独立的伪随机序列来完成的.其中m序列是最常用的一种伪随机码,本文在matlab平台上通过仿真,来研究如何用移位寄存器产生m序列,虽然matlab中有现成的m序列产生模块,但是它的相位是不可以调节的,而本文产生的m序列相位可以调节.详细讲解了m序列的产生原理,和matlab仿真过程,最后给出了仿真结果,结果表明该方法是可行的.
【总页数】3页(P99-100,23)
【作者】刘艳华
【作者单位】盐城工学院信息工程学院江苏盐城 224051
【正文语种】中文
【相关文献】
1.基于Matlab的m序列的仿真与实现 [J], 魏瑞
2.基于Matlab的m序列生成及性能仿真 [J], 周洪霞;刘水;唐金元;李洪烈
3.m序列产生和性能的MATLAB仿真 [J], 王昆;陈昕志
4.一种基于Matlab的扩频伪码M序列的产生方法 [J], 王丹志;李署坚
5.基于m序列的可重构线性反馈移位寄存器研究 [J], 王澜涛;王友仁;张砦
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
参考资料
[1]肖国镇,梁传甲.伪随机序列及其应用[M].北京:国防工业出版社.1985 [2]林可祥,汪一飞.伪随机码的原理与应用[M].北京:人民邮电出版社.1998. [3]吴先用, 邹学玉.一种 m 序列伪码发生器的产生方法[J].西安:西安电子科技 大学出版社.2003
14
附录
clear; reg1=ones(1,7); coeff1=[1 0 0 0 0 1 1]; N=2^length(reg1)-1; %产生 m 序列 for k=1:N a_n=mod(sum(reg1.*coeff1(1:length(coeff1)-1)),2); reg1=[reg1(2:length(reg1)),a_n]; out1(k)=reg1(1); end reg2=ones(1,7); coeff2=[1 10 0 1 1 1]; N=2^length(reg2)-1; for k=1:N a_n=mod(sum(reg2.*coeff2(1:length(coeff2)-1)),2); 馈 reg2=[reg2(2:length(reg2)),a_n]; out2(k)=reg2(1); 值输出 end %产生 gold 序列 gold=mod(out1+out2,2); c=1:N; figure(1) [b1,t1]=stairs(c,out1); subplot(2,1,1);plot(b1,t1); axis([0 130 -0.1 1.1]);title('第一个 m 序列'); [b2,t2]=stairs(c,out2); subplot(2,1,2);plot(b2,t2);
5.2 实验的调试与运行结果
程序中把移位寄存器的初始值定义全为 1,抽头系数定义为[1000011]和
8
[1100111],根据公式 m 序列的长度=2n-1,可知道所得的两个 m 序列的长度都为 63,所利用的移位寄存器为 6 个。代码如下: reg1=ones(1,6); coeff1=[1 0 0 0 0 reg2=ones(1,7); coeff2=[1 0 0 1 1 1 1]; 1 1]; %寄存器初始状态 %设置系数 %寄存器初始状态 %设置系数
-------表达式 3.5 从 m 序列的自相关系数可以看出 m 序列是一个狭义伪随机码。
图 3.2 m 序列信号的自相关函数
3.3 生成 m 序列的模块
5
根据 m 序列的生成原理图,如图 3.1 所示,由图可知 m 序列是多级移位 寄存器通过线性反馈再进行模二相加产生的,最后一位一位输出观察其波形 图。程序中使用的代码如下:
互相关性: 第一个 m 序列的函数与第二个 m 序列函数的移位相乘进行积分运 算。代码如下:
10
for j=0:N-1 R(j+1)=sum(out1.*[out2(1+j:N),out2(1:j)]);
图 5.4 m 序列自相关性仿真图
11
图 5.5 两 m 序列的互相关性仿真图
5.3 错误排除
r
当 r 为奇数时, gold 序列中约有 50%的码序列归一化相关函数值为-1/p。当 r 为偶数但又不是 4 的倍数是,约有 75%的码序列归一化互相关函数值为 -1/p。 Gold 序列是 R.Gold 于 1967 年提出来的,它由两个 m 序列按下述方法 演变而来的: 把 2 个码长相同的 m 序列移位并进行模 2 加,如果相加的两个 m 序列是一对优选对,则相加的结果为一个 Gold 序列。 设有一对周期为 N=2r-1 的 m 序列优选对{a} , {b} ,以其中任意一个序 列为基准序列,如{a} ,对另一个序列{b}进行移位 i 次,得到{b}的移 位序列 {bi} , 然后与序列 {a} 进行模二加得到一个新的周期为 N 的序列 {c} , 则称新序列{c}为 Gold 序列,既 {ci}={a}+{b} i=0,1,2,....,N
A ◇
图 3.1 n 级线性移位寄存器 图中 Ci 表示反馈线的两种可能连接方式, Ci=1 表示连线接通,第 n-i 级输出加入反馈中;Ci=0 表示连线断开,第 n-i 级输出未参加反馈。 因此,一般形式的线性反馈逻辑表达式为
------表达式 3.1
将等式左边的 an 移至右边,并将 an=C0an(C0=1)带入上式,则上式可以 写成
图 2.1 Simulink 实现 m 序列 Simulink 是 MATLAB 最重要的组件之一, 它提供了一个动态系统建模, 仿 真和综合分析的集成环境。 在此环境中无需大量书写程序,而只需通过简单直观 的鼠标操作,就可构造出复杂的系统。Simulink 具有适应性广,结构及流程清晰 及仿真精细等优点,基于以上优点,Simulink 已被广泛的运用到控制理论和数字 信号处理的复杂仿真和设计。 通过比较方案一和方案二,发现方案一的有点具有通用性而方案二利用 MATLAB 的 Simulink 直接搭建模块,在移位寄存器较少的情况下利用此方法比 较简单, 可是当移位寄存器的个数增多时, 要搭建那么多的模块就显的很繁琐了, 缺乏通用性,因此本次实验选择方案一。
第四章 m 序列构造其他序列
6
Gold 序列具有三值互相关函数,其值为:
1 1 1 t (r ), , [t (r ) 2] p p p
(式 2.10)
这里,
1 2 0.5( r 1) , r为奇数 p 2 1, t (r ) (式 2.11) 0 .5 ( r 2 ) ,r为偶数但不是 4的倍数 1 2
4.1 Gold 序列的产生方框图
产生 gold 序列的程序代码如下: gold=mod(out1+out2,2);
第五章 程序调试及运行结果
5.1 仿真设计
否
确认程序无 误
是
设置仿真参数
运行,调试及数据分析
生成仿真图形
是否达到要 求
否
是
结束
图 5.1
实验仿真流程图
3.2 m 序列的基本性质
(1)均衡性。在 m 序列一个周期中‘1’的个数比‘0’要多 1 位,这表明
4
序列平均值很小。 (2)m 序列与其移位后的序列模 2 相加,所得的序列还是 m 序列,只是相 位不同而已。例如:1110100 与向又移 3 位的序列 1001110 相对应模二相加 后的序列为 0111010,相当于原序列向右移一位后的序列,仍为 m 序列。 (3)m 序列发生器中移位寄存器的各种状态,除全 0 状态外,其他状态只 在 m 序列中出现一次。 (4)m 序列发生器中,并不是任何抽头组合都能产生 m 序列。理论分析指 出,产生的 m 序列数由下式决定: --------表达式 3.4 其中φ(X)为欧拉数。例如 5 级移位寄存器产生 31 位 m 序列只有 6 个。 (5)m 序列具有良好的自相关性,其自相关系数:
15
%寄存器初始状态 %设置系数
%寄存器初始状态 %设置系数
%移位,反
%反馈 %取第一个
axis([0 130 -0.1 1.1]);title('第二个 m 序列'); figure(2) [b3,t3]=stairs(c,gold); plot(b3,t3); axis([0 130 -0.1 1.1]);title('gold 序列') out1=2*out1-1; out2=2*out2-1; %自相关函数 for j=0:N-1 rho(j+1)=sum(out1.*[out1(1+j:N),out1(1:j)])/N; end j=-N+1:N-1; rho=[fliplr(rho(2:N)),rho]; figure(3) plot(j,rho); axis([-10 10 -0.1 1.2]);title('第一个 m 序列的自相关函数') %互相关函数 for j=0:N-1 R(j+1)=sum(out1.*[out2(1+j:N),out2(1:j)]); end j=-N+1:N-1; R=[fliplr(R(2:N)),R]; figure(4) plot(j,R); axis([-N N -20 20]);title('两个 m 序列的互相关函数'); %变为双极性序列
-------表达式 3.2
定义一个与上式相对应的多项式
--------表达式 3.3
其中 x 的幂次表示元素的相应位置。 该式为线性反馈移位寄存器的特征
3
多项式,特征多项式与输出序列的周期有密切关系。当 F(x)满足下列三个条 件时,就一定能产生 m 序列: (1)F(x)是不可约的,即不能再分解多项式; (2)F(x)可整除 xn+1,这里 p=2n+1; (3)F(x)不能整除 xn+1,这里 q<q. 满足上述条件的多项式称为本原多项式,这样产生 m 序列的充要条件 就变成了如何寻找本原多项式。
N=2^length(reg1)-1; for k=1:N a_n=mod(sum(reg1.*coeff1(1:length(coeff1)-1)),2); reg1=[reg1(2:length(reg1)),a_n]; out1(k)=reg1(1); end
其中 N 为 m 序列的长度,值为(26-1) 。由程序已定义了移位寄存器的初 始状态和抽头系数,在此基础上进行反馈,后进行模二加,所得的结果为输 出的第一个值, 初始状态向左移移位, 而所得的输出值填补上变成新的序列, 在进行第二次反馈和模二加,依次循环 N 次,产生 m 序列
2
第三章 m 序列的产生及性质
3.1 m 序列的产生原理、结构及产生
m 序列是最长线性反馈移位寄存器序列的简称,m 序列是由带线性反馈的移 位寄存器产生的。 由 n 级串联的移位寄存器和反馈逻辑线路可组成动态移位寄存器,如果反馈 逻辑线路只由模 2 和构成,则称为线性反馈移位寄存器。 带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后 各级寄存器会发生变化, 其中任何一级寄存器的输出,随着时钟节拍的推移都会 产生一个序列,该序列称为移位寄存器序列。 n 级线性移位寄存器的如图 3.1 所示: