序列的产生

序列的产生
序列的产生

实验一:信号的时域分析——波形的产生及MATLAB 实现

一、实验目的

1、熟悉单位脉冲序列、单位阶跃序列、矩形序列和方波及三角波的产生。

2、掌握利用MATLAB 画图函数显示信号波形的方法。

3、熟悉离散时间信号的翻转、移位和尺度变换等运算

二、实验内容

1、利用MATLAB 分别产生并显示下列序列

(1)单位脉冲序列???≠==0

,00,1n n n )(δ (2)单位阶跃序列?

??<≥=0,00,1)(n n n u (3)矩形序列?

??-><-≤≤=10,010,1)(N n n N n n R N 或 2、利用MATLAB 分别产生并显示下列周期波形。

(1)幅度为1,脉冲宽度占空比duty=1/2,周期T=6的周期方波脉冲信号;

(2)幅度为±1,周期T=4的三角波脉冲.

三、MATLAB 实验

上机实验时,用WINDOWS 操作系统的记事本或用MA TLAB 提供的编辑器,逐行输入下列语句,然后以*.m 存盘,其中m 为后缀名。所有MA TLAB 的程序都必须以m 作为后缀名保存。在MATLAB 命令窗口,改变当前路径至存有*.m 的目录,可用dir 命令检验。最后,在MA TLAB 命令窗口敲入文件名并回车,则可得到运行结果。

例一:单位脉冲序列的产生

n=[-3:3];xn=[(n-0)==0]; %序列的起点为-3,终点为3,在n=0处生成一个单位脉

冲;

subplot(3,2,1);stem(n,xn,'.'); %stem :离散序列绘图指令;

line([-3,3],[0,0]) %创建直线;

axis([-3,3,0,1]); %控制坐标轴比例和外观;

xlabel('n');ylabel('x(n)') %X 轴和Y 轴标注;

例二:单位阶跃序列的产生

n=[-10:10];xn=[(n-0)>=0]; %序列的起点为-10,终点为10,在n=0处生成一个单位阶跃;

subplot(3,2,1);stem(n,xn,'.');line([-10,10],[0,0])

axis([-10,10,0,1]);

xlabel('n');ylabel('x(n)')

例三:矩形序列的产生

clear,close all %清除所有程序;

n=[-10:10];xn1=[(n-0)>=0];

xn2=[(n-5)>=0]; %定义两个阶跃序列;

xn=xn1-xn2; %两个阶跃序列之差得到矩形序列;

subplot(3,2,1);stem(n,xn,'.');line([-10,10],[0,0])

axis([-10,10,0,1]);

xlabel('n');ylabel('x(n)')

例四:幅度为1,脉冲宽度占空比duty=50,%周期T=5的周期方波脉冲信号的产生。

T=5,t=-2*T:0.01:2*T;duty=50; %duty—信号为正的区域在一个周期内所占的百分比;x=square(t,duty);

subplot(2,2,1)

plot(t,x)

title('连续时间函数-周期方波脉冲') %title—标出图名;

axis([-10,10,-1.2,1.2])

line([-10,10],[0,0])

例五:幅度为±1,周期T=4的三角波脉冲信号的产生

T=4;t=-2.5*T:0.01:2.5*T;

x=sawtooth(t-2*T/3,0.5); %sawtooth(x,width):三角波函数,width为该位置的横坐标和周期的

比值(0-1的标量)。width=1时产生锯齿波,width=0.5时产生标准对称三角波;subplot(3,3,1);

plot(t,x);

title('周期三角波脉冲,T=4')

axis([-10,10,-1.2,1.2]);

line([-10,10],[0,0])

伪随机序列的产生及应用设计-通信原理课程设计

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:信息工程学院 题目:伪随机序列的产生及应用设计 初始条件: 具备通信课程的理论知识;具备模拟与数字电路基本电路的设计能力;掌握通信电路的设计知识,掌握通信电路的基本调试方法;自选相关电子器件;可以使用实验室仪器调试。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、设计伪随机码电路:产生八位伪随机序列(如M序列、Gold 序列等); 2、了解D/A的工作原理及使用方法,将伪随机序列输入D/A中(如 DAC0808),观察其模拟信号的特性; 3、分析信号源的特点,使用EWB软件进行仿真; 4、进行系统仿真,调试并完成符合要求的课程设计说明书。 时间安排: 二十二周一周,其中3天硬件设计,2天硬件调试 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要................................................................................................................................ I 1理论基础知识 (1) 1.1伪随机序列 (1) 1.1.1伪随机序列定义及应用 (1) 1.1.2 m序列产生器 (2) 1.2芯片介绍 (4) 1.2.1移位寄存器74LS194. (4) 1.2.2移位寄存器74LS164 (5) 1.2.3 D/A转换器DAC0808 (6) 2 EWB软件介绍 (8) 3设计方案 (9) 4 EWB仿真 (11) 5电路的安装焊接与调试 (13) 6课程设计心得体会 (14) 参考文献 (15) 附录1 (16)

伪随机序列的产生与仿真

基于MATLAB 的伪随机序列的产生 及相关特性的仿真 一、相关概念: 平稳随机过程的各态历经性, 随机信号的频谱特性, 自相关函数, 互相关函数 二、工程背景与理论基础 根据香农的理论,在高斯白噪声干扰情况下,在平均功率受限的信道上,实现有效和可靠通信的最佳信号是具有白噪声统计特性的信号。扩频通信正是由此而来的,在扩频通信最大的优点就是具有强大的抗噪声性能,使有用信号几乎可以淹没在噪声传播。 故扩频通信对扩频序列一般有如下要求: (1)尖锐的自相关特性 (2)尽可能小的互相关值 (3)足够多的序列数,具有良好的伪随机性 (4)序列均衡性好,0、1等概 (5)工程上易于实现 伪随机序列具有以上所以有点,故在CDMA 扩频通信系统中,伪随机序列被作为扩频码之一。下面在理论上阐述下伪随机序列(即m 序列)的产生原理及其所具有的相关数学性质。然后在用MATLAB 语言实现m 序列的产生,并就其相关特性进行仿真,仿真结果结果表明该方法是可行的。 1、 m 序列简单介绍 m 序列是最长线性反馈移位寄存器序列的简称,是由带线性反馈的移位寄存器的周期最长的序列。它是周期为r N=2-1的伪随机序列,r 是移位寄存器的阶数。 下面是IS-95CDMA 系统中I 信道引导PN 序列的生成多项式和线性反馈移位寄存器的框图。 I 支路生成表达式:15139875()1I P x x x x x x x =++++++ 123456789101112131415 输出 图1-1 I 路信号产生器 m 序列具有以下基本性质: (1)均衡性:在m 序列的一个周期中,“1”的个数之比“0”的个数多一个。这表明序列平均性很好,即“1”和“0”几乎就是随机出现的,具有较好的随机性。 (2)具有尖锐的自相关特性,相互不同码字之间几乎是完成正交的。 周期函数的自相关函数定义为:/2/201R()()()T s s T T s t s t dt ττ-=+?,式中0T 是s()t 的周期。

随机数生成方法、随机数生成法比较以及检验生成的随机序列的随机性的方法讲义

摘要 摘要 本文着重讨论了随机数生成方法、随机数生成法比较以及检验生成的随机序列的随机性的方法。 在随机序列生成方面,本文讨论了平方取中法、斐波那契法、滞后斐波那契法、移位法、线性同余法、非线性同余法、取小数法等,并比较了各方法的优劣性。 在统计检验方面,介绍了统计检验的方法,并用其检验几种随机数生成器生成的随机数的随机性。 最后介绍了两种新的随机数生成法,并统计检验了生成随机序列的随机性。关键词:随机数,随机数生成法,统计检验 I

ABSTRACT ABSTRACT This article focuses on methods of random number generator, random number generation method comparison and test the randomness of the generated random sequence method. In random sequence generation, the article discusses the square method, Fibonacci method, lagged Fibonacci method, the shift method, linear congruential method, linear congruence method, taking minority law, and Comparison of advantages and disadvantages of each method. In statistical test, the introduction of the statistical test method, and used to test some random number generator random random numbers generated. Finally, two new random number generation method, and statistical tests of randomness to generate a random sequence. Key Words: random number,random number generator,statistical test II

一种新的混沌伪随机序列生成方式

第28卷第7期电子与信息学报V ol.28No.7 2006年7月 Journal of Electronics & Information Technology Jul.2006 一种新的混沌伪随机序列生成方式 罗启彬 张 健 (中国工程物理研究院电子工程研究所绵阳 621900) 摘要利用构造的Hybrid混沌映射,通过周期性改变混沌迭代初值来产生混沌伪随机序列。理论和统计分析可知,该混沌序列的各项特性均满足伪随机序列的要求,产生方法简单,具有较高的安全性和保密性,是一类很有应用前景的伪随机加密序列。 关键词混沌序列, 加密, Lyapunov指数,自相关 中图分类号:TN918 文献标识码:A 文章编号:1009-5896(2006)07-1262-04 A New Approach to Generate Chaotic Pseudo-random Sequence Luo Qi-bin Zhang Jian (Institute of Electronic Engineering, CAEP, Mianyang 621900,China) Abstract This paper proposes hybrid mapping to generate chaotic sequence, by altering initial value periodically. The results show that the properties of the hybrid chaotic sequence are good,and the sequence generator can be easily realized. It is a class of promising pseudo-random sequence in practical applications. Key words Chaotic sequence, Encryption, Lyapunov exponent, Auto-correlation 1 引言 混沌序列是一种性能优良的伪随机序列,其来源丰富,生成方法简单。通过映射函数、生成规则以及初始条件便能确定一个几乎无法破译的加密序列。因此,混沌加密受到越来越多的关注,近年来被广泛应用于保密通信领域[1-4]。 将混沌理论应用于流密码是1989年由Matthews[5]最先提出。迄今为止,利用混沌映射产生随机序列的理论研究很多。但是,混沌序列发生器总是用有限精度来实现,其特性由于有限精度效应会与理论结果大相径庭。因此,有限精度效应是混沌序列从理论走向应用的主要障碍。文献[6]用m 序列与产生的混沌序列“异或”来克服有限精度的影响,但由于微扰是随机的,不易产生,而且系统分布以及相关性能取决于附加的m序列而不是混沌系统本身。文献[7]通过构造变参数复合混沌系统来实现有限精度混沌系统。本文利用构造的分段非线性Hybrid映射,通过周期性地改变混沌迭代初值的办法来产生混沌序列,克服了序列有限精度效应的影响。计算机数值实验表明所产生的混沌序列的各项特性均较好,产生方法简单,具有较高的安全性,是一类很有应用前景的伪随机加密序列。 本文第2节给出了混沌随机序列发生器的产生过程,在此基础上讨论了混沌系统的扰动问题;第4节通过计算机仿真来验证所产生的混沌伪随机序列的性质;最后是结论。 2004-11-22收到,2005-08-08改回 中国工程物理研究院科学技术基金面上资助课题(20050429) 2 序列产生 由于Logistic映射和Tent映射的复杂度都不高,由此产生的混沌加密序列的安全性能都不是非常理想。本文把两者相结合,构造出一种新的混沌迭代映射——Hybrid映射: 2 1 1 2 (1)10 =()= 1, 0<1 k k k k k k b u x x x f x u x x + ???<≤ ? ? ?< ?? , (1) 该映射不但继承了Logistic映射和Tent映射容易产生的特点,而且还能增加混沌系统的安全性。 当初值x0=0.82,u1=1.8,u2=2.0,b=0.85时,此映射处于混沌态,产生的混沌序列如图1所示,其中横轴是迭代次数k,纵轴是经不断迭代得到的混沌状态空间变量x(k)。图1(a)为初值等于0.82的Hybrid混沌映射时序图,图1(b)为Hybrid映射对迭代初值高度敏感性的示意图(初值相差10-15)。 图1 (a) Hybrid mapping 的随机特性 (b) Hybrid mapping 对初值的敏感特性 Fig.1 (a) Randomicity of Hybrid mapping (b) Sensitivity of Hybrid mapping 把生成的实值混沌随机序列{x k}转化为二进制随机序列{S k},按如下方法实施:

伪随机序列m和M的生成算法实现

m-M 文档 1 相关概念 随机序列:可以预先确定又不能重复实现的序列 伪随机序列:具有随机特性,貌似随机序列的确定序列。 n 级线性移位寄存器,能产生的最大可能周期是21n p =-的序列,这样的序列称为m 序列。 n 级非线性移位寄存器,能产生的最大周期是2n 的序列,这样的序列称为M 序列。 图1线性移位寄存器 线性移位寄存器递推公式 11221101 n n n n n n i n i i a c a c a c a c a c a ----==++++= ∑ 线性移位寄存器的特征方程式 010 ()n n i n i i f x c c x c x c x ==+++= ∑ ,ci 取值为0或1 定义 若一个n 次多项式f (x )满足下列条件: (1) f (x )为既约多项式(即不能分解因式的多项式); (2) f (x )可整除(x p +1), p =2n -1; (3) f (x )除不尽(x q +1), q

由抽象代数理论可以证明,若α是n 次本原多项式()f x 的根,则集合2 2 {0,1,}n F α-= 可 构成一个有限的扩域(2)n G F 。F 中的任一元素都可表示为1110n n a a a αα--+++ ,这样n 个分量的有序序列110(,,,)n a a a - 就可表示F 中的任一元素。 若既约多项式()f x 的根能够形成扩域(2)n G F ,则该多项式是本原多项式,否则不是本原多项式。 2.2 二元域(2)GF 上的本原多项式算法实现 (2)GF 上n 次多项式的通式为 1 2 1210()...n n n n n f x x a x a x a x a ----=++++,系数是二元域上的元素(0,1) 既约多项式既不能整除,1x x +,0和1不可能是()f x 的根,即0a =1, ()f x 的项数一定为奇数。 另外,一个既约多项式是否能形成(2)n G F ,从而判断它是否为本原多项式。N 次多项式的扩域,其中,120,1,,,n ααα 一定在扩域中,需要判断的是12 2 ,n n αα+- 是否也在扩域 中,从而形成全部扩域(2)n G F ,若在,则该n 次既约多项式是本原多项式,否则不是。 (1)给定二元多项式 1 2 1210()...n n n n n f x x a x a x a x a ----=++++,01a = 设α是f(x)扩域中的一个元素,且f(α)=0则有: n n-1 n-11=a ++a +1αα α (1) (2)从n α开始,计算α的连续幂。在计算过程中,当遇到α的幂次为n 时,将(1)代入,一直计算到n 2 -2 α (形成GF (2n )),再计算n 2 -1 α 。若n 2-1 α =1,则证明()f x 能被n 21 x 1-+整 除,而不能整除1q x +(21n q <-),判定为本原多项式。在计算α的连续幂过程中,若 q x =1(21n q <-),则证明()f x 能被1q x +整除,判定为非本原多项式,停止计算。 在计算机实现时,n 个分量的有序序列110(,,)n a αα- 与α的任一连续幂有着一一对应的 关系,可以用有序序列110(,,)n a αα- 来表示α的任一连续幂。q α用110(,,)q q q n a αα- 来

EXCEL随机数据生成方法

求教:我的电子表格中rand()函数的取值范围是-1到1,如何改回1到0 回答:有两种修改办法: 是[1-rand()]/2, 或[1+rand()]/2。 效果是一样的,都可生成0到1之间的随机数 电子表格中RAND()函数的取值范围是0到1,公式如下: =RAND() 如果取值范围是1到2,公式如下: =RAND()*(2-1)+1 RAND( ) 注解: 若要生成a 与b 之间的随机实数: =RAND()*(b-a)+a 如果要使用函数RAND 生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=RAND()”,保持编辑状态,然后按F9,将公式永久性地改为随机数。 示例 RAND() 介于0 到1 之间的一个随机数(变量) =RAND()*100 大于等于0 但小于100 的一个随机数(变量) excel产生60-70随机数公式 =RAND()*10+60 要取整可以用=int(RAND()*10+60) 我想用excel在B1单元个里创建一个50-80的随机数且这个随机数要大于A1单元个里的数值,请教大家如何编写公式! 整数:=ROUND(RAND()*(80-MAX(50,A1+1))+MAX(50,A1+1),0) 无需取整数:=RAND()*(80-MAX(50,A1))+MAX(50,A1)

要求: 1,小数保留0.1 2,1000-1100范围 3,不要出现重复 =LEFT(RAND()*100+1000,6) 至于不许重复 你可以设置数据有效性 在数据-有效性设 =countif(a:a,a1)=1 选中a列设有效性就好了 其他列耶可以 急求excel随机生成数字的公式,取值要在38.90-44.03之间,不允许重复出现,保留两位小数,不允许变藏 =round(RAND()*5+38.9,2) 公式下拉 Excel随机数 Excel具有强大的函数功能,使用Excel函数,可以轻松在Excel表格产生一系列随机数。 1、产生一个小于100的两位数的整数,输入公式=ROUNDUP(RAND()*100,0)。 RAND()这是一个随机函数,它的返回值是一个大于0且小于1的随机小数。ROUNDUP 函数是向上舍入数字,公式的意义就是将小数向上舍入到最接近的整数,再扩大100倍。 2、产生一个四位数N到M的随机数,输入公式=INT(RAND()*(M-N+1))+N。 这个公式中,INT函数是将数值向下取整为最接近的整数;因为四位数的随机数就是指从1000到9999之间的任一随机数,所以M为9999,N为1000。RAND()的值是一个大于0且小于1的随机小数,M-N+1是9000,乘以这个数就是将RAND()的值对其放大,用INT 函数取整后,再加上1000就可以得到这个范围内的随机数。[公式=INT(RAND()*(9999-1000+1))+1000] 3、Excel函数RANDBETWEEN是返回位于两个指定数之间的一个随机数。使用这一个函数来完成上面的问题就更为简单了。要使用这个函数,可能出现函数不可用,并返回错误值#NAME?。 选择"工具"菜单,单击"加载宏",在"可用加载宏"列表中,勾选"分析工具库",再单击"确定"。接下来系统将会安装并加载,可能会弹出提示需要安装源,也就是office安装盘。放入光盘,点击"确定",完成安装。 现在可以在单元格输入公式=RANDBETWEEN(1000,9999)。 最后,你可以将公式复制到所有需要产生随机数的单元格,每一次打开工作表,数据都会自动随机更新。在打开的工作表,也可以执行功能键F9,每按下一次,数据就会自动随机更新了。

随机数生成方法

University of Sydney School of Information Technologies Generating Random Variables Pseudo-Random Numbers Definition : A sequence of pseudo-random numbers ()i U is a deterministic sequence of numbers in []1,0 having the same relevant statistical properties as a sequence of random numbers. The most widely used method of generating pseudo-random numbers are the congruential generators: ()M X U M c aX X i i i i =+=?mod 1 for a multiplier a , shift c , and modulus M , all integers. The sequence is clearly periodic, with maximum period M . The values of a and c must be carefully chosen to maximise the period of the generator, and to ensure that the generator has good statistical properties. Some examples: M a c 259 1313 0 232 69069 1 231-1 630360016 0 232 2147001325 715136305 Reference: Ripley, Stochastic Simulation , Chapter 2

伪随机序列发生器

伪随机序列发生器 一、实验目的: 理解伪随机序列发生器的工作原理以及实现方法,掌握MATLAB\DSP BUILDER设计的基本步骤和方法。 二、实验条件: 1. 安装WindowsXP系统的PC机; 2. 安装QuartusII6.0 EDA软件; 的序列发生器,并通 ⒈ ⒉ ⒊⒋⒌⒍⒎⒏ ⒐ ⒑ ⒒⒓⒔⒕⒖⒗ 四、实验原理: 对于数字信号传输系统,传送的数字基带信号(一般是一个数字序列),由于载有信息,在时间上往往是不平均的(比如数字化的语音信号),对应的数字序列编码的特性,不利于数字信号的传输。对此,可以通过对数字基带信号预先进行“随机化”(加扰)处理,使得信号频谱在通带内平均化,改善数字信号的传输;然后在接受端进行解扰操作,恢复到原来的信号。伪随机序列广泛应用与这类加扰与解扰操作中。我们下面用DSP BUILDER来构建一中伪随机序列发生器——m序列发生器,这是一种很常见的伪随机序列发生器,可以由线性反馈器件来产生,如下图:

其特征多项式为: ()∑==n i i i x C x F 0 注:其中的乘法和加法运算都是模二运算,即逻辑与和逻辑或。 可以证明,对于一个n 次多项式,与其对应的随机序列的周期为。 12?n 接下来我们以为例,利用DSP BUILDER 构建这样一个伪随机序列发生器。 125++x x 开Simulink 浏览器。 Simulink 我们可以看到在Simulink 工作库中所安装的Altera DSP Builder 库。 2. 点击Simulink 的菜单File\New\Model 菜单项,新建一个空的模型文件。

一维正态分布随机数序列的产生方法

一维正态分布随机数序列的产生方法 一、文献综述 1.随机数的定义及产生方法 1).随机数的定义及性质 在连续型随机变量的分布中,最简单而且最基本的分布是单位均匀分布。由该分布抽取的简单子样称,随机数序列,其中每一个体称为随机数。 单位均匀分布也称为[0,1]上的均匀分布。 由于随机数在蒙特卡罗方法中占有极其重要的位置,我们用专门的符号ξ表示。由随机数序列的定义可知,ξ1,ξ2,…是相互独立且具有相同单位均匀分布的随机数序列。也就是说,独立性、均匀性是随机数必备的两个特点。 随机数具有非常重要的性质:对于任意自然数s,由s个随机数组成的 s维空间上的点(ξn+1,ξn+2,…ξn+s)在s维空间的单位立方体Gs上 均匀分布,即对任意的ai,如下等式成立: 其中P(·)表示事件·发生的概率。反之,如果随机变量序列ξ1, ξ2…对于任意自然数s,由s个元素所组成的s维空间上的点(ξn+1,…ξn+s)在Gs上均匀分布,则它们是随机数序列。 由于随机数在蒙特卡罗方法中所处的特殊地位,它们虽然也属于由具有已知分布的总体中产生简单子样的问题,但就产生方法而言,却有着本质上的差别。 2).随机数表 为了产生随机数,可以使用随机数表。随机数表是由0,1,…,9十个数字组成,每个数字以0.1的等概率出现,数字之间相互独立。这些数字序列叫作随机数字序列。如果要得到n位有效数字的随机数,只需将表中每n 个相邻的随机数字合并在一起,且在最高位的前边加上小数点即可。例如,某随机数表的第一行数字为7634258910…,要想得到三位有效数字的随机数依次为0.763,0.425,0.891。因为随机数表需在计算机中占有很大内存, 而且也难以满足蒙特卡罗方法对随机数需要量非常大的要求,因此,该方法不适于在计算机上使用。 3).物理方法

