扫一扫,分享给好友
m序列简介
m序列是一种常用的伪随机序列,由具有反馈函数的移位寄存器电路产生,具有周期性,一旦反馈表达式及移位寄存器的初值(又称为种子)给定,就可以重复实现某组确定的序列值。该特点使得m序列在数据传输加密、拓展频谱通信等领域使用广泛。
m序列的工作原理
此处以一个4级的m序列生成电路来介绍m序列的工作原理:
图1.电路实现
图2.移位循环过程
在每个时钟周期,移位寄存器所有位的值右移一位,最左边的寄存器的值由反馈值填充;
输出方式分为并行和串行两种:并行方式以每个寄存器的输出作为输出结果(图1中的A3A2A1A0),每次输出的数据长度即为寄存器的数目n,且寄存器由左到右对应输出结果由MSB到LSB;串行方式以最后一位寄存器的输出作为输出结果(图1中的B),每次输出的数据长度为1;但无论是串行输出还是并行输出,其周期均为 。
反馈函数的确定
图3.多项式查找表
图4.反馈关系图
反馈函数的表达式是由m序列本原多项式决定的,图3为不同级数(级数即为寄存器的数目)的m序列各自对应的本原多项式;图4为移位寄存器间的反馈关系图,其中an-1到a0对应各个寄存器的值,C0至Cn对应本原多项式中至的系数,根据本原多项式的表达式取值成0或1,取值为1代表该条反馈支路存在。
确定反馈函数应分为以下几个步骤:
例如,在构建一个级数n=8的m序列时:
m序列的Verilog实现
源代码:
仿真结果:
设定种子值为1000,得到仿真波形如下,与图2中的手动推算结果一致
在always中对serial_out进行非阻塞赋值的仿真结果:
发布
通信伪随机序列fpga
【高云GW5AT-LV60 开发套件试用体验】基于开发板进行深度学习实践,并尽量实现皮肤病理图片的识别,第三阶段
【高云GW5AT-LV60 开发套件试用体验】 LVDS屏显示和camera
【高云GW5AT-LV60 开发套件试用体验】基于开发板进行深度学习实践,并尽量实现皮肤病理图片的识别,第二阶段
【高云GW5AT-LV60 开发套件试用体验】串口通信回环
【高云GW5AT-LV60 开发套件试用体验】点亮LED
【高云GW5AT-LV60 开发套件试用体验】基于开发板进行深度学习实践,并尽量实现皮肤病理图片的识别
【高云GW5AT-LV60 开发套件试用体验】SC130GScmos模块与LVDS屏和HDMI输出例程测试报告图像显示部分细节补充
【高云GW5AT-LV60 开发套件试用体验】SC130GScmos模块与LVDS屏和HDMI输出例程测试报告
【高云GW5AT-LV60 开发套件试用体验】二、软件开发环境搭建
【高云GW5AT-LV60 开发套件试用体验】项目简介-带warp畸变的屏幕模组
电子发烧友网
电子发烧友论坛