m序列产生原理及其性质

m序列产生原理及其性质

一、m序列的简介

   1、m序列是最长线性移位寄存器序列的简称。顾名思义,m序列是由多级移位寄存器或其延迟元件通过线性反馈产生的最长的码序列。在二进制移位寄存器中,若n为移位寄存器的级数,n级移位寄存器共有 2n 个状态,除去全0状态外还剩下 2n-1 中状态,因此它能产生的最大长度的码序列为 2n-1 位,也就是说,一个n级线性反馈移位寄存器产生的最长周期等于 2n-1 。在码分多址系统中主要采用两种长度的m序列:一种是周期为 215-1的m序列,又称短PN序列;另一种是周期为242-1的m序列,又称为长PN码序列。

   2、m序列是一种基本又典型的伪随机序列。在通信领域有着广泛的应用,如扩频通信、卫星通信的码分多址(CDMA),数字数据中的加密、加扰、同步、误码率测量等领域。

二、m序列产生的原理

  图(1)示出的是由n级移位寄存器构成的码序列发生器。寄存器的状态决定于时钟控制下输入的信息(“0”或“1”),例如第I级移位寄存器状态决定于前一时钟脉冲后的第i-1级移位寄存器的状态。
图中C0,C1,…,Cn均为反馈线,其中C0=C1=1,表示反馈连接。因为m序列是由循环序列发生器产生的,因此C0和Cn肯定为1,即参与反馈。而反馈系数C1,C2,…,Cn-1,若为1,参与反馈;若为0,则表示断开反馈线,即开路,无反馈连线。
在这里插入图片描述

图(1) n级循环序列发生器的模型

一个线性反馈移动寄存器能否产生m序列,决定于它的反馈系数Ci ( i=0,1,2,…n) ,下表中列出了部分m序列的反馈系数 ,按照下表中的系数来构造移位寄存器,就能产生相应的m序列。

表(1) 部分m序列的反馈系数表

在这里插入图片描述
根据表1中的八进制的反馈系数,可以确定m序列发生器的结构。以7级m序列反馈系数Ci=(211)8为例,首先将八进制的系数转化为二进制的系数即Ci=(010001001)2,由此我们可以得到各级反馈系数分别为:C0=1,C1=0,C2=0,C3=0,C4=1,C5=0,C6=0,C7=1,由此就很容易地构造出相应的m序列发生器。根据反馈系数,其他级数的m序列的构造原理与上述方法相同。

三、m序列的产生与本原多项式

  由n级串联的移位寄存器和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化,其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。n级线性移位寄存器如下图所示:
在这里插入图片描述

图(2)n级线性移位寄存器

  图中Ci表示反馈线的两种可能连接方式,Ci=1表示连线接通,第n-i级输出加入反馈中;Ci=0表示连线断开,第n-i级输出未参加反馈。因此,一般形式的线性反馈逻辑表达式为
在这里插入图片描述
将等式左边的an移至右边,并将an=C0an(C0=1)带入上式,则上式可以写成
在这里插入图片描述
定义一个与上式相对应的多项式
在这里插入图片描述
其中x的幂次表示元素的相应位置。该式为线性反馈移位寄存器的特征多项式,特征多项式与输出序列的周期有密切关系。

   n级线性反馈移位寄存器产生m序列(P=2n-1[m序列的周期])的充要条件:移位寄存器的特征多项式F(x)为本原多项式。

当F(x)为n次本原多项式,就一定能产生m序列,不过需要满足以下三个条件:

  (1)F(x)是不可约的,即不能再分解多项式;

  (2)F(x)可整除xp+1,这里p=2n-1

  (3)F(x)不能整除xq+1,这里q<p.

满足上述条件的多项式称为本原多项式,这样产生m序列的充要条件就变成了如何寻找本原多项式。

本原多项式的寻找

一、求n次本原多项式F(x)的方法:

(1)将xP+1(xP-1)(P=xn-1)因式分解到已经不能再分解;
(2)在得到的因式集合中,排除掉所有少于n次的因式;
(3)其余的因式若不能整除任何xQ+1(Q<P),则这个因式为本原多项式F(x),可能不止一个。
(注:这里的n可理解成线性反馈移位寄存器的级数)

二、本原多项式F(x)与m序列的联系:

(1)m序列的特征多项式即为n阶本原多项式;
(2)1/F(x)作多项式长除法得到的商多项式系数序列就是m序列。

例子:求n=4本原多项式并得到m序列(n=4相当于级数为4)