伪随机序列

目录 伪随机序列 (2) 1 基本原理 (2) 1.1 背景 (2) 1.2 实现原理 (2) 2 实现方式 (3) 3 FPGA的实现 (5) 3.1 设计思路 (5) 3.2 代码实现分析 (5) 3.2.1斐波那契方式 (5) 3.2.2伽罗瓦方式 (9) 4 总结 (12)

伪随机序列 1 基本原理 1.1 背景 随着通信技术的发展,在某些情况下,为了实现最有效的通信应采用具有白噪声统计特性的信号;为了实现高可靠的保密通信,也希望利用随机噪声;另外在测试领域,大量的需要使用随机噪声来作为检测系统性能的测试信号。然而,利用随机噪声的最大困难是它难以重复再生和处理。伪随机序列的出现为人们解决了这一难题。伪随机序列具有类似于随机噪声的一些统计特性,同时又便于重复产生和处理,有预先的可确定性和可重复性。由于它的这些优点,在通信、雷达、导航以及密码学等重要的技术领域中伪随机序列获得了广泛的应用。而在近年来的发展中,它的应用范围远远超出了上述的领域,如计算机系统模拟、数字系统中的误码测试、声学和光学测量、数值式跟踪和测距系统等也都有着广阔的使用。 伪随机序列通常由反馈移位寄存器产生,又可分为线性反馈移位寄存器和非线性反馈移位寄存器两类。由线性反馈移位寄存器产生出的周期最长的二进制数字序列称为最大长度线性反馈移位寄存器,即为通常说的m序列,因其理论成熟,实现简单,应用较为广泛。 m序列的特点: (1)每个周期中,“1”码出现2n-1次,“0”码出现2n-1次,即0、1出现概率几乎相等。 (2)序列中连1的数目是n,连0的数目是n-1。 (3)分布无规律,具有与白噪声相似的伪随机特性。 1.2 实现原理 在二进制多级移位寄存器中,若线性反馈移位寄存器(LFSR)有n 阶(即有n级寄存器),则所能产生的最大长度的码序列为2n-1位。如果数字信号直接

