LFSR线性反馈移位寄存器循环码编码原理
线性反馈移位寄存器(LFSR)循环码编码原理
作为知识储备,近日在学习循环码编码的原理,教材为John G.Proakis和Masoud Salehi所著的《数字通信》第五版,循环码编码器对应于课本的第328页,对于利用LFSR实现模2除法书本只给出了大体框架,并没有详细阐述其具体的原理,通过查阅其他书籍和相关博客关于此方面的详细分析也十分少,最终经过一下午的苦思冥想,终于有了一些成果。
1.基本原理
对于一个 (n,k)循环码可以用一个n-k次的生成多项式g(X)来生成,其消息多项式为u(X)。对于一个(n,k)循环码,n为码字的长度,k为编码的信息序列长度。
系统循环码(前k个bit的码元为信息位)通过如下的方法产生:
1.将消息多项式u(X)乘以X^(n-k);
2.将X^(n-k)*u(X)除以g(X)得到余式r(X);
3.将r(X)加到X^(n-k)*u(X)。
使用LFSR进行系统循环码编码的示意图如下所示:编码器的前k比特的输出直接就是k位信息比特,并且由于此时开关①处于闭合位置,这k比特在输出也按时钟频率同步的进入移位寄存器,在k位信息比特全部进入编码器后,两个开关均切换到相反的位置,此时移位寄存器的内容就是n-k位校验比特,它对应于余式的系数,这n-k位校验比特按时钟频率每节拍输出1个比特并送入调制器。
2.举例分析
一个生成多项式g(X)=X^3+X+1的(7,4)循环码,其移位寄存器结构如下图所示:
假设输入消息比特为0110,则移位寄存器的内容随着时钟频率节拍的变化如下表:
输入信息 | 移位 | 寄存器内容 C0C1C2 |
---|---|---|
无 | 0 | 000 |
0 | 1 | 000 |
1 | 2 | 110 |
1 | 3 | 101 |
0 | 4 | 100 |
C3代表余数的高位,g(X)矢量表示为1011,u(X)矢量表示为0110,X^(n-k)*u(X)的矢量表示为0110000,
把0110000理解为0000000+100000+10000+0000,依次对应着线性移位寄存器的4次移位。
总结:可以看到,商的值取决于当前信息比特和上一级运算后余数的最高位C2,两者做异或运算,即两者不同时商为1,相同时商为0,以此来消掉当前输入比特,当商为0时,LFSR简化为单纯的移位寄存器,余数完成移位,当商为1时,LFSR完成g(X)与上一级余数的加运算并移位。在信息比特输入完毕之后,开关切换位置,此时C0C1C2存储的便是余数信息,经过三个时钟周期节拍,监督位跟随信息位输出,最终完成系统循环码的编码。
LFSR线性反馈移位寄存器循环码编码原理相关推荐
- LFSR线性反馈移位寄存器Verilog实现
用Verilog实现如下图所示的线性反馈移位寄存器: The reset should resetthe LFSR to 1 直接写逻辑门的代码 这种写法比较笨拙. 这里寄存器只有5 bits,数量不 ...
- 线性反馈移位寄存器LFSR(斐波那契LFSR(多到一型)和伽罗瓦LFSR(一到多型)|verilog代码|Testbench|仿真结果)
线性反馈移位寄存器LFSR 一.前言 二.LFSR简介 三.斐波那契LFSR和伽罗瓦LFSR 3.1 斐波那契LFSR 3.1.1 斐波那契LFSR 3.1.2 verilog代码 3.1.3 Tes ...
- 线性反馈移位寄存器(LFSR)和 Berlekamp-Massey 算法
应用密码学课上学习了 BM 算法,林老师说期末必考.做课后题时,让求解一个20长序列的 LFSR,本人算了两大页纸,还算错了两遍 (╬ ̄皿 ̄) 这里仔细研究下,谈谈我自己对它的理解. 文章目录 LFS ...
- 四类九种移位寄存器总结(循环(左、右、双向)移位寄存器、逻辑和算术移位寄存器、串并转换移位寄存器、线性反馈移位寄存器LFSR|verilog代码|Testbench|仿真结果)
移位寄存器总结 一.前言 二.简单循环左移/右移/双向移位寄存器 2.1 简单循环左移/右移/双向移位寄存器 2.2 verilog代码 2.3 Testbench 2.4 仿真结果 三.逻辑移位与算 ...
- 【数字IC手撕代码】Verilog伪随机数生成器|线性反馈移位寄存器|题目|原理|设计|仿真
芯片设计验证社区·芯片爱好者聚集地·硬件相关讨论社区·数字verifier星球 四社区联合力荐!近500篇数字IC精品文章收录! [数字IC精品文章收录]学习路线·基础知识·总线·脚本语言·芯片求职· ...
- 线性反馈移位寄存器(LFSR) ______FPGA产生基于LFSR的伪随机数
FPGA产生基于LFSR的伪随机数 https://blog.csdn.net/qq_34070723/article/details/89736772 1.概念 通过一定的算法对事先选定的随机种子( ...
- HDLBits 系列(21)LFSR(线性反馈移位寄存器)
目录 5 bit LFSR 3 bit LFSR 32 bit LFSR 5 bit LFSR A linear feedback shift register is a shift register ...
- quartus仿真6:74194构建线性反馈移位寄存器计数器LFSR
扭环形计数器具有8个有效状态,仍然有8个无效状态.进一步提高移位寄存器构建的计数器的有效状态数,可采用线性反馈移位寄存器计数器(Linear Feedback Shift-Register Count ...
- 详解线性反馈移位寄存器(LFSR)
转载于(九)详解线性反馈移位寄存器(LFSR) 文章目录 LFSR的由来 LFSR具体内容 对LFSR的密钥流攻击 延伸 书籍推荐 LFSR的由来 1. 移位寄存器: 移位寄存器(ShiftRegis ...
最新文章
- android错误整理——模拟器无法连接网络
- windows/ubuntu 文件共享之 Samba 配置
- 篝火怎么做_上世纪的“Dyatlov事件”到底是怎么一回事儿,真是未知力量吗?...
- 使用Microsoft Unity进行日志记录
- JavaScript内置对象Date常用函数
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(一)
- Onew Ex凝聚共识,维护生态繁荣
- python fortran混合编程输入矩阵_如何将动态数组从Python传递到Fortran动态链接库
- [日常] nginx与负载均衡
- spark wordcount 实例
- 宝塔利用同一个ip的不同端口号架设多个网站
- windows10怎么卸载计算机,win10系统自带浏览器怎么卸载_win10如何卸载电脑自带的浏览器-win7之家...
- 《薛兆丰的经济学课》课程总结5--需要协调
- PTA 奇数值结点链表 超详细
- 传统产业如何进行数字化转型
- android7.0模拟器pc版,安卓9.0模拟器电脑版
- 我们总在拒绝别人,又如何能提高得了自己?
- ECMAScript 2015 ES6
- 解析信用卡提额失败的原因,并制定解决方案
- 网络知识 ACL NAT IPv6
热门文章
- Fluka 安装及 pydicom
- 经验正交函数 (EOF) / 主成分 (PCA) 分解及Python实现
- 【luogu P3214】卡农(数学)(DP)
- VHDL语言仿真激励文件testbench编写指南
- c语言logical转文本,c语言逻辑运算符(C language logical operator).doc
- 矩阵乘法分治法c语言,分治法举例之矩阵乘法
- 【各种接口】USB接口、rj11和rj45
- 【H5/JS】游戏常用算法-碰撞检测-地图格子算法
- 【Excel自动化办公Part6】:插入图片、插入柱状图、插入条形图
- C/C++代码格式规范(一)