百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

基于FPGA的伪随机序列发生器设计

moboyou 2025-05-16 17:38 29 浏览

基于 FPGA的伪随机序列发生器设计

1 基本概念与应用

1)LFSR:线性反馈移位寄存器(linear feedback shift register, LFSR)是指给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。

LFSR 产生的两种形式为伽罗瓦(Galois)和斐波那契(Fibonacci)两种形式。也有成为外部(External)执行方式和内部(Internal)执行方式。

(1)伽罗瓦方式(Internal)

Galois 方式特征数据的方向从左至右,反馈线路是从右至左。其中 X^0 项(本原多项式里面的‘1’这一项)作为起始项。按照本原多项式的指示确定异或门(XOR)在移位寄存器电路上的位置。如上图所示 X^4。因此 Galois 方式也有人称作线内或模类型(M- 型)LFSR。

(2)斐波那契方式(External)

从图中我们可以看到 Fibonacci 方式的数学流向和反馈形式是恰好跟 Galois 方式相反的,按照本原多项式,其中 X^0 这一项作为最后一项,这里需要一个 XOR 门,将本原多项式中所给的 taps 来设定它的异或方式。因此 Fibonacci 方式也被叫做线外或者简型(S- 型)LFSR。

2)本原多项式

本原多项式是近世代数中的一个概念,是唯一分解整环上满足所有系数的最大公因数为 1 的多项式。本原多项式不等于零,与本原多项式相伴的多项式仍为本原多项式。

(1)在 MATLAB 中,本原多项式可以通过函数 primpoly(x)来产生。

(2)在 MATLAB 中,通过函数 gfprimfd(m,'min')可以找到一个最小的本原多项式。

3)应用

误码率测量 -- 在数字通信中误码率是一项重要的质量指标,在实际测量数字通信系统的误码率时,一般来说,测量结果与信源发出信号的统计特性有关。通常认为二进制信号 0 和 1 是以等概率随机出现的。所以测量误码率时最理想的信源应是伪随机序列产生器。这样测量的结果,我们认为是符合实际运用时的情况。

时延测量 -- 有时我们需要测量信号经过某一传输路径所收到的时间延迟,例如,需要测量某一延迟线的时间延迟。另外,我们还常常通过测量一无线电信号在某个媒质中的传播时间,从而折算传播距离,即利用无线电信号测距。这就是说,这种测距的原理实质上也是测量延迟。

噪声产生器 -- 测量通信系统的性能时,常常要使用噪声产生器,由它给出具有所要求的统计特性和频率特性的噪声,并且可以随意控制其强度,以便得到不同信噪比条件下的系统性能。例如,在许多情况下,要求它能产生限带白色高斯噪声。

通信加密、数据序列的加扰与解扰、扩展频谱通信、分离多径技术等等。

2 伪随机序列的原理

对于某种反馈逻辑、初始化状态非全零时,若输出序列周期最长(P=2r-1),称为 m 序列,也称为伪随机序列。

伪随机序列通常由反馈移位寄存器产生,又可分为线性反馈移位寄存器和非线性反馈移位寄存器两类。由线性反馈移位寄存器产生出的周期最长的二进制数字序列称为最大长度线性反馈移位寄存器,即为通常说的 m 序列,因其理论成熟,实现简单,应用较为广泛。下面介绍 m 序列的产生原理。

在二进制多级移位寄存器中,若线性反馈移位寄存器(LFSR)有 n 阶(即有 n 级寄存器),则所能产生的最大长度的码序列为 2n-1 位。如果数字信号直接取自 LFSR(非翻转信号)的输出,那么最长的连 0 数为 n-1。除了字符串的连 0 和连 1,伪随机序列在一个长度为 n 的字符串中将包含任何可能的 0 和 1 的组合。要使移位寄存器产生确定的值,必须置其初值并允许时钟电路产生移位时钟。

线性反馈移位寄存器产生 m 序列

在图中给出一个一般的线性反馈移位寄存器的组成。图中一级移存器的状态用表示,=0 或 1,i=整数。反馈线的连接状态用 表示,=1 表示此线接通(参加反馈),=0 表示此线断开。我们不难推想,反馈线的连接状态不同,就可能改变此移存器输出序列的周期 p。

的取值决定了移存器的反馈连接和序列的结构,也就是决定了序列的周期。用特征多项式表示为:

当特征多项式符合某些条件时称为本原多项式。在设计 m 序列产生器时,移位寄存器反馈线的结构直接决定于本原多项式的结构。也就是只要找到本原多项式,就能由它构成 m 序列产生器。

3 matlab 的 LFSR 验证

1)matlab 函数产生本原多项式

clear all

close all

primpoly(8);

2)本原多项式产生随机序列

% m=8

% x^8+x^4+x^3+x^2+1

% 435

s=[1 1 1 1 1 1 1 1];

t=[8 4 3 2];

[seq c]=LFSRv1(s,t);

4 FPGA 的 LSFR 验证

1)fpga 实现本原多项式

