m 序列(最长线性反馈移位寄存器序列)详解

news2025/2/24 0:47:00

本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。

文章目录

    • m 序列 (最长线性反馈移位寄存器序列)
      • 线性反馈移位寄存器的特征多项式
        • 线性反馈移位寄存器的递推关系式
        • 线性反馈移位寄存器的特征多项式
      • m序列产生器
      • m序列的性质
        • 均衡特性(平衡性)
        • 游程特性(游程分布的随机性)
        • 移位相加特性(线性叠加性)
        • 自相关特性
        • 伪噪声特性

m 序列 (最长线性反馈移位寄存器序列)

线性反馈移位寄存器的特征多项式

线性反馈移位寄存器的递推关系式

递推关系式又称为反馈逻辑函数或递推方程。设图2所示的线性反馈移位 寄存器的初始状态为 ( a 0 a 1 … a n − 2 a n − 1 ) (a_{0} a_{1} \ldots a_{n-2} a_{n-1}) (a0a1an2an1) , 经一次移位线性反馈, 移位寄存器 左端第一级的输入为
a n = c 1 a n − 1 + c 2 a n − 2 + ⋯ + c n − 1 a 1 + c n a 0 = ∑ i = 1 n c i a n − i a_{n}=c_{1} a_{n-1}+c_{2} a_{n-2}+\cdots+c_{n-1} a_{1}+c_{n} a_{0}=\sum_{i=1}^{n} c_{i} a_{n-i} an=c1an1+c2an2++cn1a1+cna0=i=1nciani

若经 k \boldsymbol{k} k 次移位, 则第一级的输入为
a l = ∑ i = 1 n c i a l − i a_{l}=\sum_{i=1}^{n} c_{i} a_{l-i} al=i=1nciali
其中, l = n + k − 1 ≥ n , k = 1 , 2 , 3 , … l=n+k-1 \geq n, k=1,2,3, \ldots l=n+k1n,k=1,2,3,
由此可见, 移位寄存器第一级的输入, 由反馈逻辑及移位寄存器的原状态所决定。上式称为递推关系式。

线性反馈移位寄存器的特征多项式

用多项式 f(x) 来描述线性反馈移位寄存器的反馈连接状态:
f ( x ) = c 0 + c 1 x + ⋯ + c n x n = ∑ i = 0 n c i x i f(x)=c_{0}+c_{1} x+\cdots+c_{n} x^{n}=\sum_{i=0}^{n} c_{i} x^{i} f(x)=c0+c1x++cnxn=i=0ncixi
称为特征多项式或特征方程。其中, x i x^{i} xi 存在, 表明 c i = 1 c_{i}=\mathbf{1} ci=1 , 否则 c i = 0 c_{i}=\mathbf{0} ci=0 , x 本身的取值并无实际意义。 c i c_{i} ci 的取值决定了移位寄存器的反馈连接。 由于 c 0 = c n = 1 c_{0}=c_{n}=1 c0=cn=1 , 因此, f(x) 是一个常数项为 1 的 n 次多项式, n 为移位寄存器级数。

一个 n 级线性反馈移位寄存器能产生 m 序列的充要条件是它的特征 多项式为一个 n 次本原多项式。若一个 n 次多项式 f(x) 满足下列条件:

(1) f(x) 为既约多项式(即不能分解因式的多项式);

(2) f(x) 可整除 ( x p + 1 ) , p n − 1 (x^{p}+1), p^{n}-1 (xp+1),pn1 ;

(3) f(x) 除不尽 ( x q + 1 ) , q < p (x^{q+1}), q \lt p (xq+1),q<p

则称 f(x) 为本原多项式。以上为我们构成 m 序列提供了理论根据。

m序列产生器

用线性反馈移位寄存器构成 m 序列产生器, 关键是由特征多项式 f(x) 来确定反馈 线的状态, 而且特征多项式 f(x) 必须是本原多项式。

