PRBS并行输出

PRBS(Pseudo-Random Binary Sequences)是通过LFSR和特征函数 伪随机数发生器产生的伪随机数序列,通常用于高速数字通信测试。

基本电路(单比特输出)

prbs N表示用N比特lfsr尝试伪随机数序列,常用的有N=7,9,11,15,32等。伪随机序列的长度为 2 N − 1 2^{N-1} 2N1。 那么如何搭建电路产生这些伪随机数呢?以PRBS7,生成多项式为 G ( x ) = x 7 + x 6 + 1 G(x)=x^7 + x^6+1 G(x)=x7+x6+1,对应External Feedback LFSR电路如下图,其中1~7表示移位寄存器。

image.png

这样的电路一个周期只能产生一比特输出,如果需要每T产生伪序列中的两个,那么该如何实现?或者我想输出是6,7两个寄存器,下一拍更新时,希望是如图电路移位两拍的结果。

两比特输出

生成多项式还对应生成多项式还有对应的特征矩阵M。假设x1-7分别对应图中1~7个寄存器的输出,则下一拍x’1-7的值可以通过矩阵M,由当前拍x1-7的值得到。

[ x 7 ′ x 6 ′ x 5 ′ x 4 ′ x 3 ′ x 2 ′ x 1 ′ ] = [ 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 ] [ x 7 x 6 x 5 x 4 x 3 x 2 x 1 ] \left[ \begin{matrix} x_7' \\ x_6'\\x_5'\\x_4'\\x_3'\\x_2'\\x_1'\\ \end{matrix} \right] = \left[ \begin{matrix} 0 & 1 & 0& 0& 0& 0& 0\\ 0 & 0 & 1& 0& 0& 0& 0\\ 0 & 0 & 0& 1& 0& 0& 0\\ 0 & 0 & 0& 0& 1& 0& 0\\ 0 & 0 & 0& 0& 0& 1& 0\\ 0 & 0 & 0& 0& 0& 0& 1\\ 1 & 1 & 0& 0& 0& 0& 0\\ \end{matrix} \right] \left[ \begin{matrix} x_7 \\ x_6 \\ x_5\\ x_4\\ x_3\\ x_2\\ x_1 \end{matrix} \right] x7x6x5x4x3x2x1 = 0000001100000101000000010000000100000001000000010 x7x6x5x4x3x2x1
如果一次更新要得到两拍后的结果,那么映射关系等于M^2,即
image.png

通过该映射关系,可以很容易写出x’1-7的更新逻辑。

x 7 ′ = x 5 x 6 ′ = x 4 x 5 ′ = x 3 x 4 ′ = x 2 x 3 ′ = x 1 x 2 ′ = x 7 ⊕ x 6 x 1 ′ = x 6 ⊕ x 5 \begin{align} x'_7 &= x_5 \\ x'_6 &= x_4 \\ x'_5 &= x_3 \\ x'_4 &= x_2 \\ x'_3 &= x_1 \\ x'_2 &= x_7 \oplus x_6 \\ x'_1 &= x_6 \oplus x_5\\ \end{align} x7x6x5x4x3x2x1=x5=x4=x3=x2=x1=x7x6=x6x5

十比特输出

如果需要一次产生10比特的伪随机序列,又该如何实现呢?初值固定后,这些伪随机序列也是固定的,因此每T产生此序列的10个数也是固定的,那么该如何做到呢?

基本电路只有7个寄存器,该如何一次性输出十个数呢?如果这样想,就容易落入死胡同。换个思路,通过生成矩阵,只要确定初值,我们可以得到移位任意拍的输出逻辑。所以下一拍x’7 表示移位10次后的结果,x’6表示移位11次后的结果,x’1表示移位16次的结果,另外准备3个寄存器x’0,x’-1,x’-2,分别表示移位17,18,19次的结果。我们只需要关心下一拍的更新逻辑!

image.png

image.png

所以根据 M 10 M^{10} M10我们可以得到如下更新逻辑:

x 7 ′ = x 4 ⊕ x 3 x 6 ′ = x 3 ⊕ x 2 x 5 ′ = x 2 ⊕ x 1 x 4 ′ = x 7 ⊕ x 6 ⊕ x 1 x 3 ′ = x 7 ⊕ x 5 x 2 ′ = x 6 ⊕ x 4 x 1 ′ = x 5 ⊕ x 3 x 0 ′ = x 4 ⊕ x 2 x − 1 ′ = x 3 ⊕ x 1 x − 2 ′ = x 7 ⊕ x 6 ⊕ x 2 \begin{align} x'_7 &= x_4 \oplus x_3 \\ x'_6 &= x_3 \oplus x_2 \\ x'_5 &= x_2 \oplus x_1 \\ x'_4 &= x_7 \oplus x_6 \oplus x_1 \\ x'_3 &= x_7 \oplus x_5 \\ x'_2 &= x_6 \oplus x_4 \\ x'_1 &= x_5 \oplus x_3\\ x'_0 &= x_4 \oplus x_2\\ x'_{-1} &= x_3 \oplus x_1\\ x'_{-2} &= x_7 \oplus x_6 \oplus x_2 \\ \end{align} x7x6x5x4x3x2x1x0x1x2=x4x3=x3x2=x2x1=x7x6x1=x7x5=x6x4=x5x3=x4x2=x3x1=x7x6x2

同理对于其他PRBS,都可以生成任意比特的输出。

原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/363356.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

win10查看Nvidia显卡、cuda版本

通过cmd命令行查看 打开cmd命令行窗口,在命令行输入: nvidia-smi 即可看到相应的显卡信息,以及显卡支持的cuda版本。 如下图所示,可以看到显卡是"GeForce CTX 1650",cuda版本是11.7

Mac brew教程

一、安装brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"二、查看brew版本 brew -vbrew -v 三、搜索软件 命令格式:brew search 软件名 eg: brew search nginx四、安装软件 命令格…

Springboot + EasyExcel + Vue 实现excel下载功能

一、添加EasyExcel依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.2</version></dependency> 二、后端代码示例 controller&#xff1a; GetMapping("/download&quo…

SwiftUI 动画入门之一:路径动画(Path Animations)

概览 在 SwiftUI 的开发中,我们往往需要使用千姿百态的动画把我们的界面元素妆点的更加鲜活灵动。 如上图所示,我们使用路径动画使折线图更加生动了!这是怎么做到的呢? 在本篇博文中,您将学到以下内容: 概览1. 路径与形状(Path and Shape)2. 路径动画的原理3. 让路径…

Springboot 批量增加redis中的数据,并批量设置过期时间

1. 背景 一个功能需要一次性解析大量数据放到 Redis 中缓存&#xff0c;并且每个 key 都需要设置过期时间&#xff0c;但是 Redis 本身命令不支持批量设置过期时间&#xff0c;RedisTemplate 中也没有相关的方法。 2. 实现方式 1. RedisTemplate 使用 redisTemplate.opsForV…

工业物联网接入网关在制造企业的实际应用-天拓四方

随着工业4.0和智能制造的兴起&#xff0c;工业物联网&#xff08;IIoT&#xff09;已成为工厂自动化的关键驱动力。在这个转变中&#xff0c;工业物联网网关扮演着至关重要的角色。它们充当了设备与企业系统之间的桥梁&#xff0c;实现了数据采集、分析和设备控制等功能。 案例…

linux安装mysql客户端--极速成功版

翻了无数个帖子都没有安装好&#xff0c;遇到了各种各样奇奇怪怪的问题。结果看了菜鸟教程的步骤&#xff0c;一路顺利&#xff0c;5分钟装完。 1、安装前&#xff0c;检测系统是否自带安装 MySQL rpm -qa | grep mysql2、安装mysql 下载 wget http://repo.mysql.com/mysql-…

Modbus协议学习第六篇之基于libmodbus库的示例程序(可以联合Modbus模拟仿真软件进行调试)

前置工作 学了这么多Modbus的知识&#xff0c;如果不进行实际的操作&#xff0c;总感觉懂的不透彻。基于此&#xff0c; 本篇博文就带各位读者来了解下如何通过编写程序来模拟与Modbus Slave仿真软件的通讯。当然了&#xff0c;这里有两个前提&#xff0c;如下&#xff1a; 1.请…

【AutoCAD2023】删除验证组件+桌面应用程序+登陆组件方法

Autodesk删除验证组件桌面应用程序登陆组件方法&#xff1a; :: 建议在安装前找到官方安装包释放后的安装文件所在位置 例如&#xff1a;AutoCAD_2023_Simplified_Chinese_Win_64bit_dlm 删除验证组件Autodesk Genuine Service -> x64\AGS (必删) 删除桌面程序Autodesk Desk…

2023安防行业十件大事,一定有你关心的

2023年对我国安防行业来说&#xff0c;可以说是既充满希望又充满不确定性的一年。经历三年的市场低迷&#xff0c;2023年安防市场开始逐渐回暖&#xff0c;行业景气度缓慢上升。 那么&#xff0c;2023年我国安防行业都发生了哪些值得铭记的大事&#xff1f;哪些事件对安防产业…

浏览器内存泄漏排查指南

1、setTimeout执行原理 使用setInterval/setTimeOut遇到的坑 - 掘金 2、Chrome自带的Performance工具 当我们怀疑页面发生了内存泄漏的时候&#xff0c;可以先用Performance录制一段时间内页面的内存变化。 点击开始录制执行可能引起内存泄漏的操作点击停止录制 如果录制结束…

实现vue3响应式系统核心-shallowReactive

简介 今天来实现一下 shallowReactive 这个 API。 reactive函数是一个深响应&#xff0c;当你取出的值为对象类型&#xff0c;需要再次调用 reactive进行响应式处理。很明显我们目前的代码是一个浅响应&#xff0c;即 只代理了对象的第一层&#xff0c;也就是 shallowReactiv…

wespeaker项目grpc-java客户端开发

非常重要的原始参考资料&#xff1a; 链接: triton-inference-server/client github/grpc java ps&#xff1a; 使用grpc协议的其它项目python/go可以参考git hub目录client/tree/main/src/grpc_generated下的其它项目 其它链接&#xff1a; 想要系统了解triton-inference-ser…

#《AI中文版》V3 第 3 章 知情搜索

参考链接&#xff1a; [1] 开源内容&#xff1a;https://github.com/siyuxin/AI-3rd-edition-notes [2] Kimi Chat官网链接 正文笔记 P90 针对 大型问题。 知情搜索&#xff08;informed search&#xff0c;也称有信息搜索&#xff09;&#xff1a;利用启发式方法&#xff0c…

新版多功能去水印工具微信小程序源码下载+带流量主功能

新版多功能去水印工具微信小程序源码下载&#xff0c;带流量主功能。自带去水印接口的多功能小程序&#xff0c;支持各大平台短视频去水印。 支持保存封面、图集、标题等等&#xff1b;支持本地图片去水印&#xff1b;支持图片拼接&#xff1b;支持九宫格切图&#xff1b;支持…

如何实现任意设备远程SSH访问Deepin操作系统【内网穿透】

文章目录 推荐前言1. 开启SSH服务2. Deppin安装Cpolar3. 配置ssh公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击跳…

三、软硬件工作流程分析

现在的计算机主要是由两部分组成&#xff1a;软件系统和硬件系统。这里先捋清楚硬件和软件的关系&#xff0c;以及电脑 各个组成部分是如何配合工作的。 软件系统主要被分类为两大类&#xff1a; 系统软件&#xff1a;这包括操作系统&#xff0c;如Windows、Linux等。操作系统是…

果冻跳跃

欢迎来到程序小院 果冻跳跃 玩法&#xff1a;点击果冻跳跃&#xff0c;果冻会消失掉&#xff0c;果冻只能跳一个果冻的距离高度&#xff0c;共36关卡&#xff0c; 不同关卡有不同的跳板&#xff0c;快去闯关吧^^。开始游戏https://www.ormcc.com/play/gameStart/265 html <…

【全csdn最前沿LVGL9】按钮的使用(lv_button)、标签的使用(lv_label)

文章目录 前言一、按钮概述二、按钮的使用2.1 创建一个按钮2.2 按钮的样式 三、标签概述四、标签的使用4.1 创建一个标签4.2 样式4.3 设置文本4.4 长文本模式4.5 文本选择4.6 文本对齐4.7 非常长的文本4.8 字体设置字体支持的Unicode字符字体列表特殊的字体 总结 前言 欢迎来到…

CXO清单:低代码平台必备的16个基本功能:从需求到实现的全面指南

对于 CIO、CTO 和 CDO&#xff08;在此统称为 CXO&#xff09;来说&#xff0c;认识到快速变化的技术和竞争格局以及他们在组织中的角色变化至关重要。处理持续不断的软件开发请求、考虑不断变化的业务流程、提高客户和法规的透明度、提高企业数据安全性以及在短时间内扩展基础…