基于matlab的伪随机序列实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
衡量一个m序列与它的j次移位序列之间的相关 程度,并把它叫做m序列( a1 , a2 , a3 ,, a p)的自相关函 数。记作 R( j ) a a ,当采用二进制数字0和1 A 代表码元的可能取值时,R( j) A D A D D p (其中A表示 a a 0的数目,D表示 ai ai j 1的数目) 由m序列的均衡性和移位相加特性可知: j0 1 R( j ) 1 / p j 1,2,,( p 1)
伪随机码生成函数mseries.m
function[mseq]=mseries(fbconnection) n=length(fbconnection);% 所需要的移位寄存器的长度 N=2^n-1; % 伪随机码的周期 register=[zeros(1,n-1) 1]; % 初始化寄存器的状态 for i=1:N newregister(1)=mod(sum(fbconnection.*register),2) for j=2:n newregister(j)=register(j-1); end register=newregister; mseq(i)=register(n); end
p i 1 i j i
三、伪随机序列的自相关性
i
i j
自相关程序:
a=[ 0 0 0 1 1 1 1 0 1 0 1 1 0 0 1]; b=a; m=length(b); N=100; x=1:N; for k=1:N c=xor(a,b); D=sum(c); A=m-D; R(k)=(A-D)/(A+D); plot(k,R(k),'ro') b=[b(m),b(1:m-1)]; 从图中可以看出在15、30、45、60、75、 hold on 90处得到了最大的相关特性,其他值处自 end 相关值接近于零,此仿真验证了m序列具 plot(x,R,'b') 有良好的自相关特性。 grid on
基于MATLAB的伪随机序列实现
一、伪随机序列简介
如果一个序列,一方面它是可以预先确定的, 并且是可以重复地生产和复制的;一方面它又 具有某种随机序列的随机特性(即统计特性), 我们便称这种序列为伪随机序列。 伪随机序列具有良好的随机性和接近于白噪 声的相关函数,并且有预先的可确定性和可重 复性。这些特性使得伪随机序列在通信加密、 雷达信号设计、通信系统中得到了广泛的应用。
二、伪随机序列产生的原理
m序列是最长线性反馈移位寄存器序列的简 称,它是由带线性反馈的移位寄存器产生的周 期最长的一种序列。m序列的生成可用移位寄存 器序列发生器的本原多项式来确定,一个本原 多项式对应一个最大长度序列,即对应一个m序 列。 本原多项式可在matlab中生成,打开Matlab 程序,输入primpoly(n,’all’)能得到n阶移位寄存 器所对应的所有的本原多项式。
由上图可以看出,寄存器状态满足: y1(i)=y1(i-1) y4(i-1); y2(i)=y1(i-1); y3(i)=y2(i-1); y4(i)=y3(i-1); 给寄存器组赋予一个非全零的初始状态,y4的输 出即可作为码周期为15的一个m序列。输入 mseq=mseries([1 0 0 1]) 可得 mseq = Columns 1 through 10 0 0 0 1 1 1 1 0 1 0 Columns 11 through 15 1 1 0 0 1
输入primpoly(4,’all’)能得到4阶移位寄存器所 对应的所有的本原多项式。输出结果为: Primitive polynomial(s) = D^4+D^1+1 D^4+D^3+1 以多项式f ( x) 1 x x 4 为例:(下图为对应的移位 wenku.baidu.com存器反馈连线图)
y1 y2 y3 y4