M序列是非线性序列,可用的跳频图案很多,跳频图案的密钥量也大,并有较好的自相关和互相关特性,所以它是较理想的跳频指令码。其缺点是硬件产生时设备较复杂。
M序列特性
1、均衡特性(平衡性)
m序列每一周期中 1 的个数比 0 的个数多 1 个
2、游程特性(游程分布的随机性)
M序列中,状态“0”或“1”连续出现的段称为游程。游程中“0”或“1”的个数称为游程长度。
m序列的一个周期(p=2^n-1)中,游程总数为 2^n-1,“0”、“1”各占一半。
3、移位可加性
2个彼此移位等价的相异M序列,按模2相加所得的序列仍为M序列,并与原M序列等价。
M序列是工程中常用的输入信号,它的性质类似于白噪声,而白噪声是理论上最好的输入信号,可见M序列的价值。下面介绍M序列的matlab产生方法,看到很多论坛产生M序列的程序复用性不高,而matlab就提供了产生M序列的专门函数,这里尝试一下。
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],这也是默认值。
楼上错了,周期不是2^r,是2^r-1, 经过多项式作用可以产生不同M序列,或者利用迹函数映射也可以构造出性能良好的M序列。例如,初始状态是0001,那么an-4=0,an-3=0,an-2=0,an-1=1。如果反馈逻辑为an= an-3⊕an-4,对于初始状态为0001,经过一个时钟节拍后,各级状态自左向右移到下一级,未级输出一位数,与此同时模2加法器输出值加到移位寄存器第一级,从而形成移位寄存器的新状态,下一个时钟节拍到来又继续上述过程。未级输出序列就是伪随机序列。其产生的伪随机序列为an=100110101111000100110101111000…,这是一个周期为15的周期序列。改变反馈逻辑的位置及数量还可以得到更多不同的序列输出。
M序列是最长的非线性移位寄存器序列,它由非线性移位寄存器产生的码长为2^r的周期序列,可由m序列在适当位置插入全零状态实现
标签:序列,优点