gold序列实验报告

合集下载

扩频编码M序列和gold序列

扩频编码M序列和gold序列

M序列由n级移位寄存器所能产生的周期最长的序列。

这种序列必须由非线性移位寄存器产生,并且周期为2n(n 为移位寄存器的级数)。

例如,考察图中a的非线性反馈移位寄存器,其状态转移关系如表:状态(a k-3,a k-2,a k-1)的接续状态是(a k-2,a k-1,a k),其中a k=a k-3嘰a k-1嘰1嘰a k-2a k-1是一种非线性逻辑。

从任一状态出发,例如从(000)出发,其接续状态恰好构成一个完全循环(图b),由此产生一个周期为23=8的3级序列。

M序列最早是用抽象的数学方法构造的。

它出现于组合数学的一些数学游戏中,例如L.欧拉关于哥尼斯堡的七桥问题等。

后来发现这种序列具有某些良好的伪随机特性。

例如,M序列在一个周期中,0与1的个数各占一半。

同时,同样长度的0游程与1游程也各占一半。

所有这些性质在数据通信、自动控制、光学技术和密码学诸领域中均有重要应用。

隐蔽通信内容的通信方式。

为了使非法的截收者不能理解通信内容的含义,信息在传输前必须先进行各种形式的变化,成为加密信息,在收信端进行相应的逆变化以恢复原信息。

电报通信、电话通信、图像通信和数据通信,都有相应的保密技术问题。

另一方面,为了从保密通信中获得军事、政治、经济、技术等机密信息,破译技术也在发展。

保密技术和破译技术是在相互对立中发展起来的。

1881年世界上出现了第一个电话保密专利。

电话保密开始是采用模拟保密或置乱的方法,即把话音的频谱或时间分段打乱。

置乱后的信号仍保持连续变化的性质。

在第二次世界大战期间,频域和时域的置乱器在技术上已基本成熟。

70年代以来,由于采用集成电路,电话保密通信得到进一步完善。

但置乱器仍是有线载波和短波单边带电话保密通信的主要手段。

模拟保密还可以采用加噪声掩盖、人工混响或逆向混响等方法,但因恢复后话音的质量大幅度下降或保密效果差,这些方法没有得到推广应用。

数字保密是由文字密码发展起来的。

数字信号(包括由模拟信号转换成的数字信号),由相同速率的密码序列加密,成为数字保密信号;保密信号传输到收信端后由同一密码序列去密,恢复原数字信号。

扩频编码M序列和gold序列

扩频编码M序列和gold序列

M序列由n级移位寄存器所能产生的周期最长的序列。

这种序列必须由非线性移位寄存器产生,并且周期为2n(n 为移位寄存器的级数)。

例如,考察图中a的非线性反馈移位寄存器,其状态转移关系如表:状态(a k-3,a k-2,a k-1)的接续状态是(a k-2,a k-1,a k),其中a k=a k-3嘰a k-1嘰1嘰a k-2a k-1是一种非线性逻辑。

从任一状态出发,例如从(000)出发,其接续状态恰好构成一个完全循环(图b),由此产生一个周期为23=8的3级序列。

M序列最早是用抽象的数学方法构造的。

它出现于组合数学的一些数学游戏中,例如L.欧拉关于哥尼斯堡的七桥问题等。

后来发现这种序列具有某些良好的伪随机特性。

例如,M序列在一个周期中,0与1的个数各占一半。

同时,同样长度的0游程与1游程也各占一半。

所有这些性质在数据通信、自动控制、光学技术和密码学诸领域中均有重要应用。

隐蔽通信内容的通信方式。

为了使非法的截收者不能理解通信内容的含义,信息在传输前必须先进行各种形式的变化,成为加密信息,在收信端进行相应的逆变化以恢复原信息。

电报通信、电话通信、图像通信和数据通信,都有相应的保密技术问题。

另一方面,为了从保密通信中获得军事、政治、经济、技术等机密信息,破译技术也在发展。

保密技术和破译技术是在相互对立中发展起来的。

1881年世界上出现了第一个电话保密专利。

电话保密开始是采用模拟保密或置乱的方法,即把话音的频谱或时间分段打乱。

置乱后的信号仍保持连续变化的性质。

在第二次世界大战期间,频域和时域的置乱器在技术上已基本成熟。

70年代以来,由于采用集成电路,电话保密通信得到进一步完善。

但置乱器仍是有线载波和短波单边带电话保密通信的主要手段。

模拟保密还可以采用加噪声掩盖、人工混响或逆向混响等方法,但因恢复后话音的质量大幅度下降或保密效果差,这些方法没有得到推广应用。

数字保密是由文字密码发展起来的。

数字信号(包括由模拟信号转换成的数字信号),由相同速率的密码序列加密,成为数字保密信号;保密信号传输到收信端后由同一密码序列去密,恢复原数字信号。

