基于matlab的伪随机序列的实现
摘要:无损探测技术的要求得到较高的信噪比通常采用加大发射功率的途径来实现,但是在很多领域加大发射功率会带来很多弊端。前人研究结果表明:采用编码发射可以有效的解决这个问题,伪随机理论的产生为这种应用提供了理论基础。本文基于 MATLAB平台编制了一种伪随机序列生成及相关性评估程序,程序具有友好的用户接口,可对其相关性进行验证, 对工程技术人员有很大的参考价值。
关键词:伪随机码;matlab;相关性
1 引言
伪随机序列作为一种信号形式,具有良好的相关特性,可作为雷达测距、同步和线性系统测量的信号。它还具有伪随机性,因而可用于加密系统和伪随机跳频等场合。这时常将序列经非线性变换,即构造前馈序列;或者用多个序列组合后输出以增加保密性。它还可用以产生伪随机数适于计算机的系统模拟和在数字系统中作为误码测试信号等。伪随机序列还可用于扩频,在多址系统中作为地址信号等。伪随机序列有多方面的应用,对它的要求也很不相同。
例如用于多址信号时不但要求它通常的互相关函数要小,而且和在中间任意一位处反相后的互相关函数也要小;又如用于加密系统时,不但要考虑它的分析,而且要考虑它的综合和计算复杂性。关于非线性移位寄存器序列,尚有许多问题没有完全解决。伪随机序列系列具有良好的随机性和接近于白噪声的相关函数,并且有预先的可确定性和可重复性。这些特性使得伪随机序列在通信加密、雷达信号设计、通信系统中得到了广泛的应用。本文针对伪随机序列中最常用的一种m序列的结构和性质进行了分析,并基于matlab平台编码给出了此序列的实现方案。
2 m序列的结构、性质
2.1 m序列的生成
m序列是最长线性反馈移位寄存器序列的简称,它是由带线性反馈的移位寄存器产生的周期最长的一种序列。m序列的生成可用移位寄存器序列发生器的本原多项式来确定,一个本原多项式对应一个最大长度序列,即对应一个m序列。要用n级移位寄存器来产生m序列,关键在于选择哪几级移位寄存器作为反馈。以本原多项式 为例,其移位寄存器的反馈连接图如图1所示。
2.2 移位相加特性
m序列和它的位移序列模二相加后所得序列仍是该m序列的某个位移序列。 设 是周期为p的m序列 r次延迟移位后的序列, 那么 =
其中 为 某次延迟移位后的序列。 例如,
2.3 自相关性
m序列具有非常重要的自相关特性。在m序列中,常常用+1代表 0,用-1代表 1。 此时定义:设长为 p的m序列, 记作 。经过j次移位后,m序列为 ,其中 (以 p 为周期)
由移位相加特性可知, 仍是m序列中的元素, 所以上式分子就等于m序列中一个周期中 0 的数目与 1 的数目之差。 另外由m序列的均衡性可知, 在一个周期中 0 比 1 的个数少一个, 故得A-D=-1(j为非零整数时)或p(j为零时)。 因此得
3 m序列的matlab语言实现
m序列的生成可用移位寄存器序列发生器的本原多项式来确定,一个本原多项式对应一个
最大长度序列,即对应一个m序列。
本原多项式可在matlab中生成,打开Matlab程序,输入primpoly(n,all)能得到n阶移位寄存器所对应的所有的本原多项式。输入primpoly(4,all)能得到4阶移位寄存器所对应的所有的本原多项式。
输出结果为:
从图3中可以看出在15、30、45、60、75、90处得到了最大的相关特性,其他值处自相关值接近于零,此仿真验证了m序列具有良好的自相关特性。
5 结论
本文利用 MATLAB 平台编写了一种伪随机序列(m序列)的生成及相关性检测的程序, 程序具有良好的用户接口,同时文中提供的程序的源代码对广大工程技术人员具有较强的参考价值。
参考文献matlab生成随机数
[1] 蹇清平,佘新平,刘益成.基于Matlab的伪随机扫描信号的仿真与研究[J].石油天然气学报(江汉石油学院报).2010,36(6):387~390.
[2] 樊昌信.通信原理[M].北京:国防工业出版社,1995
[3] 何松,戚建宇,仝洋.基于m序列的扩频通信系统的仿真设计[J].计算机与信息技术.
[4] 柴 霖.基于MATLAB的扩频码设计[J].2007, 20~25.