随机数产生方法

伪随机数的产生,现在用得较多的是“线性同余法" 就是下面这个式子 R(n+1) = [R(n) * a + b] mod c 为使随机数分布尽量均匀,a、b 均为质数, c 一般取值域内的最大值(mod 是求余数) 从这个式了可以看出,每次产生的随机数都跟上一次产生的数有关系,那么,第一个数是怎么来的呢?这就是线性同余法中必须用的的”种子",也就是说,给定某个种子后,所产生的随机数序列是固定的,在计算机编程中,一般使用系统时间来初始化种子,就是前面代码中的 srand((unsigned)time(NULL)); 这一句了。因为每次运行程序的时间肯定不一样,所以产生散列肯定也不一样,从而达到“随机”的目的。 a,b,c 的取值我用的是 a=3373, b=1, c=32768 下面的两个子程序是我在我的项目(S7-200 226)中产生随机的系统编号用的,因为我的编号中只有4位数采用了随机数,所以下面的程序中用的是整型,最大范围为32767。如果需要更宽范围的随机数,可以采用双字类型,并适当修改程序,代码很简单,就是将上面那个表达式用 S7-200 的指令表示出来就行了。 这两个子程序是从 MicroWIN V4.0 中导出来的,可以将它们用文本编辑器保存为 AW L 文件后直接导入 MicroWIN。 使用时在第一个扫描周期调用 Srand 初始种子,需要随机数的地方调用 Random Random 有了个最大范围参数,可以限制生成的随机数的最大范围,比如我只需要4位随机数,所以一般这样调用 CALL Random, 10000, vw0,生成的数就在 0-9999 范围内 下面是代码: SUBROUTINE_BLOCK Srand:SBR17 TITLE=初始化随机数种子 // // 直接使用系统时钟的分秒来作为种子 VAR_OUTPUT seed:WORD; END_VAR

