文档库 最新最全的文档下载
当前位置:文档库 › Gold序列产生仿真课程设计报告

Gold序列产生仿真课程设计报告

Gold序列产生仿真课程设计报告
Gold序列产生仿真课程设计报告

目录

一.基本原理 (1)

1.1伪随机序列 (1)

1.11伪随机序列的相关概念 (1)

1.12伪随机序列的数学 (1)

1.13伪随机序列的相关特性 (2)

1.2m序列 (3)

1.3Gold序列 (5)

1.31Gold序列的产生原理 (5)

1.32Gold序列的基本性质 (6)

二.设计过程 (6)

2.1 MATLAB编程简介 (6)

2.2 设计思路与流程图 (7)

2.3 仿真程序 (8)

三.仿真结果 (9)

四.结果分析 (9)

4.1相关性的理论分析 (9)

4.2自相关 (11)

4.3互相关 (13)

五.总结 (17)

一:基本原理

Gold序列是R·Gold提出的一种基于m序列的码序列,这种序列有较优良的自相关和互相关特性,构造简单,产生的序列数多,因而获得了广泛的应用。

1.1伪随机序列

1.1.1伪随机序列相关概念

伪随机序列作为扩频通信系统中的一部分是十分关键的,它关系到扩频系统的性能。四十年代末,信息论的奠基人香农(C.E.Shannon)提出的编码定理指出:只要信息速率Rb小于信道容量C,则总可以找到某种编码方法,在码周期相当长的条件下,能够几乎无差错的从收到高斯噪声干扰的信号中复制出原发信息。这里有两个条件,一是Rb<=C,二是编码的码周期足够长。同时香农在证明编码定理的时候,提出用具有白噪声统计特性的信号来编码。白噪声是一种随机过程,它的瞬时值服从正态分布,功率谱在很宽频带内都是均匀的。但是至今无法实现对白噪声放大、调制、检测、同步及控制等,而只能用具有类似于限带白噪声统计特性的伪随机序列信号来逼近它,并作为扩频系统的扩频码。

六十年代末,一些易于产生、加工和复制且具有白噪声性质的“伪噪声编码技术”日趋成熟,因此高效抗干扰编码通信变得蓬勃发展起来。同时用各种不同波形的正交码来实现波形分割的码分多址通信也相继出现,实现了无线用户的随意呼叫通信。这种技术在地面多址通信和卫星通信中都可采用。由于码分多址通信有抗干扰性能强和一定程度的保密性等一系列优点,所以首先引起国防军事通信部国防军事通信部门的注意,并出现了一些军用战略卫星通信的码分系统和超短波战术通信的码分系统。民用通信方面,也相继出现一些具体的方案。

伪随机序列(伪随机码)的一般定义是:如果一个序列,一方面它的结构(或形式)是可以预先确定的,并且是可以重复地产生和复制的;另一方面它又有某种随机序列的随机特性(即统计特性),我们称这种序列为伪随机序列(伪随机码)。伪随机序列虽然只有两个电平,但却具有类似白噪声的相关特性,只是幅度概率分布不再服从高斯分布。它应具有如下特性:(l)每一周期内0和1出现的次数近似相等。

(2)每一周期内,长度为n比特的游程出现的次数比长度为n+1比特游程次数多一倍(游程是指相同码元的码元串)。

(3)对于狭义伪随机序列,将给定随机序列位移任何一个非零数目个元素,所得的序列将和原序列有一半的元素相同,一半的元素不同。

1.1.2 伪随机序列的数学定义

白噪声是一种随机过程,瞬时值服从正态分布,自相关函数和功率谱密度有极好的相关性,伪随机序列是针对白噪声演化而来的,只有“0”和“1”两种电平,因此伪随机编码概率分布不具备正态分布形式。但当序列足够长时,由中心极限定理可知,它趋2近于正态分布,由此,伪随机序列定义如下:

(1)凡自相关函数具有