用MATLAB进行Gold序列的产生Gold序列因为其良好的伪噪声特性,经常作为CDMA扩频系统仿真中的用户扩频序列,用

用MATLAB进行Gold序列的产生Gold序列因为其良好的伪噪声特性,经常作为CDMA扩频系统仿真中的用户扩频序列,用

用MATLAB进行Gold序列的产生Gold序列因为其良好的伪噪声特性,经常作为CDMA扩频系统仿真中的用户扩频序列,用MATLAB可以产生各种长度的Gold序列优选对,用MATLAB进行Gold序列的产生Gold序列因为其良好的伪噪声特性,经常作为CDMA扩频系统仿真中的用户扩频序列,用MATLAB可以产生各种长度的Gold序列优选对,在此基础上,产生混沌序列等其他性质的扩频序列也很容易。

下面给出完整的源程序% MATLAB script for Illustrative Gold sequence generation. echo on % first determine the maximal length shift register sequences %We'll take the initial shift register content as "00001".connections1=[1 0 1 0 0];connections2=[1 1 1 0 1];sequence1=ss_mlsrs(connections1);sequence2=ss_mlsrs(connections2);% cyclically shift the second sequence and add it to the first one L=2^length(connections1)-1;;for shift_amount=0:L-1,temp=[sequence2(shift_amount+1:L) sequence2(1:shift_amount)];gold_seq(shift_amount+1,:)=(sequence1+temp) -floor((sequence1+temp)./2).*2;end;% find the max value of the cross correlation for these sequences max_cross_corr=0;for i=1:L-1,for j=i+1:L,% equivalent sequencesc1=2*gold_seq(i,:)-1;c2=2*gold_seq(j,:)-1;for m=0:L-1,shifted_c2=[c2(m+1:L) c2(1:m)];corr=abs(sum(c1.*shifted_c2));if (corr>max_cross_corr),max_cross_corr=corr;end;end;end;end;% note that max_cross_corr turns out to be 9 in this example...调用的子函数ss_mlsrs.mfunction [seq]=ss_mlsrs(connections);% [seq]=ss_mlsrs(connections)% SS_MLSRS generates the maximal length shift register sequence when the% shift register connections are given as input to the function. A "zero" % means not connected, whereas a "one" represents a connection. m=length(connections);L=2^m-1; % length of the shift register sequence requestedregisters=[zeros(1,m-1) 1]; % initial register contentsseq(1)=registers(m); % first element of the sequence for i=2:L, new_reg_cont(1)=connections(1)*seq(i-1);for j=2:m,new_reg_cont(j)=registers(j-1)+connections(j)*seq(i-1);end;registers=new_reg_cont; % current register contentsseq(i)=registers(m); % the next element of the sequence end;。

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

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

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,,217connections=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,,217connections=gfprimfd(N,'all');f1=connections(4,:); %取一组本原多项式序列,211f2=connections(16,:); %取另一组本原多项式序列,217registers1=[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 序列非周期自相关函数020406080100120140gold 序列周期自相关函数020406080100120140-40-2020406080100120140gold 序列非周期自相关函数1.4 互相关函数仿真时改变m序列寄存器初始状态,从而生成两个gold序列,求得互相关函数如图(9)(10)所示。

平衡Gold序列的软件实现

平衡Gold序列的软件实现

收稿日期:2006-03-13;修回日期:2006-05-28作者简介:宋全有(1963-),男,河南孟州人,河南交通职业技术学院教师,硕士,主要从事通信与信息系统、扩频通信方面的研究.第22卷第5期2006年10月商丘师范学院学报JOURNAL OF SH ANGQIU T EACH ERS COLLEGE Vo l.22No.5Octo ber,2006平衡Gold 序列的软件实现宋全有1,李振伟2(1 河南交通职业技术学院,河南郑州450005;2 河南工业贸易职业学院,河南郑州450005)摘 要:在分析m 序列、m 序列优选对、Gold 序列及平衡Gold 序列生成原理的基础上,给出了一种平衡Go ld序列的软件生成方法.该方法首先用相关验证法产生m 序列优选对,然后用循环移位模2加生成Go ld 序列,最后搜索得到平衡Go ld 序列,实验结果表明该方法结果正确,便于实现且较为简单.关键词:扩频通信;m 序列;G old 序列中图分类号:T N911 文献标识码:A 文章编号:1672-3600(2006)05-0103-03The software realization of balanceable Gold sequenceSONG Quan y ou 1,LI Zhen w ei2(1.Henan Communications Po lytechnic College,Zhengzhou,450005;2.Henan Vocational College of Industry Trade,Zhengzhou 450005,China)Abstract:On the basis o f analy zing the generating optimum and balanceable Gold sequences,a metho d of pro ducing balanceable Go ld sequence by co mputer is pr esented .A t first,m sequence optimum pairs are generated by co rrelation v erifying ,then Go ld sequences ar e m ade ,finally balanceable Gold sequences are searched .The result show s that it is concise and practical by contrasting w ith other metho ds.Key words:spread spectrtum com munication ;m sequence ;balanceable Gold sequence0 引言在扩频通信系统中,抗干扰、抗噪声、抗多径衰落、抗截获、信息数据隐蔽和保密、多址通信、实现同步与捕捉等都是与伪随机序列的设计密切相关的.目前,伪随机序列中应用比较广泛的是m 序列和Gold 序列,因为它们不仅具有理想的随机特性,而且较容易产生.m 序列有尖锐的自相关特性,有较小的互相关值,码元平衡.但序列数目不多,序列复杂度不大,不便用于扩频多址通信系统.G old 序列具有优良的相关特性,且它的自相关旁瓣值和互相关值与m 序列的互相关值一样,序列数目大大增加,序列复杂度也有改善,因此被广泛采用.在Go1d 序列族中,也往往只有平衡Go ld 序列被采纳,因为不平衡序列将使扩频系统的载波泄漏增大,破坏扩频通信系统的保密、抗干扰能力.1 m 序列的概念及特性m 序列又称最长线性反馈移位寄存器序列,它可由线性反馈移位寄存器生成,如图1所示.m 序列具有如下特性[1]:表1 线性反馈移位寄存器(1)平衡特性:在每一序列周期中, 1 的码元数目与 0 的码元数目最多相差一个.(2)游程特性:在每一序列周期中,长度为n 的元素游程出现的次数比长度为n +1的游程出现的次数多一倍.(3)相关特性:序列的自相关函数是二值的,即:自相关函数R x (j )为R x (j )=N j =0(mod N )0<j <N (mod N )(N )(1)其中N 为序列自相关峰值,它等于序列的周期,即N =2n -1. 为序列自相关的旁瓣值, !N.2 Gold 序列的概念及特性m 序列优选对的两个r 次本原多项式乘积构成的新序列为Go ld 序列,或m 序列优选对的两个本原多项式所产生序列的移位模2和新序列也叫做Go ld 序列.可以证明,若F 1(x ),F 2(x )为两个不同的本原多项式,令F 1(x )产生的序列为G(F 1),F 2(x )产生的序列为G(F 2),F 1(x )!F 2(x )所产生的序列为G(F 1,F 2),则有G(F 1,F 2)=G(F 1)∀G(F 2)(2)即:两本原多项式乘积产生的序列等于两个本原多项式分别产生的模2和序列.简单起见,以n =6的m 序列产生的G old 序列为例,移位寄存器产生的m 序列优选对的两个m 序列本原多项式F 1(x )、F 2(x )分别为:F 1(x )=x 6+x +1F 2(x )=x 6+x 5+x 2+x +1其乘积多项式为:F 1(x )F 2(x)=(x 6+x +1)(x 6+x 5+x 2+x +1)=x 12+x 11+x 8+x 6+x5+x 3+1Go ld 序列生成电路如图2所示.图2 乘积多项式G old 序列产生若将F 1(x )和F 2(x )产生的两m 序列模2相加,也可得到Gold 序列.对应的G old 序列发生器如图3所示.图3 由模2加方法生成G old 序列按定义,G old 序列由F 1(x )!F 2(x )乘积多项式所产生,F 1(x ),F 2(x )分别为r 次多项式.可以证明,乘积多项式F 1(x )!F 2(x )共产生2n +1个周期为2n -1的G old 序列.此外,还可证明,Go ld 序列具有较好的自相关、互相关及平衡特性.3 寻找平衡Gold 序列的意义香农指出:在高斯噪声的干扰下,有限平均功率的信道上,实现有效和可靠通信的最佳信号是具有白噪声统计特性的信号.而白噪声统计特性中的一个重要特性就是平衡特性.在扩频通信中,序列的平衡性对通信质量影响很大.在扩频系统中伪随机序列是用正电平和负电平来表示的,平衡序列中正负电平大致相当,使得发送信号的直流分量小,而且具有更好的频谱特性.这不仅在工程中更容易实现,而且可以有效平衡;而非平衡序列将破坏扩频通信系统的保密、抗干扰和抗侦破能力.104商丘师范学院学报 2006年4 平衡Gold 序列的产生4.1 Gold 序列的产生原理根据Go ld 序列定义可知,为构成Go ld 序列要先找出m 序列优选对.寻找m 序列优选对有很多方法[2][3],下面介绍本文中将用到的一种方法.若 为2r 阶有限域F 2r 中的一个本原元,F 1(x ),F 2(x )为r 次本原多项式, 为F 1(x )的首根,取t =2(r +1)/2+1, r 奇数2(r +2)/2+1, r 偶数,且不为4及4的倍数(3)使 t 为F 2(x )一根,则F 1(x ),F 2(x )构成一优选对.以n =6,p =26-1=63的一个m 序列为例.根据以上方法,可求得:F 1(x )=x 6+x +1和F 2(x )=x 6+x 5+x 2+x +1可构成此时的一个m 序列优选对.有了m 序列优选对,Gold 序列可由两种形式的发生器产生.一种形式是将m 序列优选对的两m 序列发生器的输出模2相加,其结果便是G old 序列输出.另一种形式是将m 序列优选对的两m 序列本原多项式F 1(x )与F 2(x )相乘,由乘积多项式产生Go ld 序列.这里采用模2加法产生Go ld 序列,即将F 1(x )和F 2(x )产生的两m 序列模2加,便得到G old 序列.因为Go ld 序列共有2n +1个,其中2n -1个为两m 序列移位相加的结果,另外两个是原来的两m 序列(即两序列相加时,其中一个序列为0序列).因此产生G old 序列的两m 序列发生器需要有预置电路.在进行初始状态预置时,两m 序列发生器其一可以固定预置,另一个m 序列产生器可以根据需要改变预置状态.每改变一次预置状态便产生一种Go ld 序列,这样改变2n -1次预置状态,便可以产生2n -1种Go ld 序列.4 2 平衡Gold 序列产生的程序设计思想由以上原理可知,要产生Go1d 序列首先必须有m 序列发生器.因为m 序列是最长周期的线性移位寄存器序列,所以我们用软件设计m 序列的产生时,可以用计算机模拟双态寄存器来产生m 序列,主要分为以下几步:(1)根据要产生的m 序列的周期p ,由公式p =2n -1计算出线性移位寄存器的级数n.(2)在计算机中开辟内存空间,并直接用连续的比特位模拟寄存器的级,一位与一级相对应.(3)根据指定的特征多次式F(x )给这个模拟的移位寄存器加反馈逻辑并赋以初值100∀0,以便得到理想的m 序列.(4)将这个 移位寄存器 按时钟周期 触发 ,每触发一次,所有寄存器中数据向高位移一位,将最高位 1 或 0 码输出,寄存器进行一次反馈逻辑运算并从最低位输入.时钟不断触发,则不断有二进制数从最高位输出.因为预先已知序列周期p ,所以只须将时钟触发p 次,将输出存入到数组p 中.综上所述,p 长数组p 中所存序列便是在指定特征多次式F(x )下的m 序列.用输出语句将其输出即可.这样,有了m 序列发生器,我们就可以产生Gold 序列了.这里以n =6,p =26-1=63为例,即产生长度为63的平衡的Go ld 序列.(1)找到m 序列优选对的特征多项式.它们分别是F 1(x )=x 6+x +1和F 2(x )=x 6+x 5+x 2+x +1(2)根据该两个特征多项式,产生两组m 序列,分别存入数组m 1和m 2并输出.(3)将m 1和m 2对应元素进行模2加得到序列数组g.实际上,g 即为所求的一组Go ld 序列.但为了找到平衡的Go ld 序列,需采用m 序列平衡性验证的方法,看其中是否 1 元素比 0 元素多1个.若是,则将数组g 输出,得到平衡的Go ld 序列.(4)m 2中的元素循环移动一个元素,返回到步骤3.(5)步骤4进行p -1次后停止即可.需要注意,这两个作为优选对的m 序列也是平衡的G old 序列.5 结束语本文在分析m 序列、m 序列优选对、G old 序列及平衡Gold 序列生成原理的基础上,给出了一种平衡Go ld 序列的软件生成方法.生成的序列可以存储在微处理器的寄存器中,或存储在专用扩频芯片中按照指令随时调用.实验结果表明该方法结果正确,便于实现且较为简单.参考文献:[1] 周廷显.伪噪声编码技术[M ].哈尔滨:哈尔滨工业大学出版社,1982.[2] 陈启兴,刘化海.用C 语言编程实现m 序列[J].船舰电子对抗,2001(5):31-32.[3] 樊炳亮,李晓辉.一种生成平衡G old 序列的算法[J].微机发展,2005(9):18-20.105 第5期 宋全有,等:平衡G old 序列的软件实现。

生成m序列与gold序列

生成m序列与gold序列

一、生成m序列function [mseq] = m_sequence(fbconnection);n = length(fbconnection);N = 2^n-1; %m序列的长度register = [zeros(1,n - 1) 1]; %定义移位寄存器的初始状态mseq(1)= register(n); %m序列的第一个输出码元for i = 2:Nnewregister(1)= mod(sum(fbconnection.*register),2); %寄存器与反馈的模2和for j = 2:n,newregister(j)= register(j-1);end;register = newregister; %移位后的寄存器mseq(i) = register(n); %新的寄存器输出endclear all;close all;clc;fbconnection=[0 0 1 0 1]; %输入本原多项式系数,从C1开始m_sequence=m_sequence(fbconnection);stem(m_sequence); %对m序列绘图axis([0 35 -0.2 1.2]);grid on;二、生成gold序列function goldseq = g_sequence(connection1,connection2); msequence1 = m_sequence(connection1); %生成第一个m序列msequence2 = m_sequence(connection2); %生成第二个m序列N=2^length(connection1)-1; %gold序列长度for i = 1:N;s = mod(msequence1+msequence2,2); %两个m序列模二加产生gold序列goldseq = s;endclear all;close all;clc;connection1=[0 0 0 0 1 1];connection2=[1 0 0 1 1 1];goldseq = g_sequence(connection1,connection2);stem(goldseq);axis([0 65 -0.2 1.2]);grid on;THANKS !!!致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考。

m 序列与gold 序列性能分析比较 包含程序

m序列与gold序列性能分析比较赵新宁北京邮电大学信息工程学院,北京(100876)E-mail:zhaoxinning106@摘要:在扩频系统中,伪随机序列具有十分重要的作用。

m序列和gold序列作为最常用和实用的伪随机序列,各有其特点。

本文分析其基本原理和产生方式,并特别对其性能方面做了仿真比较。

关键词:扩频;m序列;gold序列中图分类号:TN91在扩频通信系统中,伪随机序列是关键技术之一。

伪随机序列码的码型影响码序列的相关特性,序列长度决定了扩展频谱的宽度。

因此,在扩频系统中,对于伪随机序列有如下的要求:首先,伪随机序列的长度(即伪码比特率)应该足够长,能够满足扩展带宽的需要;第二,伪随机序列要具有尖锐的自相关特性(用作地址码),和良好的互相关特性;第三,伪随机序列要有足够多的数量,以满足码分多址的需求;第四,应具有近似噪声的频谱特性,即近似连续谱,且均匀分布;工程上易于实现。

通常,作为扩频通信系统工程实现上的伪随机序列一般是m序列和gold序列。

目前,在cdma2000系统中采用伪随机序列中的m序列(长码)来区分用户,wcdma系统中则用gold码来区分用户。

1.m序列的原理和产生在所有的伪随机序列中,m序列是最重要、最基本的一种伪随机序列。

而另外的多种伪随机序列都是由它引出并且产生的。

m序列是一种周期性的伪随机序列,又被称作最长线性移位寄存器序列;是由带线性反馈的移位寄存器产生的周期最长的序列[1]。

其周期为2n-1(n 为移位寄存器级数)。

m序列具有与随机噪声类似的尖锐的自相关特性,但它不是真正随机的,而是按照一定的规律周期性的变化。

这种特性使得m序列适合于工程应用。

m序列最大长度决定于移位寄存器的级数,而序列构成则决定于反馈系数的不同设置。

并非所有的反馈系数的设置都可以产生对应长度的m序列。

m序列具有平衡性和其游程特性,即一个序列周期中,“1”的数目与“0”的数目最多相差一个;同时,长度为n的元素游程出现的次数比长度为n+1的游程出现的次数多一倍。

移动通信实验序列产生极其特性

1、 m 序列产生及特性分析实验一、实验目的1、了解m 序列的特性及产生。

二、实验模块1、 主控单元模块2、 14号 CDMA 扩频模块3、 示波器三、实验原理1、14号模块的框图14号模块框图2、14号模块框图说明(m 序列)该模块提供了四路速率为512K 的m 序列,测试点分别为PN1、PN2、PN3、PN4。

其中,PN2和PN4分别由PN 序列选择开关S2、S3控制;不同的开关码值,可以设置m 序列码元的不同偏移量。

开关S6是PN 序列长度设置开关,可选127位或128位,其中127位是PN 序列原始码长,128位是在原始码元的连6个0之后增加一个0得到。

Gold 序列测试点为G1和G2,其中G1由PN1和PN2合成,G2由PN3和PN4合成。

拨码开关S1和S4是分别设置W1和W2产生不同的Walsh 序列。

实验中还可以观察不同m 序列(或Gold 序列)和Walsh127位128位序列的合成波形。

注意,每次设置拨码开关后,必须按复位键S7。

3、实验原理框图m 序列相关性实验框图为方便序列特性观察,本实验中将Walsh 序列码型设置开关S1和S4固定设置为某一种。

4、实验框图说明 m 序列的自相关函数为()R A D τ=-式中,A 为对应位码元相同的数目;D 为对应位码元不同的数目。

自相关系数为()A D A DP A Dρτ--==+ 对于m 序列,其码长为P=2n -1, 在这里P 也等于码序列中的码元数,即“0”和“1”个数的总和。

其中“0”的个数因为去掉移位寄存器的全“0”状态,所以A 值为121n A -=-“1”的个数(即不同位)D 为12n D -=m 序列的自相关系数为1 0()1 0,1,2,p τρτττ=⎧⎪=⎨-≠=⎪⎩…,p-1cT τm 序列的自相关函数四、实验步骤及实验现象记录(注:实验过程中,凡是涉及到测试连线改变或者模块及仪器仪表的更换时,都需先停止运行仿真,待连线调整完后,再开启仿真进行后续调节测试。

南京邮电大学移动通信实验报告

课程实验报告题目:CDMA解扩实验学院通信与信息工程学院学生姓名班级学号指导教师开课学院日期CDMA解扩实验CDMA扩频调制一、实验目的1.了解扩频调制的基本概念;2. 掌握PN码的概念以及m序列的生成方法;3. 掌握扩频调制过程中信号频谱的变化规律。

二、预备知识1.不同多址接入方式(TDMA、FDMA、CDMA)的区别;2.扩频码的种类与应用;3. 扩频码的基本性质。

三、实验仪器1、移动通信实验箱一台;2、台式计算机一台;一、实验原理m序列是最长线性反馈移位寄存器序列的简称,它是由带线性反馈的移位器产生的周期最长的一种序列。

如果把两个m序列发生器产生的优选对序列模二相加,则产生一个新的码序列,即Gold码序列。

实验中三种可选的扩频序列分别是长度为15的m序列、长度为31的m序列以及长度为31的Gold序列。

1.长度为15的m序列由4级移存器产生,反馈器如图2.1.1所示。

初始状态 1 0 0 01 1 0 01 1 1 01 1 1 10 1 1 11 0 1 10 1 0 11 0 1 01 1 0 10 1 1 00 0 1 11 0 0 10 1 0 00 0 1 00 0 0 1……………………………….1 0 0 0图 2.1.1 长度为15的m 序列的生成2.长度为31的m 序列由5级移存器产生,反馈器如图2.1.2所示。

图 2.1.2 长度为31的m 序列的生成3. 长度为31的gold 序列:Gold 码是Gold 于1967年提出的,它是用一对优选的周期和速率均相同的m 序列模二加后得到的。

其构成原理如图2.1.3所示。

图2.1.3 Gold 码发生器两个m 序列发生器的级数相同,即n n n ==21。

如果两个m 序列相对相移不同,所得Gold 码 21m m ⊕到的是不同的Gold 码序列。

对n 级m 序列,共有12-n 个不同相位,所以通过模二加后可得到12-n 个Gold 码序列,这些码序列的周期均为12-n ,如图2.1.4所示。

GOLD序列的相关性


谢谢!
追求人生的美好!
我们的共同目标!
gold序列是用一对周期和速率均相同但码字不同的n级m序列发生器时钟n级m序列发生器gold码序列gold码发生器的原理结构图
GOLD序列的相关性
主要内容
• m序列 • Gold序列 • Gold序列的相关特性
m序列
m序列是目前CDMA系统中采用的最基本 的PN序列。它是最长线性反馈移位寄存器 序列的简称。若移位寄存器为n级, 则其周 期P=2n-1 。
• 如果有两个m序列, 它们的互相关函数的绝
对值有界, 且满足2 n1
1,
2 2 1,
n为奇数 n为偶数(不是4的倍数)
则我们称这一对m序列为优选对。
n级m序列发生器 时钟
n级m序列发生器
模2加
Gold码序列
(a)
1
2
3
4
5
12345 (b)
图2 Gold (a) Gold码发生器的原理结构图; (b) 5级m序列优选对构成的Gold码发生器
• 随着级数n的增加,Gold码序列的数量远远 超过同级数的m序列的数量,便于扩频多址 应用。
Gold序列的相关性
• 自相关性:Gold 证明了Gold 码序列的自 相关函数的所有非最高峰的取值是三值。
• 互相关性:Gold 码序列的互相关函数值的 最大值不超过其m 序列优选对的互相关值, 具有三值互相关函数 。
图1 反馈移位寄存器原理框图
Gold序列
• m序列虽然性能优良(具有尖锐而无旁瓣 的自相关函数), 但同样长度的m序列个数 不多,且序列之间的互相关性不够好。 R·Gold提出了一种基于m序列的PN码序 列, 称为Gold码序列。
• Gold序列是用一对周期和速率均相同,但 码字不同的m序列优选对模2加后得到的。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Gold 序列实验报告一、实验过程及分析1 m 序列&G old 序列的产生(1)选取本原多项式367()1f x x x x x =++++,产生m 序列。

fbconnection_m=[1 0 1 0 0 1 1];mseq=m_sequence(fbconnection_m);(2)由本原多项式37237()1&()1f x x x f x x x x x =++=++++生成的m 序列为m 序列优选对,以此优选对来产生Gold 序列。

fbconnection_op_1=[0 0 1 0 0 0 1]; fbconnection_op_2=[1 1 1 0 0 0 1];goldseq=gold_seq(fbconnection_op_1,fbconnection_op_2);2 m 序列的相关特性-150-100-50050100150kR (k )autocorrelation function of m sequence图1 m 序列自相关函数kR (k )cross-correlation function of m sequence图 2 m 序列互相关函数3 G old 序列的相关特性kR (k )autocorrelation function of gold sequence图3 G old 序列自相关函数-20-15-10-5051015kR (k )cross-correlation function of gold sequencecross-correlation function of gold sequence图4 G old 序列互相关函数图2-5 m 序列&G old 序列最小,最大相关值4 m 序列&G old 序列相关特性比较-200-1000100200-20020406080100120140kR (k )autocorrelation function of m sequence -200-1000100200-20020406080100120140kR (k )autocorrelation function of gold sequence图6 m 序列&G old 序列自相关函数比较-200-1000100200-50-40-30-20-100102030kR (k )cross-correlation function of m sequence -200-1000100200-20-15-10-5051015kR (k )cross-correlation function of gold sequence图7 m 序列&G old 序列互相关函数比较gold 序列在时延不为0是三值的,这一点不如m 序列,在时延为0处具有与m 序列相同的峰值特性。

显然,m 序列的自相关特性比Gold 序列的自相关特性要好。

Gold 序列具有更小的互相关峰值,显然Gold 序列的互相关特性比m 序列的互相关特性性能要好。

5 m 序列优选对m 序列优选对也是gold 序列族中的gold 序列,所以其互相关函数与gold 序列一致。

kR (k )cross-correlation function of m sequence optimum pairs图8 m 序列优选对的互相关函数6 任选6个G old 序列,观察其自相关函数kR (k )kR (k )kR (k )kR (k )kR (k )kR (k )图9 任选6个G old 序列的自相关函数7 任选6对G old 序列,观察其互相关函数kR (k )=17kR (k )=17kR (k )=17kR (k )=17kR (k )=17kR (k )=17图 10 任选6对G old 序列的互相关函数任意两个Gold 序列互相关函数幅度小于或等于17,符合Gold 理论。

源码(1) PN_Correlation.m% =======================================% PN_Correlation.m% Correlation analysis of PN sequence%% Author: jzh (04011646 seu)% Date: 2014.12.29% =======================================% cleanclose all;clear all;clc;% optimum pairsfbconnection_op_1=[0 0 1 0 0 0 1];fbconnection_op_2=[1 1 1 0 0 0 1];% any m sequence for testfbconnection_m=[1 0 1 0 0 1 1];% gold sequencemseq_op_1=m_sequence(fbconnection_op_1);mseq_op_2=m_sequence(fbconnection_op_2);goldseq=gold_seq(fbconnection_op_1,fbconnection_op_2);% m sequencemseq=m_sequence(fbconnection_m);% mappingmseq_op_1((mseq_op_1==0))=-1;mseq_op_2((mseq_op_2==0))=-1;goldseq((goldseq==0))=-1;mseq((mseq==0))=-1;m_auto=ccorr(mseq);% any two m sequences except optimum pairsm_cross=ccorr(mseq,mseq_op_1);gold_auto=ccorr(goldseq(1,:));gold_cross=ccorr(goldseq(1,:),goldseq(2,:));m_op_cross=ccorr(mseq_op_1,mseq_op_2);m_auto_max = max(m_auto)m_auto_min = min(m_auto)gold_auto_max = max(gold_auto)m_cross_amplitude_max = max(abs(m_cross))gold_cross_amplitude_max = max(abs(gold_cross))N=length(mseq); % sequence lengthabscissa=-N+1:N-1; % abscissa axisfigure(1);plot(abscissa,m_auto);xlabel('k'); ylabel('R(k)');legend('autocorrelation function of m sequence'); title('autocorrelation function of m sequence');figure(2);plot(abscissa,m_cross);xlabel('k'); ylabel('R(k)');legend('cross-correlation function of m sequence'); title('cross-correlation function of m sequence');figure(3);plot(abscissa,gold_auto);xlabel('k'); ylabel('R(k)');legend('autocorrelation function of gold sequence'); title('autocorrelation function of gold sequence');figure(4);plot(abscissa,gold_cross);xlabel('k'); ylabel('R(k)');legend('cross-correlation function of gold sequence'); title('cross-correlation function of gold sequence');figure(5);subplot(1,2,1);plot(abscissa,m_auto);xlabel('k'); ylabel('R(k)');title('autocorrelation function of m sequence'); subplot(1,2,2);plot(abscissa,gold_auto);xlabel('k'); ylabel('R(k)');title('autocorrelation function of gold sequence');figure(6);subplot(1,2,1);plot(abscissa,m_cross);xlabel('k'); ylabel('R(k)');title('cross-correlation function of m sequence');subplot(1,2,2);plot(abscissa,gold_cross);xlabel('k'); ylabel('R(k)');title('cross-correlation function of gold sequence');figure(7);plot(abscissa,m_op_cross);xlabel('k'); ylabel('R(k)');legend('cross-correlation function of m sequence optimum pairs');title('cross-correlation function of m sequence optimum pairs');% test autocorrelation of any gold sequencefor test_time = 1:6ii = ceil(rand()*(N+2));figure();temp_gold_auto = ccorr(goldseq(ii,:));plot(abscissa,temp_gold_auto);xlabel('k'); ylabel('R(k)');legend(strcat( 'seq number = ',num2str(ii)));title('autocorrelation function of a random gold sequence');end% test cross-correlation of any 2 gold sequencefor test_time = 1:6ii = ceil(rand()*(N+2));jj=ceil(rand()*(N+2));while jj == iijj=ceil(rand()*(N+2));endfigure();temp_gold_cross = ccorr(goldseq(ii,:),goldseq(jj,:));plot(abscissa,temp_gold_cross);xlabel('k'); ylabel('R(k)');legend(strcat( 'seq1 number=',num2str(ii),', seq2 number=',num2str(jj)));title(strcat('cross-correlation function of 2 random gold sequence:',...' cross correlation amplitude MAX = ',...num2str(max(abs(temp_gold_cross)))));end(2) m_sequence.m% ==============================% m_sequence.m% generating m sequence%% Author: jzh (04011646 seu)% Date: 2014.12.29% ==============================function mseq = m_sequence(fbconnection)% ============================== m_sequence ============================== % generating m sequence%% Input:% fbconnection: feedback connection responding to primitive polynomial% Output:% msequ: generation of m sequence, 1-by-N% ========================================================================n = length(fbconnection);N = 2^n-1; % length of m sequenceregister = [zeros(1,n-1) 1]; % initial state of shift register% preallocatingnewregister = zeros(1,n);mseq = zeros(1,N);mseq(1)=register(n);for ii=2:N% feedbacknewregister(1) = mod(sum(fbconnection.*register),2);% shiftfor jj=2:nnewregister(jj)=register(jj-1);endregister=newregister; % updatemseq(ii)=register(n); % output m sequenceend(3) gold_seq.m% ==================================% gold_seq.m% generating gold sequence family%% Author: jzh (04011646 seu)% Date: 2014.12.29% ==================================function goldseq = gold_seq(fbconnection1,fbconnection2)% =============================== gold_seq =============================== % generating gold sequence family%% Input:% fbconnection1: feedback connection 1% fbconnection2: feedback connection 2% Note: fbconnection1 & fbconnection2 are optimum pairs% Output:% goldseq: generation of gold sequence family, (N+2)-by-N% ========================================================================mseq1 = m_sequence(fbconnection1);mseq2 = m_sequence(fbconnection2);N=2^length(fbconnection1) - 1;goldseq = zeros(N+2,N); % preallocating% different shift amount of two m sequencefor shift_amount = 0:N-1shift_mseq2 = [mseq2(shift_amount+1:N) mseq2(1:shift_amount)];goldseq(shift_amount+1,:) = mod(mseq1+shift_mseq2,2);endgoldseq(N+1,:)=mseq1;goldseq(N+2,:)=mseq2;(4) ccorr.m% =======================================% ccorr.m% calculate cross-correlation function%% Author: jzh (04011646 seu)% Date: 2014.12.29% =======================================function r = ccorr(seq1,seq2)% ================================ ccorr ================================= % calculate cross-correlation function%% Input:% seq1: sequence 1% seq2: sequence 2% Note: (a) length of two sequence must be the same% (b) two input sequence: calculate cross-correlation function% (c) one input sequence: calculate autocorrelation function% Output:% r: correlation function, 1-by-2*N-1% ========================================================================% one input sequence: calculate autocorrelationif nargin==1seq2 = seq1;endN = length(seq1);r = zeros(1,2*N-1); % preallocatingfor k=-N+1:-1seq2_shift = [seq2(k+N+1:N) seq2(1:k+N)];r(N+k) = seq1*seq2_shift';endfor k=0:N-1seq2_shift = [seq2(k+1:N) seq2(1:k)];r(N+k) = seq1*seq2_shift';end。

相关文档
最新文档