实验一随机序列的产生及数字特征估计

实验一随机序列的产生及数字特征估计 一、实验目的 1、学习和掌握随机数的产生方法。 2、实现随机序列的数字特征估计。 二、实验原理 1、随机数的产生 随机数指的是各种不同分布随机变量的抽样序列(样本值序列)。进行随机信号仿真分析时,需要模拟产生各种分布的随机数。在计算机仿真时,通常利用数学方法产生随机数,这种随机数称为伪随机数。伪随机数是按照一定的计算公式产生的,这个公式称为随机数发生器。伪随机数本质上不是随机的,而且存在周期性,但是如果计算公式选择适当,所产生的数据看似随机的,与真正的随机数具有相近的统计特性,可以作为随机数使用。(0,1)均匀分布随机数是最最基本、最简单的随机数。(0,1)均匀分布指的是在[0,1]区间上的均匀分布,即U(0,1)。实际应用中有许多现成的随机数发生器可以用于产生(0,1)均匀分布随机数,通常采用的方法为线性同余法,公式如下: y0=1,y n=ky n?1mod N(1.1) x n=y n N 序列x n为产生的(0,1)均匀分布随机数。 下面给出了(1.1)式的3 组常用参数: ①N = 1010,k = 7,周期≈5*10^7; ②(IBM随机数发生器)N = 2^31,k = 2^16 + 3,周期≈5*10^8;

