gold序列的生成与相关特性仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Gold序列生成与相关性仿真

1.1 references

[1] 基于Matlab的Gold码序列的仿真与实现.

[2] Code Selection for CDMA Systems.

1.2 m序列的生成原理

1.2.1生成本原多项式

利用Matlab编程环境求解本原多项式,其运行结果如表1所示.选择n=7,采用7级移位寄存器,产生的序列周期是127,其程序如下所示.

N=7; %以7级寄存器为例,并组其中的一组优选对:211,,217

connections=gfprimfd(N,'all');

表(1)n=7 本原多项式

上面的多项式中,仅有9个是独立的.因为第一行和第十行,第二行和四行,第三行和第十六行,第五行和第八行,第六行和第十四行,第七行和第十三行,第九行和第十八行,第十一行和第十二行,第十五行和第十七行是两两对称的.用八进制数表示时,所选择的本原多项式为211、217、235、367、277、325、203、313和345共9条.在这9条本原多项式中,选择一个基准本原多项式,再按要求选择另一本原多项式与之配对,构成m序列优选对,对7级m序列优选对如下表:

表(2)n=7 m序列所以优选对

1.2.2构成移位寄存器

根据产生Gold码序列的方法,从上述本原多项式中选择一对m序列优选对,以211作为基准本原多项式,217作为配对本原多项式,通过并联结构形式来产生Gold序列,生成gold 序列的结构如图(6)所示:

图(6)Gold序列生成结构

1.3 自相关函数

仿真参数及初始值设定如下:

N=7; %以7级寄存器为例,并组其中的一组优选对:211,,217

connections=gfprimfd(N,'all');

f1=connections(4,:); %取一组本原多项式序列,211

f2=connections(16,:); %取另一组本原多项式序列,217

registers1=[1 0 0 0 0 0 0];%给定寄存器的初始状态

registers2=[1 0 0 0 0 0 0];%取相同的初始状态

生成的gold 序列自相关函数如图(7)、(8)所示

图(7) Gold 序列周期自相关函数

结论:自相关函数取值集合{127,15,-1,-17}

图(8)Gold 序列非周期自相关函数

020406080100120140

gold 序列周期自相关函数

020406080100120140

-40

-20

20

40

60

80

100

120

140

gold 序列非周期自相关函数

1.4 互相关函数

仿真时改变m序列寄存器初始状态,从而生成两个gold序列,求得互相关函数如图(9)(10)所示。

N=7; %以7级寄存器为例,并组其中的一组优选对:211,,217

connections=gfprimfd(N,'all');

f1=connections(4,:); %取一组本原多项式序列,211

f2=connections(16,:); %取另一组本原多项式序列,217

registers1=[1 0 0 0 0 0 0];%给定寄存器的初始状态

registers2=[1 0 0 0 0 0 0];%取相同的初始状态

registers3=[0 0 0 0 0 1 0];%给定寄存器的初始状态

registers4=[0 1 0 0 0 0 0];%取不相同的初始状态

gold序列周期互相关函数

图(9)gold序列周期互相关函数

gold序列非周期互相关函数

图(10)gold序列非周期互相关函数

结论:仿真得到gold序列具有三值互相关函数{-1,-17, 15},从而验证了上述定理。

遍历第2个寄存器,得到127个gold序列,和第一个做互相关,记录最大值。

for m=1:L

registers4=dec2bin(m,7);%遍历第2个寄存器,得到127个gold序列,和第一个做互相关,记录最大值。

maxR=max(R);

minR=min(R);%记录最大最小值

end

仿真结果:对于每个循环,第二个寄存器初始值不同,求得自相关函数最值:

maxR=15

minR=-17

1.5 matlab仿真代码

clear all;

clc;

N=7; %以7级寄存器为例,并组其中的一组优选对:211,,217

connections=gfprimfd(N,'all');

f1=connections(4,:); %取一组本原多项式序列,211

f2=connections(16,:); %取另一组本原多项式序列,217

registers1=[1 0 0 0 0 0 0];%给定寄存器的初始状态

registers2=[1 0 0 0 0 0 0];%取相同的初始状态

L=2^N-1; %周期长度

sum2=0;

sum1=0;

for k=1:L

seq1(k)=registers1(N); %第一组m序列

seq2(k)=registers2(N); %第二组m序列

for j=1:N %进行模2加

sum1=sum1+f1(j+1)*registers1(j); %各级寄存器送参与模2加的值sum1=mod(sum1,2);

sum2=sum2+f2(j+1)*registers2(j); %各级寄存器送参与模2加的值sum2=mod(sum2,2);

end

for t=N:-1:2 %寄存器移位

registers1(t)=registers1(t-1);

registers2(t)=registers2(t-1);

end

registers1(1)=sum1;

registers2(1)=sum2;

sum2=0;

sum1=0;

end

z=seq1+seq2; %m序列的相加

gold=mod(z,2); %模2运算

%-------周期自相关函数------%%

a=1-2*gold;

b=a;

for i=1:L

R(i)=sum(a.*b)

b=[b(127) b(1:126)]

end

plot(R);

title('gold序列周期自相关函数');

% % %-------非周期自相关函数--------%%

% a=1-2*gold;

% b=a;

% for i=1:L

% R(i)=sum(a.*b)

% b=[0 b(1:126)]

% end

% plot(R)

% title('gold序列非周期自相关函数');

相关文档
最新文档