现以 n=4 为例来说明 m 序列产生器的构成。用4级线性反馈移位寄存器产生的 m 序列, 其周期为 p = 2 4 − 1 = 15 p=2^{4}-1=15 p=241=15 , 其特征多项式 f(x) 是 4 次本原多项式,能整除 ( x 15 + 1 ) (x^{15}+1) (x15+1) 。先将 ( x 15 + 1 ) (x^{15}+1) (x15+1) 分解因式, 使各因式为既约多项式, 再寻找 f(x) 。
x 15 + 1 = ( x + 1 ) ( x 2 + x + 1 ) ( x 4 + x + 1 ) ⋅ ( x 4 + x 3 + 1 ) ( x 4 + x 3 + x 2 + x + 1 ) \begin{aligned} x^{15}+1 & =(x+1)(x^{2}+x+1)(x^{4}+x+1) \\ & \cdot(x^{4}+x^{3}+1)(x^{4}+x^{3}+x^{2}+x+1) \end{aligned} x15+1=(x+1)(x2+x+1)(x4+x+1)(x4+x3+1)(x4+x3+x2+x+1)
其中, 4 次既约多项式有 3 个, 但 ( x 4 + x 3 + x 2 + x + 1 ) (x^{4}+x^{3}+x^{2}+x+1) (x4+x3+x2+x+1) 能整除 ( x 5 + 1 ) (x^{5}+1) (x5+1) , 故它不是本原多 项式。因此找到两个4次本原多项式 ( x 4 + x + 1 ) (x^{4}+x+1) (x4+x+1) ( x 4 + x 3 + 1 ) (x^{4}+x^{3}+1) (x4+x3+1) 。由其中任何一个都可 产生 m 序列。用 f ( x ) = ( x 4 + x + 1 ) \mathrm{f}(\mathrm{x})=(\mathrm{x}^{4}+\mathrm{x}+\mathbf{1}) f(x)=(x4+x+1) 构成的 m \mathrm{m} m 序列产生器如图所示。

设4级移位寄存器的初始状态为 1000 , c 4 = c 1 = c 0 = 1 , c 3 = c 2 = 0 c_{4}=c_{1}=c_{0}=1, c_{3}=c_{2}=0 c4=c1=c0=1,c3=c2=0 。输出序列 { a k } \{a_{k}\} {ak} 的周期长度为 15 。

m序列的性质

均衡特性(平衡性)

m 序列每一周期中 1 的个数比 0 的个数多 1 个。由于 p = 2 n − 1 p=2^{n}-1 p=2n1 为奇 数, 因而在每一周期中 1 的个数为 ( p + 1 ) / 2 = 2 n − 1 (p+1) / 2=2^{n-1} (p+1)/2=2n1 (偶数), 而 0 的 个数为 ( p − 1 ) / 2 = 2 n − 1 − 1 (p-1) / 2=2^{n-1}-1 (p1)/2=2n11 (奇数)。上例中 p=15,1 的个数为 8,0 的个 数为 7。当p足够大时, 在一个周期中 1 与 0 出现的次数基本相等。

游程特性(游程分布的随机性)

我们把一个序列中取值(1 或 0)相同连在一起的元素合称为一个游程。在一个游程中元素的个数称为游程长度。例如图中给出的 m \boldsymbol{m} m 序列

在其一个周期的 15 个元素中, 共有 8 个游程
长度为 4 的游程 1 个, 即 1111 ;
长度为 3 的游程 1 个, 即 000 ;
长度为 2 的游程 2 个, 即 11 与 00 ;
长度为 1 的游程 4 个, 即 2 个 1 与 2 个 0 。

m 序列的一个周期 ( p = 2 n − 1 ) (p=2^{n-1}) (p=2n1) 中, 游程总数为 2 n − 1 2^{n-1} 2n1

长度为 1 的游程个数占游程总数的 1 / 2 ; 长度为 2 的游程个数占游 程总数的 1 / 2 2 = 1 / 4 1 / 2^{2}=1 / 4 1/22=1/4 ; 长度为 3 的游程个数占游程总数的 1 / 2 3 = 1 / 8 1 / 2^{3}=1 / 8 1/23=1/8 等等。

