结构可以预先确定,可重复产生和复制,具有某种
随机序列随机特性的序列码。伪随机码序列一般可以利用
移位寄存器网络产生,该网络由R级串联双态器件移位脉冲产生器和模二
加法器组成。该网络可以产生码长为15的伪随机码。在计算机、通信系统中我们采用的
随机数、随机码均为
伪随机数、伪随机码。所谓“随机码”,就是无论这个码有多长都不会出现循环的现象,而“伪随机码”在码长达到一定程度时会从其第一位开始循环,由于出现的循环长度相当大,例如CDMA采用42的伪随机码,重复的可能性为4.4万亿分之一,所以可以当成随机码使用。
简介
伪随机数并不是假
随机数,这里的“伪”是有规律的意思,就是计算机产生的伪随机数既是随机的又是有规律的。产生的伪随机数有时遵守一定的规律,有时不遵守任何规律;伪随机数有一部分遵守一定的规律;另一部分不遵守任何规律。比如“世上没有两片形状完全相同的树叶”,这正是点到了事物的特性,即
随机性,但是每种树的叶子都有近似的形状,这正是事物的共性,即规律性。从这个角度讲,计算机只能产生伪随机数而不能产生绝对随机的随机数。
特性
伪随机码又称
伪随机序列,它是具有类似于
随机序列基本特性的确定序列。通常广泛应用
二进制序列,因此我们仅限于研究二进制序列。二进制独立随机序列在概率论中一般称为贝努利(Bernoulli)序列,它由两个元素(符号)0, 1或1, -1组成。序列中不同位置的元素取值相互独立取0取1的概率相等等于1/2:我们简称此种系列为随机系列。
随机序列具有以下三个基本特性:
1)在序列中“0”和“1”出现的相对频率各为1/2。
2)序列中连0或连1称为游程连0或连1的个数称为游程的长度,序列中长度为1的游程数占游程总数的1/2;长度为2的游程数占游程总数的1/4;长度为3的游程数占游程总数的1/8;长度为n的游程数占游程总数的1/2n(对于所有有限的n)。此性质我们简称为
随机序列的游程特性。
3)如果将给定的随机序列位移任何个元素,则所得序列的和原序列的对应的元素有一半相同,一半不同。
如果确定序列近似满足以上三个特性则称此确定序列为
伪随机序列。
处理方法
利用FPGA可实现
移位寄存器网络以产生伪随机码信号,并实现
逻辑控制和时钟分配等功能。对于FPGA输出的TTL信号,其处理方法有两种:一种是直接送至运放进行
信号调理输出;另外一种是将TTL经过D/A转换及信号调理后再输出。经过分析与实际测试,由于FPGA输出的信号相位抖动较为严重,甚至会造成信号边沿不稳,而且存在着严重的寄生信号,因而输出的伪码质量较差;而如果经过D/A转换后再进行调理输出,这种影响会得到削弱,信号质量会得到提高,因此第二种方法更为可取,在实际应用中,笔者就选择该方法进行电路设计,并选择差分电流输出型D/A经过MAX4145放大后直接输出。
基于MAX4145的伪随机码产生电路原理。该伪随机码产生电路在工作时,系统可以通过并口将伪码
数据分配给FPGA,也可由FP-GA自主产生伪码信号,同时由FPGA完成
信号处理、时钟分配、码同步产生以及波形存储等功能。MAX4145的作用主要是完成差分到单端输出的转换和放大。
应用
伪随机码用于密码。在经典密码体制中加密密钥同时又是解密密钥,因而称为单钥体制。在现代的公开密钥体制中则每个通信者拥有两个密钥,其中加密密钥是公开的,只需将解密密钥严格保密。虽然人类在通信中采用种种明码和密码的历史相当久远,但编码理论可以认为是在电子技术飞速发展以后,针对当代数字通信和数字存储等的具体需要,于20 世纪50 年代发展成为一门面目全新的应用数学,目前已有丰富的内容。
随着近20年来组合设计理论的迅猛发展,码与设计、密码与设计之间的相互联系已经受到特别的关注,以促进和发展这种相互联系为宗旨的一份新的国际性杂志《设计、码与密码》已于1991年问世。
实例
序列α= 0110100,其中0和1的个数相差1。把α看成周期为7的无限序列,左移1位得,α1= 1101000,把α1也看成周期为7的无限序列。 α= 0110100,α1=1101000在一个周期里,α和α1的对应位置元素相同的位置有3个,元素不同的位置有4个,它们的差等于-1,这个数称为α的
自相关函数在1处的值。类似地,把α左移2位,3位,…6位,可以求出α的自相关函数在2处,3处,…6处的值也等于-1。
当0
旁瓣值。从刚才所求出的结果知道,α= 0110100的自相关函数的旁瓣值只有一个:-1。像这样的序列称为伪随机序列或拟完美序列。即,一个周期为v的无限序列,如果在一个周期里,0和1的个数相差1,并且它的自相关函数的旁瓣值只有一个:-1,则称它为伪随机序列或拟完美序列。α的自相关函数的旁瓣值的绝对值越大,就表明(或把的0和1互换得到的序列)与α越像。因此如果周期为v的序列α是一个伪随机序列,那么α不管左移几位(只要不是v的倍数),得到的序列都和α很不像,这样就很难分辨出α是什么样子。伪随机序列是用函数生成
随机数。它并不真正是随机的。只是比较近似随机。
一个简单的随机数产生方法如下:X0=345,Xn=(Xn-1*A+B)/C,其中A,B,C是常数,上式每执行一次就生成一个
伪随机数,还可以在
数组中填入若干个数然后顺序取出进行模拟。性能好,但是这种随机数就很不象随机数了。 还有就是根据当前系统时间,内存值等等用函数生成了。
码
(code)
它是为达到信息传递的可靠性和安全性等目的而对信息所做的某种变换。在无线电通信中需要有克服天电干扰的措施,特别在宇航通信中更为突出,纠错码主要用于抗干扰的要求;另一方面,在军事、外交及商业方面,要求信息传递过程中的保密性,这类码就是密码。分组码是一类重要的纠错码。
设 Q 为 q 元集, 为笛卡儿积集合。 的一个
非空真子集C称为一个q 元分组码,简称码。当 时,称这个码是平凡的。称 Q 为字母表,而称 的元为字或向量,称C的元为码字,n 为字长。当 时,称 C 为 q 元(n.M)码。