③(ran0)N = 2^31 - 1,k = 7^5,周期≈2*10^9; 由均匀分布随机数,可以利用反函数构造出任意分布的随机数。 定理1.1 若随机变量X具有连续分布函数F X(X),而R为(0,1)均匀分布随机变量,则有 X=F X?1(R)(1.2) 由这一定理可知,分布函数为F X(X)的随机数可以由(0,1)均匀分布随机数按(1.2)式进行变换得到。 2、MATLAB 中产生随机序列的函数 (1)(0,1)均匀分布的随机序列 函数:rand 用法:x = rand(m,n) 功能:产生m×n的均匀分布随机数矩阵。 (2)正态分布的随机序列 函数:randn 用法:x = randn(m,n) 功能:产生m×n的标准正态分布随机数矩阵。 如果要产生服从N(μ,σ2)分布的随机序列,则可以由标准正态随机序列产生。(3)其他分布的随机序列 MATLAB 上还提供了其他多种分布的随机数的产生函数,表1.1 列出了部分函数。

伪随机m序列发生器的产生设计

信息科学与技术学院 通信原理课程设计课题名称:伪随机M序列发生器设计 学生姓名:许奎英2008082491 学院:信息科学与技术学院 专业年级:电子信息工程2008级 指导教师:邓红涛 完成日期:二○一一年七月十二日

