当前位置: 首页 > article >正文

已知原根多项式和寄存器初始值时求LFSR的简单例子

线性反馈移位寄存器(LFSR)是一种用于生成伪随机数序列的简单结构。在这里,我们有一个四项原根多项式 p ( x ) = 1 + x + 0 x 2 = 11 0 2 p(x) = 1 + x + 0x^2 = 110_2 p(x)=1+x+0x2=1102 和初始值 S 0 = 100 S_0 = 100 S0=100。我们将使用 LFSR 动作过程来生成一个伪随机序列。

LFSR 的动作过程如下:
在这里插入图片描述

将初始值加载到寄存器中。
对于每次时钟周期:
a. 将寄存器中的当前值与原根多项式的非零项进行异或(XOR)操作。
b. 将结果右移一位,然后将异或(XOR)操作的结果放入最高位。
现在,我们将详细描述 LFSR 的动作过程:

加载初始值: S 0 = 100 S_0 = 100 S0=100
时钟周期 1:
a. 异或操作: 1 ⊕ 0 = 1 1 \oplus 0 = 1 10=1, 作用目标是寄存器从左到右的第一第二位
b. 右移并更新最高位: S 1 = 110 S_1 = 110 S1=110
时钟周期 2:
a. 异或操作: 1 ⊕ 1 = 0 1 \oplus 1 = 0 11=0
b. 右移并更新最高位: S 2 = 011 S_2 = 011 S2=011
时钟周期 3:
a. 异或操作: 0 ⊕ 1 = 1 0 \oplus 1 = 1 01=1
b. 右移并更新最高位: S 3 = 101 S_3 = 101 S3=101
时钟周期 4:
a. 异或操作: 1 ⊕ 0 = 1 1 \oplus 0 = 1 10=1
b. 右移并更新最高位: S 4 = 110 S_4 = 110 S4=110。从这一位开始进入循环
在时钟周期 4 后,寄存器的值回到了初始值运算后的第一个计算值 S 1 = 110 S_1 = 110 S1=110,因此序列将开始重复。所以,LFSR 生成的伪随机序列为:
100,110,011,101,110,…


http://www.kler.cn/a/10415.html

相关文章:

  • Vue 项目打包后环境变量丢失问题(清除缓存),区分.env和.env.*文件
  • Spring框架之观察者模式 (Observer Pattern)
  • 并发基础:(淘宝笔试题)三个线程分别打印 A,B,C,要求这三个线程一起运行,打印 n 次,输出形如“ABCABCABC....”的字符串【举一反三】
  • L10.【LeetCode笔记】回文链表
  • jenkins提交gitee后自动部署
  • Kubernetes在容器编排中的应用
  • C学习笔记1
  • 【安全与风险】恶意软件:概念、攻击和检测
  • 走进小程序【七】微信小程序【常见问题总结】
  • 反序列化渗透与攻防(二)之Java反序列化漏洞
  • 对 FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP 的实践
  • 这家年销售额309亿的Tier 1,要谈一场千亿新生意
  • 【软考备战·希赛网每日一练】2023年4月12日
  • apache配置与应用
  • ChatGPT实战100例 - (01) 秒出思维导图
  • 程序员的“灵魂笔记本“:五款高效笔记软件推荐
  • 线程池
  • WinForms 网格控件 - iGrid.NET 10.1.22 Crack
  • 1.java程序员必知必会类库之日志
  • Windows使用Dockers+battery historian踩坑记
  • HTTP 和 HTTPS 的区别
  • 基于Vue3封装一个好用的Websocket
  • 男生|女生漫画头像怎么制作,分享3种免费制作方法,不用求人
  • rstudio跑不动咋整?-------生信豆芽菜
  • Redis只用来做缓存?来认识一下它其他强大的能力吧。
  • 举一反三学python(11)—excel实例