什么是伪随机码

爱恨随意2023-01-29  23

结构可以预先确定,可重复产生和复制,具有某种随机序列随机特性的序列码。伪随机码序列一般可以利用移位寄存器网络产生,该网络由R级串联双态器件移位脉冲产生器和模二加法器组成。该网络可以产生码长为15的伪随机码。在计算机、通信系统中我们采用的随机数、随机码均为伪随机数、伪随机码。所谓“随机码”,就是无论这个码有多长都不会出现循环的现象,而“伪随机码”在码长达到一定程度时会从其第一位开始循环,由于出现的循环长度相当大,例如CDMA采用42的伪随机码,重复的可能性为4.4万亿分之一,所以可以当成随机码使用。

中文名:伪随机码

利用:移位寄存器网络产生

例如:CDMA采用42的伪随机码

特点:结构可预先确定,重复产生和复制

初始化的一般称为"种子",伪随机数发生器会根据这个初始值开始计算生成伪随机序列

如果每次的种子相同,那么生成的序列也相同,所以在初始化时一般要读取象时钟这样的数据来保证不重复。

% 小数开方伪随机数发生器 randmtx = randUI(10, 10, 10000, 0, 1)

% row 伪随机数矩阵的行数

% col 伪随机数矩阵的列数

% seed 种子

% k1, k2 生成的伪随机数的范围

function randmtx = randU2(row, col, seed, k1, k2)

if nargin <3

seed = 11

end

m = 4

seed2 = sqrt(seed)

while seed2 <1

seed2 = seed2 * 10

end

n = round(seed2/m)% 返回最接近seed2/m的整数

x = (10^n)*seed2

randmtx(1,1) = x - floor(x)

for i = 2:row*col

temp = sqrt(abs(randmtx(1,i-1)))

if temp == 0

temp = eps

end

while temp <1

temp = temp * 10

end

n = round(temp/m)

x = (10^n)*temp

randmtx(1,i) = (x - floor(x))

end

randmtx = reshape(randmtx, row, col)

if nargin <4

return

end

randmtx = randmtx * (k2 - k1) + k1


转载请注明原文地址:https://juke.outofmemory.cn/read/2825285.html

最新回复(0)