目录 前言 (3) 摘要 (4) 理论基础知识 (5) 伪随机序列 (6) 伪随机序列定义及应用. (7) m序列产生器 (7) 芯片介绍 (8) 移位寄存器74LS164 (9) D/A转换器IDAC (9) EWB软件介绍 (10) 设计方案 (10) EWB仿真 (11) 电路的调试 (13) 参考文献 (13) 实验心得 (14) 附录 (15)

前言 题目:伪随机序列的产生及应用设计 初始条件: 具备通信课程的理论知识;具备模拟与数字电路基本电路的设计能力;掌握通信电路的设计知识,掌握通信电路的基本调试方法;自选相关电子器件;可以使用实验室仪器调试。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1、设计伪随机码电路:产生八位伪随机序列(如M序列); 2、了解D/A的工作原理及使用方法,将伪随机序列输入D/A中(如DAC0808),观察其模 拟信号的特性; 3、分析信号源的特点,使用EWB软件进行仿真; 4、进行系统仿真,调试并完成符合要求的课程设计说明书。

摘要 伪随机序列具有良好的随机性和接近于白噪声的相关函数,使其易于从信号或干扰中分离出来。伪随机序列的可确定性和可重复性,使其易于实现相关接收或匹配接收,因此有良好的抗干扰性能。伪随机序列的这些特性使得它在伪码测距、导航、遥控遥测、扩频通信、多址通信、分离多径、数据加扰、信号同步、误码测试、线性系统、各种噪声源等方面得到了广泛的应用,特别是作为扩频码在CDMA系统中的应用已成为其中的关键问题。此次课设根据m序列的产生原理,利用74LS164加少量门电路方法设计了8位m序列发生器。 关键词:伪随机序列m序列移位寄存器D/A转换EWB仿真