/*m:x^8+x^4+x^3+x^2+1*/module msequence8#(       parameter seed= 8'b1111_1111   )(   clk,   rst_n,   en,   mse8, //m sequence   rand8   );    input clk, rst_n;    input en;    output mse8;    output reg [7:0] rand8;    assign mse8 = rand8[0];    always @ (posedge clk or negedge rst_n)begin       if(!rst_n) rand8 <= seed;       else if(en) begin rand8[0] <= rand8[1]; rand8[1] <= rand8[2]; rand8[2] <= rand8[3]; rand8[3] <= rand8[4]; rand8[4] <= rand8[5]; rand8[5] <= rand8[6]; rand8[6] <= rand8[7]; rand8[7] <= rand8[0] ^ rand8[4] ^ rand8[5] ^ rand8[6];       end       else rand8 <= rand8;    endendmodule

如上图所示,当 fpga 仿真的输入种子和 matlab 的输入种子一致时产生的序列一致。

上图为随机序列的模拟信号展示。

3)在产生随机数序列的基础上我们可以进一步去产生符合高斯分布的高斯白噪声

相关推荐

Excel技巧:SHEETSNA函数一键提取所有工作表名称批量生产目录

首先介绍一下此函数:SHEETSNAME函数用于获取工作表的名称,有三个可选参数。语法:=SHEETSNAME([参照区域],[结果方向],[工作表范围])(参照区域,可选。给出参照,只返回参照单元格...

Excel HOUR函数:“小时”提取器_excel+hour函数提取器怎么用

一、函数概述HOUR函数是Excel中用于提取时间值小时部分的日期时间函数,返回0(12:00AM)到23(11:00PM)之间的整数。该函数在时间数据分析、考勤统计、日程安排等场景中应用广泛。语...

Filter+Search信息管理不再难|多条件|模糊查找|Excel函数应用

原创版权所有介绍一个信息管理系统,要求可以实现:多条件、模糊查找,手动输入的内容能去空格。先看效果,如下图动画演示这样的一个效果要怎样实现呢?本文所用函数有Filter和Search。先用filter...

FILTER函数介绍及经典用法12:FILTER+切片器的应用

EXCEL函数技巧:FILTER经典用法12。FILTER+切片器制作筛选按钮。FILTER的函数的经典用法12是用FILTER的函数和切片器制作一个筛选按钮。像左边的原始数据,右边想要制作一...

office办公应用网站推荐_office办公软件大全

以下是针对Office办公应用(Word/Excel/PPT等)的免费学习网站推荐,涵盖官方教程、综合平台及垂直领域资源,适合不同学习需求:一、官方权威资源1.微软Office官方培训...

WPS/Excel职场办公最常用的60个函数大全(含卡片),效率翻倍!

办公最常用的60个函数大全:从入门到精通,效率翻倍!在职场中,WPS/Excel几乎是每个人都离不开的工具,而函数则是其灵魂。掌握常用的函数,不仅能大幅提升工作效率,还能让你在数据处理、报表分析、自动...

收藏|查找神器Xlookup全集|一篇就够|Excel函数|图解教程

原创版权所有全程图解,方便阅读,内容比较多,请先收藏!Xlookup是Vlookup的升级函数,解决了Vlookup的所有缺点,可以完全取代Vlookup,学完本文后你将可以应对所有的查找难题,内容...

批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数

批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数在电商运营、物流对账等工作中,经常需要统计快递“揽收到签收”的耗时——比如判断某快递公司是否符合“3天内送达”的服务承...

Excel函数公式教程(490个实例详解)

Excel函数公式教程(490个实例详解)管理层的财务人员为什么那么厉害?就是因为他们精通excel技能!财务人员在日常工作中,经常会用到Excel财务函数公式,比如财务报表分析、工资核算、库存管理等...

Excel(WPS表格)Tocol函数应用技巧案例解读,建议收藏备用!

工作中,经常需要从多个单元格区域中提取唯一值,如体育赛事报名信息中提取唯一的参赛者信息等,此时如果复制粘贴然后去重,效率就会很低。如果能合理利用Tocol函数,将会极大地提高工作效率。一、功能及语法结...

Excel中的SCAN函数公式,把计算过程理清,你就会了

Excel新版本里面,除了出现非常好用的xlookup,Filter公式之外,还更新一批自定义函数,可以像写代码一样写公式其中SCAN函数公式,也非常强大,它是一个循环函数,今天来了解这个函数公式的计...

Excel(WPS表格)中多列去重就用Tocol+Unique组合函数,简单高效

在数据的分析和处理中,“去重”一直是绕不开的话题,如果单列去重,可以使用Unique函数完成,如果多列去重,如下图:从数据信息中可以看到,每位参赛者参加了多项运动,如果想知道去重后的参赛者有多少人,该...

Excel(WPS表格)函数Groupby,聚合统计,快速提高效率!

在前期的内容中,我们讲了很多的统计函数,如Sum系列、Average系列、Count系列、Rank系列等等……但如果用一个函数实现类似数据透视表的功能,就必须用Groupby函数,按指定字段进行聚合汇...

Excel新版本,IFS函数公式,太强大了!

我们举一个工作实例,现在需要计算业务员的奖励数据,右边是公司的奖励标准:在新版本的函数公式出来之前,我们需要使用IF函数公式来解决1、IF函数公式IF函数公式由三个参数组成,IF(判断条件,对的时候返...

Excel不用函数公式数据透视表,1秒完成多列项目汇总统计

如何将这里的多组数据进行汇总统计?每组数据当中一列是不同菜品,另一列就是该菜品的销售数量。如何进行汇总统计得到所有的菜品销售数量的求和、技术、平均、最大、最小值等数据?不用函数公式和数据透视表,一秒就...