一般地, 长度为k的游程个数占游程总数的 1 / 2 k = 2 − k 1 / 2^{k}=2^{-k} 1/2k=2k , 其 中 1 ≤ k ≤ ( n − 2 ) 1 \leq k \leq(n-2) 1k(n2) 。而且, 在长度为k的游程中, 连1游程与连0游程各占一半, 长为 (n-1) 的游程是连0游程, 长为n的游程是连1游程。

移位相加特性(线性叠加性)

m \boldsymbol{m} m 序列和它的位移序列模二相加后所得序列仍是该 m \boldsymbol{m} m 序列的某个 位移序列。设 m r m_{r} mr 是周期为 p 的 m 序列 m p m_{p} mp 的 r 次延迟移位后的序列, 那么
m p ⊕ m r = m s m_{p} \oplus m_{r}=m_{s} mpmr=ms
其中, m s m_{s} ms m p m_{p} mp 某次延迟移位后的序列。例如,
m p = 000111101011001 , … m_{p}=000111101011001, \ldots mp=000111101011001,

m p m_{p} mp 延迟两位后得 m r m_{r} mr , 再模二相加
m r = 010001111010 m s = m p ⊕ m r = 010110 , … \begin{array}{l} m_{r}=\mathbf{0} 10001111010 \\ m_{\mathrm{s}}=\boldsymbol{m}_{\mathrm{p}} \oplus \boldsymbol{m}_{r}=\mathbf{0} 10110, \ldots \end{array} mr=010001111010ms=mpmr=010110,
可见, m s = m p ⊕ m r m_{\mathrm{s}}=m_{\mathrm{p}} \oplus m_{r} ms=mpmr m p m_{p} mp 延迟 8 位后的序列。

自相关特性

m \boldsymbol{m} m 序列具有非常重要的自相关特性。在 m \boldsymbol{m} m 序列中, 常常用 +1 代表 0 , 用-1代表 1。此时定义:设长为 p 的 m \boldsymbol{m} m 序列, 记作
a 1 , a 2 , a 3 , … , a p ( p = 2 n − 1 ) a_{1}, a_{2}, a_{3}, \ldots, a_{p}(p=2^{n-1}) a1,a2,a3,,ap(p=2n1)
经过 j \boldsymbol{j} j 次移位后, m \boldsymbol{m} m 序列为
a j + 1 , a j + 2 , a j + 3 , … , a j + p a_{j+1}, a_{j+2}, a_{j+3}, \ldots, a_{j+p} aj+1,aj+2,aj+3,,aj+p
其中, a i + p = a i a_{i+p}=a_{i} ai+p=ai (以 p 为周期), 以上两序列的对应项相乘然后相加, 利用所得的总和
a 1 ⋅ a j + 1 + a 2 ⋅ a j + 2 + a 3 ⋅ a j + 3 + ⋯ + a p ⋅ a j + p = ∑ i = 1 p a i a j + i a_{1} \cdot a_{j+1}+a_{2} \cdot a_{j+2}+a_{3} \cdot a_{j+3}+\cdots+a_{p} \cdot a_{j+p}=\sum_{i=1}^{p} a_{i} a_{j+i} a1aj+1+a2aj+2+a3aj+3++apaj+p=i=1paiaj+i
来衡量一个 m 序列与它的 j 次移位序列之间的相关程度, 并把它叫 做 m \boldsymbol{m} m 序列 ( a 1 , a 2 , a 3 , … , a p ) (a_{1}, a_{2}, a_{3}, \ldots, a_{p}) (a1,a2,a3,,ap) 的自相关函数。记作
R ( j ) = ∑ i = 1 p a i a j + i R(j)=\sum_{i=1}^{p} a_{i} a_{j+i} R(j)=i=1paiaj+i
当采用二进制数字 0 和 1 代表码元的可能取值时, 上式可表示为
R ( j ) = A − D A + D = A − D p R(j)=\frac{A-D}{A+D}=\frac{A-D}{p} R(j)=A+DAD=pAD
式中, A、D分别是 m \boldsymbol{m} m 序列与其 j 次移位的序列在一个周期中对应元素相同、不相同的数目, 还可以改写为
R ( j ) = [ a i ⊕ a i + j = 0 ]  的数目  − [ a i ⊕ a i + j = 1 ]  的数目  p R(j)=\frac{[a_{i} \oplus a_{i+j}=0] \text { 的数目 }-[a_{i} \oplus a_{i+j}=1] \text { 的数目 }}{p} R(j)=p[aiai+j=0] 的数目 [aiai+j=1] 的数目 