???????-===∑∑=+=p i i i p i i a p a a p a p R 1121111)(ττ 00≠=ττ (2.1)

式的序列称为狭义伪随机序列。

(2)凡自相关函数具有

???????===∑∑=+=p i i i p i i a c a a p a p R 112111)(ττ 1<

形式的序列,成为第一类广义伪随机序列。

(3)凡互相关系数具有

1)(<<τab R 或 0)(≈τab R (2.3) 形式的序列,称为第二类广义伪随机序列。

(4)凡相关函数满足(1)、(2)、(3)三者之一的序列,统称为伪随机序列。由上面的四种定义可以看出,狭义伪随机序列是第一类广义伪随机序列的一种特例。

1.1.3 伪随机序列的相关特性

扩频系统中,对伪随机序列而言,最关心的问题就是其相关特性,包括自相关性、互相关性及部分相关性。下面分别给出这些相关函数的定义。设有两条长为N 的序列{a }和{b },序列中的元素分别为a i ,b i ,(i=1,2,3,…,N)。则序列的自相关函数定义为:

∑=+=p i i i a a a R 1)(τ

τ (2.4)

由于{a }是周期为P 的序列,故有a i +p =a i ,其归一化自相关函数ρa (τ)定义为:

∑=+=p

i i i a a a p 11)(ττρ (2.5) 序列{a }和{b }的互相关函数定义为:

∑=+=p

i i i ab b a R 1

)(ττ (2.6)

归一化互相关函数定义为:

∑=+=p

i i i ab b a p 1

1)(ττρ (2.7) 对于二进制序列,可以表示为:

P D

A

ab

)

(

)

(

)

(

τ

τ

τ

ρ

-

=

(2.8)

其中,A为序列{a}和{b}对应码元相同的数目,D为不相同的数目。

若ρab(τ)=0,则序列{a}和序列{b}正交,定义{a}的部分相关函数和归一化部分相关函数为(式中t为某一整数) :

∑+

=

+

=

1

1

)

(

N

i

i

i

N

a

a

R

τ

τ

,P

N≤

∑+

=

+

=

1

1

1

)

(

N

i

i

i

N

a

a

τ

ρ

P

N≤(2.9) 定义序列{a}和序列{b}的部分互相关函数和归一化部分互相关函数分别为:

∑+

=

+

=

1

1

)

(

N

i

i

i

Nab

b

a

R

τ

τ,P

N≤∑+

=

+

=

1

1

1

)

