基于Matlab的m序列发生器的设计文档格式.docx
《基于Matlab的m序列发生器的设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于Matlab的m序列发生器的设计文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
Matlab;
仿真
Abstract:
msequenceisatypicalpseudo-randomsequence,Ithasbeenwidelyusedinspread-spectrumcommunications,streamcipher,channelcoding,andotherfields.thepaperintroducesmsequenceconstructionmethodandthebasicperformance.msequenceshavebeenproducedandanalysisbySimulinkSystemandMProgrammingLanguageofMatlab.Thesimulationresultsshowcorrectnessandfeasibilityofthemethod.
Keywords:
mSequence;
Simulation
引言
伪随机噪声具有类似于随机噪声的某些统计特性,同时又能够重复产生。
由于它具有随机噪声的优点,又避免了随机噪声的缺点,因此获得了日益广泛的实际实用。
这种周期性数字序列称为随机序列,有时又称为随机信号和伪随机码。
m序列是伪随机序列中最重要的序列中的一种,它不但具有易于产生的特点,还具有良好的自相关特性,在扩频通信中得到了广泛的应用。
第一章设计内容及要求·
·
1
第二章m序列设计方案选择
2.1方案一·
2
2.2方案二·
第三章m序列产生和性质
3.1m序列的原理、结构及产生·
3
3.2m序列的基本性质·
4
第四章m序列的程序代码及运行结果
4.1m序列程序·
4.2输入本原多项式产生m序列·
5
4.3m序列自相关函数…………………………………………………………6
第五章程序调试及运行结果分析·
7
结论·
8
参考文献·
8
第一章设计内容及要求
基于Matlab的m序列发生器的设计:
基于Matlab语言编程,生成m序列,具体要求如下:
1、m序列的本原多项式为:
2、采用伽罗瓦型移位寄存器结构
3、利用Matlab编程环境求m序列的自相关函数
2.1方案一
编程实现m序列
MATLAB编程非常简单,无需进行变量声明,可以很方便的实现m序列。
2.2方案二
图2.2Simulink实现m序列
Simulink实现m序列(如图2.2所示)
Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
通过比较方案一和方案二,发现方案一的优点具有通用性,其中mserises.m相当于一个通项,根据具体的本原多项式调用它即可,而方案二利用MATLAB的simulink直接搭建模块,在移位寄存器较少时利用此方法极为简单,可是当移位寄存器的数量增多时,要搭建那么多的模块就显得很繁琐,缺乏通用性,因此本次课程设计选择方案一.
3.1m序列的原理、结构及产生
m序列是最长线性反馈移位寄存器序列的简称,m序列是由带线性反馈的移位寄存器产生的.
由n级串联的移位寄存器和和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。
带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化。
其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。
n级线性移位寄存器的如图3.1所示:
图3.1n级线性移位寄存器
图中
表示反馈线的两种可能连接方式,
=1表示连线接通,第n-i级输出加入反馈中;
=0表示连接线断开,第n-i级输出未参加反馈。
因此,一般形式的线性反馈逻辑表达式为
将等式左面的
移至右面,并将
代入上式,则上式可改写为
定义一个与上式相对应的多项式
其中x的幂次表示元素的相应位置。
式称为线性反馈移位寄存器的特征多项式,特征多项式与输出序列的周期有密切关系.当F(x)满足下列三个条件时,就一定能产生m序列:
(1)F(x)是不可约的,即不能再分解多项式;
(2)F(x)可整除
这里
;
(3)F(x)不能整除
,这里q<
p.
满足上述条件的多项式称为本原多项式.这样产生m序列的充要条件就变成了如何寻找本原多项式.
3.2m序列的基本性质
1)均衡性.在m序列中一个周期内“1”的数目比“0”的数目多l位,这表明,序列平均值很小.
2)m序列和其移位后的序列逐位模2相加,所得的序列还是m序列,只是相移不同而已.例如1110100与向右移3位后的序列1001110逐位模2相加后的序列为0111010,相当于原序列向右移1位后的序列,仍是m序列.
3)m序列发生器中移位寄存器的各种状态,除全0状态外,其他状态只在m序列中出现1次.如7位m序列中顺序出现的状态为111,110,101,010,100,001和011,然后再回到初始状态111.
4)m序列发生器中,并不是任何抽头组合都能产生m序列.理论分析指出,产生的m序列数由下式决定:
Φ(2n-1)/n
其中Φ(X)为欧拉数(即包括1在内的小于X并与它互质的正整数的个数).例如5级移位寄存器产生的31位m序列只有6个.
5)m序列具有良好的自相关特性,其自相关系数:
从m序列的自相关系数可以看出,m序列是一个狭义伪随机码.
-(N+1)Tc-(N-1)Tc-TcTc(N-1)Tc(N+1)Tc
4.1m序列程序
根据m序列的特征方程:
并根据其联接多项式编写Matlab程序.输入参数为由本原多项式所决定的反馈连接形式,以五阶m序列为例,其中用于产生m序列的程序代码如下:
m=5
an=[00001];
%初始寄存器的内容
cn=[00101];
%cn为移位寄存器
len=length(an);
%所需移位寄存器的内容
an=[zeros(1,len-1),1];
L=2^len-1;
%m序列的长度
m
(1)=an
(1);
%m序列的第一个输出码元
fori=2:
L
an1(1:
len-1)=an(2:
len);
an1(len)=mod(sum(cn.*an),2);
%寄存器与反馈的模2和
an=an1;
%移位后的寄存器
m(i)=an
(1);
%新的寄存器输出
end
stairs(m)%对m序列绘图
将以上代码命名为Untitled.m
运行结果见图4.1
4.2输入本原多项式产生m序列
以5阶移位寄存器为例来产生m序列,由文献可知其特征多项式
为本原多项式,亦及其反馈连接形式为[
]=[00101];
移位寄存器结构为
利用Matlab编程环境求m序列的自相关特性程序:
clear
a=[1101010001110111110010011000010];
b=[0110101000111011111001001100001];
L=length(b);
N=120;
x=[1:
N];
fork=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)];
plot(k,R(k));
holdon
plot(x,R);
grid
运行结果见图4.2
图4.1m序列的输出
图4.25级线性反馈移位寄存器产生m序列的相关特性
第五章程序调试及运行结果分析
通过运行结果可以看出是由0、1组成的阶梯形图形,Stairs函数功能是画阶梯形,生成一系列的m序列,成功实现了要求。
在调试过程中遇到一些错误,例如:
Subscriptindicesmusteitherberealpositiveintegersorlogicals.
经过认真分析,解决了错误。
结论
课程设计是一个十分有价值,有意义的实践活动,把一个课题设计好不是一步到位的,是经过反复修改,不断调试的过程,其间有困难也有乐趣,使人对工程实践有一个初步的认识。
本次课程设计完全实现了设计要求,利用软件实现m序列的生成,通过这次实践不但加深了对m序列的了解,而且对MATLAB编程有了很好的掌握,在不断的程序调错中提高了自己寻错的能力。
m序列可以软件实现,也可以硬件实现,但是通过本次设计可以看到软件设计的许多优点。
在课程设计的过程中,查询了大量的资料,通过相关资料的查阅,还掌握了通信领域的有关知识,扩大了知识面。
参考文献
[1]李贺冰,袁杰萍,孔俊霞.Simulink通信仿真教程[M].北京:
国防工业出版社,2005,1.
[2]翁剑枫,叶志前.MATLABLabVIEWSystemView仿真分析基础[M].北京:
机械工业出版社,2003.
[3]孙屹,李妍.MATLAB通信仿真开发手册[M].北京:
国防工业工业出版社,2006,5.
[4]查光明,熊贤祚.扩频通信[M].西安:
西安电子科技大学出版社,2002.
[5]曾兴雯,刘乃安,孙献璞.扩展频谱通信及其多址技术[M].北京:
高等教育出版社,2004.
[6]樊昌信,张甫翊,吴成柯.现代通信[M].北京:
高等教育出版社,2001.