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

Matlab生成prbs7的代码

最近的一个客户需求,客户想看一下我们的产品产生的prbs并进行一些分析。

我在“”豆包“”这里找到了一个pbs的matlab的生成程序,效果就是连续生成prbs7,然后每次都在原来的基础之上添加。

生成的matlab的PRBS7代码修改如下:

% 初始化寄存器
registers = zeros(1, 7);
registers(1) = 1;
registers(2) = 1;
registers(3) = 1;
registers(4) = 1;
registers(5) = 1;
registers(6) = 1;
registers(7) = 1;% 生成 PRBS7 序列
output = zeros(1, 127);
for i = 1:127output(i) = registers(7);temp = registers(6);for j = 7:-1:2registers(j) = registers(j - 1);endregisters(1) = xor(output(i), temp);
end% 将二进制序列转换为十六进制字符串
% 这里存在几个问题:% 1. num2str() 函数会在数字之间添加空格,这会导致 bin2dec() 无法正确解析
% 2. bin2dec() 函数只能处理最多 52 位的二进制数,而我们有 127 位
% 3. 直接将整个序列转换为十进制再转十六进制可能会导致精度损失% 正确的方法应该是每 4 位二进制数转换为一个十六进制字符
hexOutput = '';
for i = 1:4:length(output)chunk = output(i:min(i+3, end));if length(chunk) < 4chunk = [chunk, zeros(1, 4-length(chunk))];  % 补零endhexDigit = dec2hex(bin2dec(num2str(chunk, '%d')));hexOutput = [hexOutput, hexDigit];
end% 将十六进制内容保存到 txt 文件
fid = fopen('PRBS7_hex_output.txt', 'a+');
fprintf(fid, '%s\n', hexOutput);
fclose(fid);

效果:

分析:

1.从生成的数据可知,每次Prbs7生成的内容都是一样的。


http://www.mrgr.cn/news/28260.html

相关文章:

  • 基于RK3568+FPGA的1U/2U电力通讯管理机电力网关解决方案
  • 探索Python编程:从入门到进阶的奇妙之旅
  • AI 写作(九)实战项目二:智能新闻报道(9/10)
  • Stable Diffusion WebUI或ComfyUI下载不了huggingface?修改huggingface为国内镜像地址方法在这里
  • Keithley吉时利2612B数字源表
  • 【Linux】进程的概念
  • 双指针算法专题(2)
  • 大模型参数高效微调技术原理综述(八)-MAM Adapter、UniPELT
  • 使用 SuperCraft AI 设计书橱模型的指南
  • 数据结构(2):LinkedList和链表[2]
  • python使用Pyvis库绘制B站评论互动网络结构图
  • Linux学习之路 - 线程概念补充理解
  • dll修复工具4DDiG DLL Fixer,解决电脑dll丢失问题
  • Multisim的使用
  • 通过解预测和机器学习促进蚁群优化
  • fiddler抓包01:工具介绍
  • 数据结构——串的定义及存储结构
  • cmake--target_link_libraries
  • 【机器学习】:解锁数据背后的智慧宝藏——深度探索与未来展望
  • 修改状态的标准模版
  • 12.java构造器
  • C:字符串函数(续)-学习笔记
  • 202. 快乐数
  • 报错 - undefined reference to `main‘
  • 动态规划day33|62. 不同路径、63. 不同路径 II(对障碍物的处理)、343. 整数拆分(理解有难度)
  • C语言 ——— 编写代码,将一个长整数用逗号隔开,每3位一个逗号,并输出打印