一种实用的随机序列生成方法

Computer Knowledge and Technology 电脑知识与技术网络通讯及安全本栏目责任编辑:冯蕾第7卷第9期(2011年3月)一种实用的随机序列生成方法 倪安胜1,汤池2 (1.西安通信学院一系陕西西安710106;2.第四军医大学生物医学工程系,陕西西安710032) 摘要:采用PC 声卡随机噪声作为随机源,使用安全散列算法(SHA-256)对采集到的随机源序列进行处理,形成一种随机序列产生方法。依照FIPS14022标准对产生的随机序列进行测试,结果表明该随机序列的生成方法可行、实用。 关键词:PC ;随机序列;密码生成 中图分类号:TP311文献标识码:A 文章编号:1009-3044(2011)09-1991-02 A Practical Method of Random Sequences Producing NI An-sheng 1,TANG Chi 2 (1.Xi'an Communications Instutute,Xi'an 710106,China;2.The Fourth Military Medical University,Xi'an 710032,China) Abstract:Utilizing the noise of PC soundcard as random resource to obtain random sequences,which was then processed by the secure hash algorithm SHA-256.Thus a method of random sequences producinging was made.The random sequences were tested according to American standard FIPS14022.It shows that the method is feasible and practical with the testing results. Key words:PC;random sequences;password generator 随机数在密码学中发挥重要作用,如密钥管理、加密解密、数字签名、身份认证等都需要用到随机数,密码系统的安全性一般依赖于随机数的生成[1]。理想情况下,密钥应当是真正随机的。随机数是通过随机二进制序列组合而成的,目前用于产生随机二进制序列的方法主要有两类[2]:一种是通过一定的算法由软件或电路生成随机序列,称为伪随机序列,是可以重复产生的;另一种是通过物理现象,如振荡器的频率不稳定性、放射性衰减期间粒子散发的时间间隔、电阻器热噪声、混沌现象等生成随机序列,这类序列具有不可预测性,不可重复,在密码学意义上是安全的。 通过算法不能实现真正的随机数,因此一般通过使用硬件随机数生成器的方法来获取真随机数。但是这种方法增加了成本,不适合低成本应用程序开发和小型项目应用。PC 上有许多可供利用的随机源,如:硬盘磁道寻道时间、鼠标键盘响应时间、网络数据包校验码、缓冲区数据等。有关研究表明[3-4],利用PC 附带的随机源生成随机数,可以满足低成本应用程序和小型项目开发的要求。目前,PC 声卡早已经成为标准的配置,绝大部分主板都内置了声卡。因此,选用声卡噪声作为随机数发生源无需额外增加开发成本,具有较强的代表性。本文以麦克风和声卡作为随机信号的采集设备,以DirectX 中的Sound API 函数进行信号获取,采用Microsoft Visual C++.net 2005完成软件设计。 1基本原理 PC 在使用中,麦克风采集到的声音信号含有随机噪声,声卡将该信号采样后传送给主机,一般情况下采样频率为44.1KHz ,采样精度为16bits ,采样数据末若干位将由于含有噪声信号表现出随机性。因此,可以用采样信号的末若干位(一般少于等于2位)来初步组合随机序列。当随机序列达到一定长度时,使用美国国家标准和技术协会(NIST) 公布的安全散列标准算法SHA-256,对其进行散列变换,增强序列的随机性,形成一个 256位的随机序列。根据要求的随机序列长度,进行多次随机序列生成组合。随机序列 生成组合过程如图1所示。 2测试及结果 2.1测试标准 对随机序列的统计学测试方法有许多种,这些方法虽能从各个侧面统计序列的均 匀行和独立性,但没有统一的参数指标进行比较。美国NIST 在FIPS 14022中提出了基 于密码系统的安全标准[5],其中包括随机序列发生器的测试方法和合格标准,测试方法 主要有:monobit 测试、poker 测试、runs 测试及long runs 测试。要求从产生的随机序列 中选取20000位连续的0-1比特流进行实验。该测试简化了统计检验标准,更具操作性与比对性。2.1.1monobit 测试 计算比特流中1的个数。当1的个数在9725~10275范围之内时表示随机数发生器通过monobit 测试。 2.1.2poker 测试 将20000位的比特流每4位分1组共5000组,每组有16种可能取值i (i =0,1,…15),计算5000组中每组可能取值的数量f 收稿日期:2011-01-08 作者简介:倪安胜(1976-),男,安徽无为人,讲师,主要研究方向为网络信息安全。 图1随机序列生成组合示意图 E-mail:info@https://www.360docs.net/doc/7d18327477.html, https://www.360docs.net/doc/7d18327477.html, Tel:+86-551-56909635690964ISSN 1009-3044 Computer Knowledge and Technology 电脑知识与技术Vol.7,No.9,March 2011,pp.1991-19921991

伪随机序列发生器设计

实验七伪随机序列发生器设计 一、实验目的 1.掌握伪随机序列(m序列)发生器的基本原理和设计方法; 2.深入理解VHDL中signal和variable的不同及其应用; 二、设计描述及方法 1.伪随机序列概述 在扩展频谱通信系统中,伪随机序列起着十分关键的作用。在直接序列扩频系统得发射端,伪随机序列将信息序列的频谱扩展,在接收端,伪随机序列将扩频信号恢复为窄带信号,进而完成信息的接收。 m序列又称为最长线形反馈移位寄存器序列,该序列具有很好的相关性能。m序列发生器的基本结构为: 其中(C r,C r-1,…,C0)为反馈系数,也是特征多项式系数。这些系数的取值为“1”或“0”,“1” 表示该反馈支路连通,“0”表示该反馈支路断开。 下图为实际m序列发生器的电路图: 图中利用D触发器级联的方式完成移位寄存器的功能。在系统清零后,D触发器输出状态均为低电平,为了避免m序列发生器输出全“0”信号,图中在“模二加”运算后添加了一个“非门”。从图中A、B、C、D四个节点均可得到同一m序列,只是序列的初始相位不同。 特征多项式系数决定了一个m序列的特征多项式,同时也决定了一个m序列。下表给出了部分m 序列的反馈系数(表中的反馈系数采用八进制表示)

2.电路设计基本方法 本实验要设计一个寄存器级数为5的m序列发生器,从m序列发生器反馈系数表可知,有三个反馈系数可选,即可以产生三种不同的m序列;在以下设计的接口描述中choice(1 downto0)为m序列选择输入信号,clk为时钟输入信号,reset为复位信号,psout为m序列输出信号。 三、程序代码 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity mps is port (clk,reset : in std_logic; choice : in std_logic_vector(1 downto 0); psout: out std_logic ); end mps; architecture behave of mps is signal a :std_logic_vector(4 downto 0); signal k:std_logic; begin process(clk,reset,choice,a)

一维连续型随机数序列的产生方法

随机数序列的产生方法 一维连续型随机数序列的产生方法 一.综述 由具有已知分布的总体中抽取简单子样,在蒙特卡罗方法中占有非常重要的地位。总体和子样的关系,属于一般和个别的关系,或者说属于共性和个性的关系。由具有已知分布的总体中产生简单子样,就是由简单子样中若干个性近似地反映总体的共性。 随机数是实现由已知分布抽样的基本量,在由已知分布的抽样过程中,将随机数作为已知量,用适当的数学方法可以由它产生具有任意已知分布的简单子样。 二.随机数的定义及性质 在连续型随机变量的分布中,最简单而且最基本的分布是单位均匀分布。由该分布抽取的简单子样称,随机数序列,其中每一个体称为随机数。单位均匀分布也称为[0,1]上的均匀分布,其分布密度函数为: 分布函数为: 其中P (·)表示事件·发生的概率。反之,如果随机变量序列ξ1, ξ2…对于任意自然数s ,由s 个元素所组成的s 维空间上的点(ξ n+1 ,…ξ n+s )在G s 上均匀分布,则它们是随机数序列。 由于随机数在蒙特卡罗方法中所处的特殊地位,它们虽然也属于由 1, 01()0, x f x ≤≤?=? ?其他 0,0(), 011,1 x F x x x x ?

具有已知分布的总体中产生简单子样的问题,但就产生方法而言,却有着本质上的差别 三.连续型随机数的模拟产生 最常用、最基础的随机数是在(0,1)区间内均匀分布的随机数(简记为RND)。一般采用某种数值计算方法产生随机数序列,在计算机上运算来得到.通常是利用递推公式: 给定k 个初始值ξ1,ξ2,…,ξk , 利用递推公式递推出一系列随机数ξ1,ξ2,…,ξn ,…. 利用在(0 , 1) 区间上均匀分布的随机数来模拟具有给定分布的连续型随机数. 1.反函数法 设连续型随机变量Y 的概率函数为 f (x ), 需产生给定分布的随机数. (1)算法:1)产生n 个RND 随机数r 1,r 2,…,r n ; 所得y i ,i =1,2, …,n 即所求。 (2)基本原理: 设随机变量Y 的分布函数F (y )是连续函数,而且随机变量X ~ U (0,1),令Z =F -1(X ),则Z 与Y 有相同分布. 证明:F Z (z )= P {F -1(X ) ≤ z }= P {X ≤F (z )}=G (F (z )) = F (z ) 因G (x )是随机变量X 的分布函数: 12(,,,) n n n n k f ξξξξ---= ; )()2i y i y dy y f r i 中解出从等式?∞ -= ?? ? ??≤<≤<=. 1,1;10, ;0, 0)(x x x x x G

相关文档
最新文档