xm + 1 = xm - 1=(x4 + x3 + x2 + x + 1) (x4 + x + 1) (x4 + x3 + 1) ( x2 + x + 1) (x+1)
其中 ( x2 + x + 1) 、(x+1)的次数小于4被排除。
其中(x4 + x3 + x2 + x + 1)可整除x5 + 1 = x5 - 1,也被排除。其长除法如下图(3):

在这里插入图片描述
故本原多项式有 x4 + x + 1、 x4 + x3 + 1。F(x)= x4 + x + 1,F1(x)= x4 + x3 + 1 分别对应一个m序列,可以由多项式1/F(x)长除法算出m序列,如下图(4):
在这里插入图片描述
q(x)= x-4 + x-7 + x-8 + x-10 + x-12 + x-13 + x-14 + x-15 +x-19+…
对应m序列:100110101111000(15个码元,即周期为15)…(周期性循环)
对于长除法得到的m序列只是其中的一种形式,方法有些冗重。大家可以参考下面这位博主的程序(由MATLAB编写)。程序里面的registers = [1 zeros(1, m-2) 1] 含义指的是为寄存器设置初始状态。大家可以随意设置,得出的结果跟书本上是一样的。

链接: m序列生成函数的MATLAB代码.

三、 互反多项式

  F1(x)= F(x-1)xn,即F1(x)与 F(x)为 互反多项式,也就是说它们产生的序列顺序互反的,m序列的反序列亦是m序列。

四、部分阶数本原多项式表

在这里插入图片描述

三、m序列的性质

m序列具有以下性质:
(1)均衡性
  由m序列的一个周期中,0和1的数目基本相等。1的数目比0的数目多一个。该性质可由m序列1000010010110011111000110111010看出:总共有16个1和15个0。

(2)游程分布
  m序列中取值相同的那些相继的元素合称为一个“游程”。游程中元素的个数称为游程长度。n级的m序列中,总共有2n-1个游程,其中长度为1的游程占总游程数的1/2,长度为2的游程占总游程数的1/4,长度为k的游程占总游程数的2k。且长度为k的游程中,连0与连1的游程数各占一半。如序列1000010010110011111000110111010中,游程总数为25-1=16,此序列各种长度的游程分布如下:
长度为1的游程数目为8,其中4个1游程和4个0游程;
长度为2的游程数目为4,2个11游程,2个00游程;
长度为3的游程数目为2,1个111游程,1个000游程;
长度为4的连0游程数目为1;
长度为5的连1游程数目为1。

(3)移位相加特性
  一个m序列m1与其经任意延迟移位产生的另一序列m2模2相加,得到的仍是m1的某次延迟移位序列 m3,即m1与m2 异或为m3

(4)相关特性
  我们可以根据移位相加特性来验证m序列的自相关特性。因为移位相加后得到的还是m序列,因此0的个数比1的个数少1个,所以,当 τ ≠ 0 \tau \ne 0 τ=0时,自相关系数 ρ ( τ ) = − 1 / ρ \rho(\tau)=-1/\rho ρ(τ)=1/ρ

  • 147
    点赞
  • 732
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
m序列(Maximal Length Sequence)发生器是一种能够产生最长长度的伪随机序列的电路,通常用于通信系统中的扰码、同步、频率同步等应用。下面是一个基于Verilog的m序列发生器的实现原理: m序列的生成是通过反馈移位寄存器实现的。其基本原理是将寄存器中的数据进行异或操作后输出,并将输出的结果反馈到寄存器的最高位,然后将寄存器中的数据向左移位。这个过程不断重复,直到寄存器中的数据与初始状态相等时停止。 具体实现如下: 1. 定义一个n位的寄存器(n为m序列的长度),并将其初始化为一个非零值,例如全1或其他非零值。 2. 在每个时钟周期中,将寄存器中的数据左移一位,并将最高位的数据与反馈多项式进行异或操作。反馈多项式的选择对m序列的质量影响很大,常用的反馈多项式有x^7+x^6+1、x^15+x^14+1、x^31+x^28+1等。 3. 将异或操作的结果输出,并将其反馈到寄存器的最高位。 4. 当寄存器中的数据与初始状态相等时,停止输出m序列。 下面是一个简单的m序列发生器的Verilog代码示例: ```verilog module m_sequence( input clk, output reg out ); reg [6:0] reg; // Feedback polynomial: x^7+x^6+1 always @(posedge clk) begin out <= reg[0]; reg <= {reg[6]^reg[5], reg[6:1]}; end endmodule ``` 以上代码实现了一个长度为7的m序列发生器,反馈多项式为x^7+x^6+1。在每个时钟上升沿时,将寄存器中的数据左移一位并进行异或操作,并将输出的结果反馈到寄存器的最高位,最终输出最低位的数据作为m序列

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值