m序列的产生原理与matlab代码
来源:互联网 发布:济南思成网络 编辑:程序博客网 时间:2024/06/03 20:58
m序列是最长线性移位寄存器序列的简称。它是由多级移位寄存器或其他延迟元件通过线性反馈产生的最长的码序列。由于m序列容易产生、规律性强、有许多优良的性能,在扩频通信中最早获得广泛的应用。
如图1所示,m序列可由二进制线性反馈移位寄存器产生。它主要由n个串联的寄存器、移位脉冲产生器和模2加法器组成。 图中第i级移存器的状态ai表示,ai=0或ai=1,i=整数。反馈线的连接状态用ci表示,ci=1表示此线接通(参加反馈),ci=0表示此线断开。
由于反馈的存在,移存器的输入端受控地输入信号。不难看出,若初始状态为全“0”,则移位后得到的仍为全“0”,因此应避免出现全“0”状态,又因为n级移存器共有2n种可能的不同状态,除全“0”状态外,剩下2n-1种状态可用。每移位一次,就出现一种状态,在移位若干次后,一定能重复出现前某一状态,其后的过程便周而复始了。反馈线位置不同将出现不同周期的不同序列,我们希望找到线性反馈的位置,能使移存器产生的序列最长,即达到周期P=2n-1。按图中线路连接关系,可以写为:
该式称为递推方程。(注意: 后面有个模2 mod 2)
图1 线性反馈移位寄存器
上面曾经指出,ci的取值决定了移位寄存器的反馈连接和序列的结构。现在将它用下列方程表示:
这一方程称为特征多项式。式中xi仅指明其系数ci的值(1或0),x本身的取值并无实际意义,也不需要去计算x的值。例如,若特征方程为f(x)=1+x+x4则它仅表示x0,x1和x4的系数c0=c1=c4=1,其余为零。经严格证明:若反馈移位寄存器的特征多项式为本原多项式,则移位寄存器能产生m序列。只要找到本原多项式,就可构成m系列发生器。
m序列的基本性质如下:
(1)周期性:m序列的周期p取决于它的移位寄存器的级数, p=2n-1
(2)平衡特性:m序列中0和1的个数接近相等;m序列中一个周期内“1”的数目比“0”的数目多1个。
(3)游程特性:m序列中长度为1的游程约占游程总数的1/2,长度为2的游程约占游程总数的1/22 ,长度为3的游程约占游程总数的1/23…
(4)线性叠加性:m序列和其移位后的序列逐位模2相加,所得的序列还是m序列,只是相移不同而已。
(5) 二值自相关特性:码位数越长越接近于随机噪声的自相关特性。
m序列:
Matlab代码:
function [mseq]=m_sequence(fbconnection)
% primpoly(10,'all');
n=length(fbconnection);
N=2^n-1;
register=[zeros(1,n-1) 1]; %移位寄存器的初始状态
mseq(1)=register(n); %m序列的第一个输出码元
for i=2:N
newregister(1)=mod(sum(fbconnection.*register),2);
for j=2:n
newregister(j)=register(j-1);
end;
register=newregister;
mseq(i)=register(n);
end
可在matlab命令窗口 help primpoly 查看该函数用法。 (primpoly(10,'all')得到10阶m序列的所有本原多项式。 不唯一?)
输入 m_sequence([1 0 0 0 0 0 0 1 0 1]) (10bit)
便可得到一个1023的序列。
说明:1 0 0 0 0 0 0 1 0 1 输入参数的物理意义为各寄存器的初始状态。其数学意义是所选用的本征多项式D^10+D^3+1。D^1到D^10的各个系数。
原博客链接:http://blog.csdn.net/laomai/article/details/24342493
http://blog.sina.com.cn/s/blog_7b818ee70101bi6h.html
- m序列的产生原理与matlab代码
- matlab产生m序列代码
- m序列生成器的原理与MATLAB及FPGA实现
- 基于MATLAB的m序列产生函数及其调用方法
- verilog 产生m序列
- 决策树的实现原理与matlab代码
- m序列的原理以及verilog实现
- matlab产生符合某个分布的随机数序列
- matlab 产生不重复随机整数的序列
- 一分钟了解“matlab产生不重复的随机数序列”
- [Matlab] M序列的生成,自相关和谱密度
- Matlab R2014a由.m文件产生C代码,在VS2010中运行
- Matlab R2014a 由.m文件产生C代码,并在VS2010中测试
- 随机数的产生原理与实现
- 摩尔纹的原理与产生条件
- random()随机数的产生方式与原理
- matlab 随机数的产生
- Matlab矩阵的产生
- HTML5权威指南.pdf 免费下载
- CSS选择器之属性选择器
- Kafka消息文件存储
- 从零开始学android编程之线性布局管理器(2-1)
- Java JDK 10:下一代 Java 有哪些新特性?
- m序列的产生原理与matlab代码
- 机器人的机载PC的rviz闪退的解决方案
- Introducing ArcGIS API 4 for JavaScript Turn Awesome Maps into Awesome Apps.pdf 英文原版 免费下载
- Linux设备驱动之中断---介绍
- Map的三种 遍历方式
- Python首次安装(Win7)
- LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
- 生命不息,踩坑不止
- 动态查找表