使用MATLAB生成任何需要的伪随机码(PN码)

这篇具有很好参考价值的文章主要介绍了使用MATLAB生成任何需要的伪随机码(PN码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一. 引言

二. 用matlab生成伪随机序列


一. 引言

                伪随机码(PN码),只包含0和1,是一种人为随机创造的随机序列。应用范围广,通信中经常使用到,比如伪码测距等。为了验证所给的生成函数是否正确,经常需要使用matlab仿真查看所生成的随机序列。

二. 用matlab生成伪随机序列

        下面是我使用的生成方法:

clear;
clc;
fbconnection=[0 1 0 1 1 1 1 1]; % fbconnection为m序列的一个生成多项式 f(x)=X8+X6+X4+X3+X2+X1+1;实际要看给的发生器框图
mseq=m_sequence(fbconnection);
disp(mseq);
save('PNdata.dat','mseq'); %保存为.dat文件,可以用BES打开

%生成coe文件
n=length(fbconnection);
N=2^n-1; %循环周期
a=randi([0,1],1,1024);
fid=fopen('PNData1.coe','w');
fprintf(fid,'memory_initialization_radix=2;\n'); %memory_initialization_radix=a中a表示进制数,例如二进制即a=2,四进制a=4;
fprintf(fid,'memory_initialization_vector=\n'); %memory_initialization_vector=后接的是数值格式,若randix=a中,a=2,则vector中只能是二进制数
for i=1:255
    fprintf(fid,'%d,\n',mseq(i));
end
fprintf(fid,'%d,\n',mseq(N));

%定义伪码生成函数
function mseq=m_sequence(fbconnection)
         n=length(fbconnection);
         N=2^n-1; %循环周期
         register=[1,1,1,1,1,1,1,1];%初相FFFF  正序:register=[x1,x2,x3,x4,x5,x6,x7,x8]
         mseq(1)=register(n);                               
         for i=2:N
             NewRegister(1)=mod(sum(fbconnection.*register),2); % .* 按位乘 sum(A,2) 是包含每一行总和的列向量。 
             for j=2:n                                          % sum(a),求a中数据的和。mod(a,2),求a除以2的余数,保证输出0或者1。
                 NewRegister(j)=register(j-1); %确定好register(1)后,其他位循环右移                  
             end
             register=NewRegister;
             mseq(i)=register(n);
         end
end

        可以生成.dat文件和.coe文件。.dat可以用查看帧的软件查看,比如BES,主要是为了方便使用十六进制。.coe文件可以使用notepad++查看,主要是为了FPGA开发使用,也可以验证生成的对不对。同时我也用了disp函数把伪随机序列打印在控制台,方便对比和查看。

        只需要修改生成多项式和初相,就可以生成任何伪随机序列。文章来源地址https://www.toymoban.com/news/detail-513761.html

到了这里,关于使用MATLAB生成任何需要的伪随机码(PN码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 随机生成矩阵,在0~10之间,matlab代码

    你可以使用 rand 函数来随机生成矩阵。rand 函数会生成一个指定行列数的矩阵,里面的数字都在 0 到 1 之间。例如,下面的代码会生成一个 3 行 4 列的矩阵: 如果你想要生成 0 到 10 之间的随机数,你可以将 rand 函数和数学运算符结合使用。例如,下面的代码会生成一个 3 行

    2024年02月13日
    浏览(31)
  • 【安全密钥交换协议】基尔霍夫定律-约翰逊噪声(KLJN)方案的随机数生成器攻击研究(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 2.1 算例1 2.2 算例2  2.3 算例3 🎉3 参考文

    2024年02月04日
    浏览(46)
  • 【安全密钥】对基尔霍夫-洛-约翰逊噪声(KLJN)安全密钥交换协议的统计随机数生成器攻击(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码、数据、文章

    2024年04月12日
    浏览(43)
  • 使用 NumPy 随机生成矩阵

    使用 NumPy 随机生成矩阵 在科学计算领域中,随机数生成是一种常见的需求。在 Python 中,NumPy 库提供了众多生成随机矩阵的函数,可以轻松地实现随机数生成。本文将详细介绍 NumPy 中生成随机矩阵的各种方法。 np.random.rand() np.random.rand() 函数用于返回 [0, 1) 之间的随机浮点数

    2024年02月03日
    浏览(34)
  • PostgreSQL不使用扩展,生成随机int8值,生成均匀分布的随机int8值

    在PostgreSQL中,可以使用 pgcrypto 扩展提供的函数 gen_random_uuid() 生成随机的UUID(Universally Unique Identifier),其中包含8字节随机整数(int8值),如下所示: 上述SQL语句使用 gen_random_uuid() 函数生成随机UUID,并将其转换为字符串类型。然后,使用 substring() 函数从字符串中提取前

    2024年02月09日
    浏览(38)
  • matlab使用教程(11)—创建随机数

            MATLAB 使用算法来生成伪随机数和伪独立数。这些数在数学意义上并非严格随机和独立的,但它们能够通过各种随机和独立统计测试,并且其计算可以重复,方便用于测试或诊断目的。 rand 、 randi 、 randn 和 randperm 函数是创建随机数数组的主要函数。 rng 函数允许您

    2024年02月14日
    浏览(29)
  • 使用Unsplash API生成随机图片

    示例如下: 可以从特定用户账号中生成随机图像。URL格式如下 点击示例1 https://source.unsplash.com/user/angusyang9/likes 设置要生成的图像的大小,实例如下: 点击示例2 https://source.unsplash.com/random/300×300 点击示例3 https://source.unsplash.com/random/?city,night 点击示例4 https://source.unsplash.com/

    2024年02月15日
    浏览(39)
  • 如何使用Verilog生成随机数

    输入:时钟信号,复位信号,重新加载信号,种子 输出:随机数 输入一个种子32位,输出16位随机数;选取时钟,复位,重新加载种子。 // 使用32个逻辑单元用于D触发器/加法器和8个DSP块用于32x18=32位乘法 module c_rand (   input clk,         // 时钟输入   input rst,        

    2024年02月03日
    浏览(30)
  • 不需要任何插件,纯 CSS 就能打造炫酷文字特效

    现如今网页越来越趋近于动画,相信大家平时浏览网页或多或少都能看到一些动画效果,今天我们来做一些文字上面的动画效果,下面一起看看吧。 实现效果 实现思路 其实主要就是通过 animation 添加动画属性,利用 keyframes 来描述动画的开始、过程和结束的状态,核心就是

    2024年02月01日
    浏览(33)
  • 使用java.security.SecureRandom安全生成随机数和随机字符串工具类

            在Java中,可以使用java.security.SecureRandom和java.util.Random类来生成随机数,但是它们之间有以下区别:         1、随机性强度: SecureRandom 类提供了更高的随机性强度。它使用了更安全的算法和种子生成器,以提供更高质量的随机数。这对于需要高度安全性的应用程

    2024年04月26日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包