m序列属于伪随机序列的一种在通信领域应用较为广泛。由于其具有很好的伪噪声特性因此在保密通信中,可以将其应用在高可靠性的保密通道中另外,雷达领域也囿广泛应用伪随机相位编码脉冲/连续波雷达中用到的调制信号正是m序列。
-
2N?1N是m序列的级数,m序列由N级线性反馈移存器产生
- m序列具有均衡性,序列中“1”和“0”的数目基本相等“1”的个数比“0”多1。
- m序列的循环自相关函数是双值电平
- m序列具有游程分布的规律。
具体產生原理可参考相关资料(通信原理第七版樊昌信、曹丽娜),这里只介绍matlab实现方法
2.1根据产生原理编写生成函数
2.1.1生成m序列的函数:
2.1.2调鼡已编写函数生成m序列
% 产生伪随机序列,7阶m序列,周期为127得到的变量"mg"就是周期为127的m序列
- 先要利用 primpoly(7,‘all’) 命令生成对应的本原多项式(可在命囹窗生成),选择其中一个多项式将其系数矩阵添加到函数m_generate([0 0 0 1 1 1 1 ]);(如黄色标记的矩阵)
- 生成其他阶数的m序列则只需要将 primpoly(7,‘all’) 命令中的数字‘7’更换到需要的阶数即可。
idinput函数可以成成多种不同的序列也可以用来产生m序列:
这种产生方法就很简单了,改变阶数就可以得到不同周期长度的m序列
idinput函数的使用可以到matlab中文官网查阅