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

已知原根多项式和寄存器初始值时求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,…

4bit的例子

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

LFSR 的动作过程如下:

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

加载初始值: S 0 = 0100 S_0 = 0100 S0=0100
时钟周期 1:
a. 异或操作: 0 ⊕ 1 ⊕ 0 = 1 0 \oplus 1 \oplus 0 = 1 010=1
b. 右移并更新最高位: S 1 = 1010 S_1 = 1010 S1=1010
时钟周期 2:
a. 异或操作: 1 ⊕ 0 ⊕ 0 = 1 1 \oplus 0 \oplus 0 = 1 100=1
b. 右移并更新最高位: S 2 = 1110 S_2 = 1110 S2=1110
时钟周期 3:
a. 异或操作: 1 ⊕ 1 ⊕ 1 = 0 1 \oplus 1 \oplus 1 = 0 111=0
b. 右移并更新最高位: S 3 = 0111 S_3 = 0111 S3=0111
时钟周期 4:
a. 异或操作: 0 ⊕ 1 ⊕ 1 = 0 0 \oplus 1 \oplus 1 = 0 011=0
b. 右移并更新最高位: S 4 = 0011 S_4 = 0011 S4=0011
时钟周期 5:
a. 异或操作: 0 ⊕ 0 ⊕ 1 = 1 0 \oplus 0 \oplus 1 = 1 001=1
b. 右移并更新最高位: S 5 = 1001 S_5 = 1001 S5=1001
时钟周期 6:
a. 异或操作: 1 ⊕ 0 ⊕ 1 = 0 1 \oplus 0 \oplus 1 = 0 101=0
b. 右移并更新最高位: S 6 = 0100 S_6 = 0100 S6=0100
在时钟周期 ,6后,寄存器的值回到了初始值 S 0 = 0100 S_0 = 0100 S0=0100,因此序列将开始重复。所以,LFSR 生成的伪随机序列为:
0100, 1010, 1110, 0111, 0011, 1001。周期为6,小于最大周期15。

http://www.lryc.cn/news/60040.html

相关文章:

  • 【场景生成与削减】基于蒙特卡洛法场景生成及启发式同步回带削减风电、光伏、负荷研究(Matlab代码实现)
  • 探索C/C++ main函数:成为编程高手的关键步骤
  • 【Linux】应用层协议—http
  • 七、Django进阶:第三方库Django-extensions的开发使用技巧详解(附源码)
  • 浏览器特色状态
  • context 浅析
  • Bandizip已管理员身份运行
  • LiveCharts2 初步认识
  • Java设计模式 11-代理模式
  • Python综合案例-小费数据集的数据分析(详细思路+源码解析)
  • 软件安全测试
  • Scala模式匹配
  • 银行数仓分层架构
  • Go并发编程的学习代码示例:生产者消费者模型
  • 求a的n次幂
  • word脚标【格式:第X页(共X页)】
  • Linux --- 软件安装、项目部署
  • MATLAB应用笔记
  • ERTEC200P-2 PROFINET设备完全开发手册(6-2)
  • 算法套路八——二叉树深度优先遍历(前、中、后序遍历)
  • 视频批量剪辑:如何给视频添加上下黑边并压缩视频容量。
  • 那些你需要知道的互联网广告投放知识
  • 【hello Linux】进程程序替换
  • 【网络应用开发】实验4——会话管理
  • Linux服务器怎么分区
  • 传统机器学习(四)聚类算法DBSCAN
  • “华为杯”研究生数学建模竞赛2020年-【华为杯】A题:ASIC 芯片上的载波恢复 DSP 算法设计与实现(附获奖论文及matlab代码实现)
  • 1043.分隔数组以得到最大和
  • 微服务治理框架(Istio)的认证服务与访问控制
  • 数据结构 | 排序 - 总结