由移位相加特性可知, a i ⊕ a i + j a_{i} \oplus a_{i+j} aiai+j 仍是 m 序列中的元素, 所以式分子就等于 m 序列中一个周期中 0 的数目与 1 的数目之差。另外由 m \boldsymbol{m} m 序列的均衡性可知, 在一个周期中 0 比 1 的个数少一个, 故得 A − D = − 1 A-D=- 1 AD=1 ( j 为非零整数时) 或 p(j为零时) 。因此得
R ( j ) = { 1 j = 0 − 1 p j = ± 1 , ± 2 , … , ± ( p − 1 ) . R(j)=\{\begin{array}{ll} 1 & j=0 \\ \frac{-1}{p} & j=\pm 1, \pm 2, \ldots, \pm(p-1) \end{array}. R(j)={1p1j=0j=±1,±2,,±(p1).

m \mathrm{m} m序列的自相关函数只有两种取值 (1 和 -1 / p) 。 R(j) 是一个周期函数, 即
R ( j ) = R ( j + k p ) \boldsymbol{R}(j)=\boldsymbol{R}(j+k p) R(j)=R(j+kp)
式中, k = 1 , 2 , … , p = ( 2 n − 1 ) k=1,2, \ldots, p=(2^{n}-1) k=1,2,,p=(2n1) 为周期。而且 R ( j ) R(j) R(j) 是偶函数, 即
R ( j ) = R ( − j ) j =  整数  R(j)=R(-j) \quad j=\text { 整数 } R(j)=R(j)j= 整数 

伪噪声特性

如果我们对一个正态分布白噪声取样,若取样值为正,记为+1,

若取样值为负,记为-1,将每次取样所得极性排成序列,可以写成 …+1,-1,+1,+1,+1,-1,-1,+1,-1,…

这是一个随机序列,它具有如下基本性质:(1)序列中+1和-1出现的概率相等;

序列中长度为 1 的游程约占 1 / 2 , 长度为 2 的游程约占 1 / 4 , 长度为 3 的游程约占 1 / 8, … \ldots 一般地, 长度为 k \mathrm{k} k 的游程约占 1 / 2 k 1 / 2^{k} 1/2k , 而且 +1 、-1 游程的数目各占一半;

由于白噪声的功率谱为常数, 因此其自相关函数为一冲击函数 δ ( τ ) \delta(\tau) δ(τ) 。 把 m \boldsymbol{m} m 序列与上述随机序列比较, 当周期长度 p \boldsymbol{p} p 足够大时, m \boldsymbol{m} m 序列与随机序列的性质是十分相似的。可见, m \boldsymbol{m} m 序列是一种伪喿声特性较好的伪随机序列, 且易产生, 因此应用十分广泛。

参考文献:

  1. Proakis, John G., et al. Communication systems engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
  2. Proakis, John G., et al. SOLUTIONS MANUAL Communication Systems Engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
  3. 周炯槃. 通信原理(第3版)[M]. 北京:北京邮电大学出版社, 2008.
  4. 樊昌信, 曹丽娜. 通信原理(第7版) [M]. 北京:国防工业出版社, 2012.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/685857.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git进阶系列 | 8. 用Reflog恢复丢失的提交

Git是最流行的代码版本控制系统&#xff0c;这一系列文章介绍了一些Git的高阶使用方式&#xff0c;从而帮助我们可以更好的利用Git的能力。本系列一共8篇文章&#xff0c;这是最后一篇。原文&#xff1a;Using the Reflog to Restore Lost Commits[1] “Reflog”是Git不太为人所…

常见的未授权漏洞批量检测工具

常见的未授权漏洞检测 命令行版已放出支持多线程&#xff0c;批量扫描&#xff0c;指定服务扫描&#xff0c;命令行版地址https://github.com/xk11z/unauthorized_com GUI版unauthorizedV2已更新&#xff0c;可批量ip检测导出结果 项目包含 1 、FTP 未授权访问&#xff08…

SadTalker AI模型使用一张图片与一段音频便可以自动生成视频

SadTalker模型是一个使用图片与音频文件自动合成人物说话动画的开源模型,我们自己给模型一张图片以及一段音频文件,模型会根据音频文件把传递的图片进行人脸的相应动作,比如张嘴,眨眼,移动头部等动作。 SadTalker,它从音频中生成 3DMM 的 3D 运动系数(头部姿势、表情),…

webstorm配置vue开发环境

&#x1f333;&#x1f333;&#x1f333;前言&#xff1a;本文章针对于如何用IDE和webstorm运行一个别人的vue项目进行步骤记录。 &#x1f4d9;参考&#xff1a;(10条消息) idea配置vue开发环境_idea配置vue运行环境_drinkworld的博客-CSDN博客https://blog.csdn.net/drinkwo…

VSCode ssh ubuntu20显示图像界面

1、在vscode中安装 Remote X11(SSH) 2、在本地端安装MobaXterm 点击Settings-->Configurations-->X11&#xff0c;设置如下&#xff1a; 3、在服务端修改 ~/.bashrc文件&#xff0c;在末尾添加 export DISPLAY"192.168.0.201:0.0" 其中引号中内容为本地端IP地…

英伟达股价能否凭借AI进一步上涨到500美元?

来源&#xff1a; 猛兽财经 作者&#xff1a;猛兽财经 猛兽财经在之前的关于英伟达的分析中&#xff08;5月2日&#xff09;&#xff0c;就认为英伟达在人工智能方面的增长潜力还没有完全释放出来&#xff0c;并认为英伟达的股价将会很快涨到300美元&#xff0c;结果到了6月…

代码随想录二刷 day34 | 贪心之1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果

1005.K次取反后最大化的数组和 题目链接 解题思路&#xff1a; 两次贪心 如何可以让数组和最大呢&#xff1f; 局部最优&#xff1a;让绝对值大的负数变为正数&#xff0c;当前数值达到最大&#xff0c;整体最优&#xff1a;整个数组和达到最大 如何转变K次正负&#xff0c;让…

CASS打印地形图操作

1、打开地形图&#xff0c;如下&#xff1a; 2、在“工程应用”菜单栏中&#xff0c;选择“查询两点距离及方位”&#xff0c;如下&#xff1a; 3、量取地形图的大致范围大小&#xff0c;如下&#xff1a; 读取图上距离&#xff0c;用于设置纸张大小。 4、点击左上角打印图形&…

【算法题】神奇的斐波那契数列(Fibonacci sequence)、青蛙跳台阶问题、矩阵中的路径

神奇的斐波那契数列和青蛙跳台阶问题 一、神奇的斐波那契数列1.1、题目描述1.2、递归算法1.3、迭代法1.4、小结 二、青蛙跳台阶问题2.1、题目描述2.2、思路2.3、动态规划法2.4、小结 三、矩阵中的路径3.1、题目描述3.2、思路3.3、代码实现3.4、小结 总结 一、神奇的斐波那契数列…

卫星地图应用经典实例项目(7个)

本文会介绍引用一些非常好的卫星地图等相关的应用,一方面给大家增加见识,另一方面会提供一些设计开发的思路以及代码。 文章目录 热气球追踪系统googlemap实现卫星轨迹satvis卫星Cesium系统NASA的worldview系统项目Esri-Satellite-Map基于leaflet的卫星轨迹绘制项目地球当前…

关于Altium Designer 差分线规则设置的方法纠偏

本文适用于AD20以后版本。在AD的原理图及pcb的4年设计学习中&#xff0c;入门课是学校的AD09&#xff0c;简单的两层板绘制。后来因工作需要&#xff0c;就报了培训班&#xff0c;学习了基于AD19的相关使用方法。后来在很多的项目开发中&#xff0c;逐渐发现之前从书本、培训课…

Qt QGraphicsScene模块实现圆点绘制在所有窗体的最前方,实现圆点的“彩色拖尾”效果以及“选中方框”效果

文章目录 前言1、效果2、代码实现2.1 思路2.1.1 “拖尾”效果2.1.2 “选中方框区域”效果2.2 代码 总结 系列文章&#xff1a; &#xff08;一&#xff09;Qt 将某控件、图案绘制在最前面的方法&#xff0c;通过QGraphicsScene模块实现 &#xff08;二&#xff09;Qt QGraphics…

【SCI/SSCI/EI录用案例】仅26天录用,1天见刊

【Unionpub学术】录用/见刊/检索案例&#xff1a;2023年6月10日-2023年6月16日 2区材料类SCI 【期刊简介】IF:3.5-4.0&#xff0c;JCR2区&#xff0c;中科院3区 【检索情况】SCI 在检&#xff0c;正刊 【征稿领域】降解材料及其相关技术的研发&#xff0c;如聚合物基轻质材…

PyTorch 2简介:卷积神经网络

介绍 在本系列的上一部分中&#xff0c;我们使用了CIFAR-10数据集&#xff0c;并介绍了PyTorch的基础知识&#xff1a; 张量及其相关操作数据集和数据加载器构建基本的神经网络基本模型的训练和评估 我们为CIFAR-10数据集中的图像分类开发的模型只能在验证集上达到53%的准确率&…

Observability:为 Logstash 输出配置 SSL/TLS - Elastic Agent

在我之前的文章 “Observability&#xff1a;如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch”&#xff0c;我详细介绍了如何使用 Elastic Agents 采集数据并把数据通过 Logstash 发送至 Elasticsearch。细心的开发者可能注意到从 Elastic Agents…

Jmeter(三) - 从入门到精通 - 测试计划(Test Plan)的元件(详解教程)

1.简介 上一篇中我已经教你如何通过JMeter来创建一个测试计划&#xff08;Test Plan&#xff09;&#xff0c;那么这一篇我们就将JMeter启动起来&#xff0c;创建一个测试计划&#xff08;Test plan&#xff09;&#xff0c;然后现在给大家介绍一下测试计划&#xff08;Test P…

Redis和数据库保持数据一致性方案

Redis和数据库一致性又称为“双写一致性”&#xff0c;在分布式系统中&#xff0c;由于多个节点之间的并发读写操作&#xff0c;可能导致数据不一致的情况发生。本文将着重介绍如何通过使用Redis与数据库相结合的方案来实现数据一致性。 数据不一致产生的原因&#xff1a; 首先…

Android应用开发(5)Activity生命周期

Android应用开发学习笔记——目录索引 参考android官网&#xff1a; https://developer.android.google.cn/reference/android/app/Activity.html activity 生命周期的阶段 | Android 开发者 | Android Developers activity生命周期&#xff08;这篇足够了&#xff09;_…

pycharm中插件的使用;

pycharm中插件的使用&#xff1b; 1.英语翻译插件 Translation 使用方法 在pycharm中输入英文&#xff0c;右键&#xff0c;例如输入port想知道这个意思&#xff0c; 中文 也是一样的 2.pycharm的中文界面插件&#xff0c;安装后就是中文界面了

VSCode编译器环境下,调试3d-tiles-validator

VSCode编译器环境下&#xff0c;调试3d-tiles-validator 1. 源代码环境准备2. VsCode环境装备3. 调试 1. 源代码环境准备 参照3d-tiles-validator仓库的README.md文件 Clone the repository into the current directory:git clone https://github.com/CesiumGS/3d-tiles-vali…