(

N

i

i

i

N

b

a

τ

ρP

N≤(2.10) 1.2 m序列

m序列是最长线性移位寄存器序列的简称。它是由多级移位寄存器或其他延迟元件通过线性反馈产生的最长的码序列。由于m序列容易产生、规律性强、有许多优良的性能,在扩频通信中最早获得广泛的应用。

如图2.1所示,m序列可由二进制线性反馈移位寄存器产生。它主要由n个串联的寄存器、移位脉冲产生器和模2加法器组成。图中第i级移存器的状态a i表示,a i=0 或a i=1,i=整数。反馈线的连接状态用c i表示,c i=1表示此线接通(参加反馈),c i=0表示此线断开。

由于反馈的存在,移存器的输入端受控地输入信号。不难看出,若初始状态为全“0”,则移位后得到的仍为全“0”,因此应避免出现全“0”状态,又因为n级移存器共有2n-1种可能的不同状态,除全“0”状态外,剩下2n-1种状态可用。每移位一次,就出现一种状态,在移位若干次后,一定能重复出现前某一状态,其后的过程便周而复始了。反馈线位置不同将出现不同周期的不同序列,我们希望找到线性反馈的位置,能使移存器产生的序列最长,即达到周期P=2n-1。按图中线路连接关系,可以写为:

=

-

-

-

-

=

=

n

i

i

n

i

n

n

n

n

n

a

c

a

c

a

c

a

c

a

c

a

1

1

1

2

2

1

1

...(模2)(2.11)该式称为递推方程。

图2.1 线性反馈移位寄存器

上面曾经指出,c i的取值决定了移位寄存器的反馈连接和序列的结构。现在将它用下列方程表示:

∑==++++=n

i i i n

n x c x c x c x c c x f 02210...)( (2.12) 这一方程称为特征多项式。式中x i

仅指明其系数c i 的值(1或0),x 本身的取值并无实际意义,也不需要去计算x 的值。例如,若特征方程为f (x )=1+x +x 4则它仅表示x 0,x 1和x 4的系数c 0=c 1=c 4=1,其余为零。经严格证明:若反馈移位寄存器的特征多项式为本原多项式,则移位寄存器能产生m 序列。只要找到本原多项式,就可构成m 系列发生器。

表2.1给出了部分本原多项式。

表2.1 部分本原多项式

m 序列的基本性质如下:

(1)周期性:m 序列的周期p 取决于它的移位寄存器的级数, p =2n -1 (2)平衡特性:m 序列中0和1的个数接近相等;m 序列中一个周期内“1”的数目比“0”的数目多1个。

(3)游程特性:m 序列中长度为1的游程约占游程总数的1/2,长度为2的游程约占游程总数的1/22 ,长度为3的游程约占游程总数的1/23 …

(4)线性叠加性:m 序列和其移位后的序列逐位模2相加,所得的序列还是m 序列,只是相移不同而已。例如1110100与向右移3位后的序列1001110逐位模2相加后的序列为0111010,相当于原序列向右移1位后的序列,仍是m 序列。用公式表示为:

)()()(i u i u i u q p =⊕ (2.13)

其中: u(i)、u p (i)、u q (i )分别为原序列、平移p 个元素后的序列及平移相加后得到的序列中的第i 个元素。

(5)二值自相关特性:码位数越长越接近于随机噪声的自相关特性。m 序列的自相关函数计算式为

[]??

???-=+=m t m t m E R m /11)()()(ττ00≠=ττ (2.14)

其中:12-=n M ,为码序列的最大长度,亦即m 序列的周期;;1...,3,2,1,-==M k kT c τ

T c 为m 序列码的码元宽度。可见,相关函数是个周期函数。

(6)m 序列发生器中,并不是任何抽头组合都能产生m 序列。理论分析指出,产生的m 序列数由下式决定:

n n /)12(-φ (2.15)

其中Φ(x )为欧拉数(即包括1在内的小于x 并与它互质的正整数的个数)。例如5级移位寄存器产生的31位m 序列只有6个

1.3 Gold 序列

m 序列虽然性能优良,但同样长度的m 序列个数不多,且序列之间的互相关值并不都好。R ·Gold 提出了一种基于m 序列的码序列,称为Gold 码序列。随着级数n 的增加,Gold 码序列的数量远超过同级数的m 序列的数量,且Gold 码序列具有良好的自相关特性和互相关特性,得到了广泛的应用。

1.3.1 Gold 序列的产生原理

Gold 序列就是为了解决m 序列个数不多且m 序列之间的互相关函数值不理想而提出的,它是用一对周期和速率均相同的m 序列优选对模2加后得到的。其发生器结构框图如图3.1所示:

图3.1 Gold 序列发生器 Gold 序列具有良好的自、互相关特性,且地址数远远大于m 序列地址数。如有两个m 序列,它们的互相关函数的绝对值有界,且满足以下条件:

??

???++=++,12,12)(2221n n

R τ的倍数

不是为偶数,为奇数4n n n (3.1) 我们称这一对m 序列为优选对。每改变两个m 序列相对位移就可得到一个新的Gold 序列,当相对位移2n -1位时,就可得到一族2n -1个Gold 序列。再加上两个m 序列,共有2n +1个Gold 序列码。

1.3.2 Gold 序列的基本性质

(1)平衡性: Gold 码序列分为平衡码和非平衡码。Gold 序列的平衡特性有3种,也就是Gold 序列有3种“0”和“1”情况:

①“1”码元数目仅比“0”码元数目多一个,这就是平衡Gold 序列。

②“1”码元过多。

③“1”码元过少。

后两种序列是不平衡Gold 序列。当n 为奇数时,在周期N 的N+2个Gold 序列中,有2n -1个序列是平衡的。即平衡码数量占50%,非平衡码数量占50%。当n 为偶数,但不能被4整除时,在周期N =2n -1的N+2个Gold 序列中, 平衡码占75%,非平衡码占25%。相比较而言,m 序列是平衡的,“1”码和“0”码的个数基本相等。

(2)自相关特性:Gold 证明了Gold 码序列的自相关函数的所有非最高峰的取值是三值。其自相关函数值所有非最高峰取值R 如下式。其中p =2n -1,p 为Gold 码序列的周期。

?????????---=p

t p t p R 21 (3.2) 在位移k=0 ,R 取得最高峰,即R=1,此时同m 序列一样,具有尖锐的自相关峰值。 因此Gold 码序列应具有四个值的自相关函数值。(3.2)式中t 的取值是,当n 为奇数时,1221

+=+n t 。当n 为偶数,且不是4的整倍数时,1222

+=+n t 。

(3)互相关特性:Gold 码序列具有较好的互相关特性,Gold 码序列的互相关函数值的最大值不超过其m 序列优选对的互相关值。Gold 码也具有三值互相关函数值,其取值同(3.2)式。当n 为奇数时,序列族中约50%的码序列的互相关函数值为-1/p ;而n 为偶数时,有75%的码序列的互相关函数值为-1/p 。

二:设计过程

2.1 MATLAB 编程简介

Matlab 语言是当今国际上科学界最具影响力,也是最有活力的软件。它起源于矩阵运算, 并已经发展成一种高度集成的计算机语言。 Matlab 具有强大的数学运算能力,方便实用的绘图功能及语言的高度集成。Matlab 是矩阵实验室(Matrix Laboratory )之意。 Matlab 除具备卓越的数值计算能力外,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能。

2.2 设计思路与流程图

2.21流程图

产生gold序列流程图

2.22思路:

1产生m序列

我们以6阶移位寄存器为例,来产生m序列。特征多项式f=x6+x+1为本原多项式,亦

即反馈连接形式为[C1,C2,C3,C4,C5]=[ 1 0 0 0 0 1 1]时,输出序列为m序列。

在实际的应用中,可以根据不同的本原多项式来实现不同的m序列。只需要输入本原多项式的方程,即可在Matlab环境中实现自己所要的不同周期的m序列。

2产生Gold序列

对6阶移位寄存器,由本原多项式f(x)= x6+x+1和本原多项式f(x)= x6+x5+x2+x+1生成的m序列为m序列优选对,以此优选对为例来产生Gold序列。

2.3 仿真程序

r=6;N=2^r-1;%移位寄存器的长度和序列的长度

s1(1:6)=[1 0 0 0 0 1]; %initial value 1

s2(1:6)=[1 0 0 0 0 0]; %initial value 1

f1=[1 0 0 0 0 1 1]; %特征多项式f=x^6+x+1;

f2=[1 1 0 0 1 1 1];%特征多项式f=x^6+x^5+x^2+x+1;

for n=r+1:N;%进行循环

s1(n)=mod(sum(s1(n-r:n-1).*s1(1:r)),2);%产生m序列

end;

for n=r+1:N;%进行循环

s2(n)=mod(sum(s2(n-r:n-1).*s2(1:r)),2);%产生m序列

end;

for n=r+1:N;%进行循环

s=mod(s1+s2,2);%进行模2加

gold_sequence_1=s;

figure(1);%产生gold序列

stem(gold_sequence_1);

end;

三.仿真结果

仿真产生的Gold 序列

得到gold 序列值为:

000001100001011110001011101101010110000100011000001111101010101

通过运行结果可以看出是由0、1组成的阶梯形图形,stem 函数使结果明显,其中r=6时,l=2^r-1=63位。通过计算两个m 序列摩尔加得到的gold 序列与理论计算值一致,达到了实验要求。

四: 结果分析

4.1 相关性的理论分析

伪随机码大都具有尖锐的自相关特性和较好的互相关特性,同一码组内的各个码元占据的频带可以做到很宽且平衡相等。基本的伪随机码序列互相关性都不够好。因此,实际的CDMA 系统中常选用自相关性好的伪随机码作为扩频码,而另外选择互相关性好的编码作为地址码。下面对伪随机码的自相关特性和互相关特性加以简要分析。在数学上, 信号的自相关性是用自相关函数来表征的,而自相关函数所解决的是信号与它自身相移以后的相似性问题,其定义如下:

?-=2/2/)()(1)(T T a dt t f f T τττ? (4.1)

(4.1)式中,f (t )为信号的时间函数,τ为时间延迟,f(t?τ)为f(t)经时间τ的延时后得到的信号。当f(t)与f(t?τ)完全重叠,即τ=0时,自相关函数值Φa (τ)为一常数(通常为1);当两信号不完全重叠,即τ≠0时,自相关函数值Φa (τ)很小(通常为一负值)。其重要意义是:对通信系统的接收端而言,只有包含伪随机序列与接收机本地产生的伪随机序列相同且同步的信号才能被检测出来,其他不同步(有延时τ)的信号,即使包含的伪随机序列完全相同,也会作为背景噪声(多址干扰)来对待。以m 序列为例,其自相关函数曲线如图4.3所示。其中,P 为序列的周期长度,RP 为序列的码元速率,其倒数1/RP 为子码宽度。由图4.3可见,由于同步且完全相同的m 序列的自相关函数值为1(最大), 因此接收机的相关器能够很容易地捕获该信号并进行接收;其它的m 序列,即使完全相同,只要时延差τ大于一个子码宽度,自相关函数值就会迅速下降到-1/P ,相关器就不会捕获该信号了。此外,在接收端和发送端满足序列同步和位同步(由PN 码的捕获和跟踪系统保证)的前提下,同一个伪随机序列只要其相位被错动(偏置)不同数目的子码宽度, 就可以用作多个用户的扩频序列。

4.1 m 序列自相关函数

伪随机码序列除自相关性外,与其它同类码序列的相似性和相关性也很重要。例如有许多用户共用一个信道,要区分不同用户的信号,就得靠相互之间的区别或不相似性来区分。换句话说,就是要选用互相关性小的信号来表示不同的用户。对于两个不同的信号f (t)与g (t),它们之间的互相关函数定义为:

?-=2/2/)()(1)(T T c dt t g f T

τττ? (4.2) 如果两个信号都是完全随机的,在任意延迟时间τ都不相同, 则(4.2)式的结果为0, 同时称这两个信号是正交的。如果二者有一定的相似性, 则结果不完全为0。通常希望两个信号的互相关函数值越小越好, 这样它们就越容易被区分, 且相互之间的干扰也就越小。

4.2 自相关性

当输入为一个序列时,求其自相关函数。代码如下:

clear all%先要清除

clc

r=6;N=2^r-1;

s1(1:6)=[1 0 0 0 0 0]; %initial value 1

s2(1:6)=[1 0 0 0 0 0]; %initial value 1

f1=[1 0 0 0 0 1 1]; %特征多项式f=x^6+x+1;

f2=[1 1 0 0 1 1 1]; %特征多项式f=x^6+x^5+x^2+x+1;

for n=r+1:N %creat pn 1

s1(n)=mod(sum(s1(n-r:n-1).*f1(1:r)),2);%产生m序列

end

%figure(0);

%plot(s1,n);

%grid on;

for n=r+1:N %creat pn 2

s2(n)=mod(sum(s2(n-r:n-1).*f2(1:r)),2);%产生m序列

end

s=mod(s1+s2,2); %creat pn gold

gold_sequence_1 = s;

figure(1);

stem(gold_sequence_1);

grid on;

gold_sequence_1=2*gold_sequence_1-1; %变为双极性序列

for j=0:N-1

s3(j+1)=sum(gold_sequence_1.*[gold_sequence_1(1+j:N),gold _sequence_1(1:j)])/N;%自相关函数分析

end

j=-N+1:N-1;%进行循环

rho=[fliplr(s3(2:N)),s3];

figure(2)

plot(j,rho);

axis([-30 30 -1 1.2]);title('第一个gold序列的自相关函数') %y1=xcorr(gold_sequence_1);

%t=1:1:120;

%figure(2);

%plot(y1);

%axis([0,120,-1,40]);

%grid

图4.2 伪随机序列的相关性

对比:

图 4.3 m序列自相关性图

图4.4 Gold序列自相关性图

由图4.3和图4.4可以看出:m 序列自相关曲线要比Gold序列自相关曲线整体上平缓,由此也可以得出,m序列的自相关性比Gold序列的自相关性要好。

4.3互相关性:

仿真代码如下:

Clea3r all%先要清除

r=6;N=2^r-1; %移位寄存器的长度和序列的长度

s1(1:6)=[1 0 0 0 0 0]; %initial value 1

s2(1:6)=[1 0 0 0 0 0]; %initial value 1

f1=[1 0 0 0 0 1 1]; %特征多项式f=x^6+x+1;

f2=[1 1 0 0 1 1 1]; %特征多项式f=x^6+x^5+x^2+x+1; for n=r+1:N %creat pn 1

s1(n)=mod(sum(s1(n-r:n-1).*f1(1:r)),2);%产生m序列end

%figure(0);

%plot(s1,n);

%grid on;

for n=r+1:N %creat pn 2

s2(n)=mod(sum(s2(n-r:n-1).*f2(1:r)),2);%产生m序列end

s=mod(s1+s2,2); %creat pn gold

gold_sequence_1 = s;

figure(1);

stem(gold_sequence_1);

grid on;

r=6;M=2^r-1;

s1(1:6)=[1 0 0 0 1 0]; %initial value 1

s2(1:6)=[1 0 0 0 1 0]; %initial value 1

f1=[1 0 0 0 0 1 1]; %特征多项式f=x^6+x+1;

f2=[1 1 0 0 1 1 1]; %特征多项式f=x^6+x^5+x^2+x+1; for n=r+1:M %creat pn 3

s1(n)=mod(sum(s1(n-r:n-1).*f1(1:r)),2);%产生m序列end

%figure(0);

%plot(s1,n);

%grid on;

for n=r+1:M %creat pn 4

s2(n)=mod(sum(s2(n-r:n-1).*f2(1:r)),2);%产生m序列

end

s=mod(s1+s2,2); %creat pn gold

gold_sequence_2 = s;

figure(2);

stem(gold_sequence_2);

grid on;

gold_sequence_1=2*gold_sequence_1-1;%变为双极性序列

gold_sequence_2=2*gold_sequence_2-1;%变为双极性序列

for j=0:M-1

s3(j+1)=sum(gold_sequence_1.*[gold_sequence_2(1+j:M),gold _sequence_2(1:j)])/M;%互相关函数分析

end

j=-M+1:M-1;

rho=[fliplr(s3(2:M)),s3];%图形

figure(3)

plot(j,rho);

axis([-30 30 -1 1.2]);title('第一个gold序列的互相关函数')

%y1=xcorr(gold_sequence_1);

%t=1:1:120;

%figure(3);

%plot(y1);

%axis([0,120,-1,40]);

%grid

对比m序列:

图 4.5 m序列互相关性图

图4.6 Gold序列互相关性图

比较图4.5和图4.6可以看出,Gold序列的互相关曲线与m序列相比要更小,Gold序列的互相关性比m序列的互相关性好。

五:总结

Gold序列是R·Gold提出的一种基于m序列的码序列,这种序列有较优良的自相关和互相关特性,构造简单,产生的序列数多,因而获得了广泛的应用。本设计性试验通过自己查表,用matlab的m文件生成需要的Gold序列,然后又就所设计的序列进行自相关和互相关性分析。本文在简要介绍扩频通信技术和CDMA通信系统相关原理的基础上,较为深入的研究了伪随机序列中的m序列与Gold序列的产生方法及各自的性质,设计了相应的Matlab程序,并利用Matlab、Gold序列的相关性进行了分析。

本实验熟知m序列虽然性能优良,但同样长度的m序列个数不多,且序列之间的互相关值并不都好。Gold码序列自相关特性虽然略逊于m序列,但其互相关特性比m序列要好,这与理论分析高度吻合。

Gold序列可以软件实现,也可以硬件实现,但是通过本次设计可以看到软件设计的许多优点。本实验自主设计,自主编程,对不熟知的扩频技术自学过程掌握了伪随机序列的各种特性,增强自学能力,扩张了视野。

相关文档