三种常用扩频码序列产生及其特性仿真实验报告

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

三种常用扩频码序列产生及其特性仿真实验报告一、三种扩频码序列简介

M序列(即De Bruijn序列)又叫做伪随机序列、伪噪声(PN)码或伪随机码。可以预先确定并且可以重复实现的序列称为确定序列;既不能预先确定又不能重复实现的序列称随机序列;不能预先确定但可以重复产生的序列称伪随机序列。

对于一个n级反馈移位寄存器来说,最多可以有2^n 个状态,对于一个线性反馈移位寄存器来说,全“0”状态不会转入其他状态,所以线性移位寄存器的序列的最长周期为2^n-1。当n级线性移位寄存器产生的序列{ai}的周期为T= 2^n-1时,称{ai}为n级m序列。

当反馈函数f(a1,a2,a3,…an)为非线性函数时,便构成非线性移位寄存器,其输出序列为非线性序列。输出序列的周期最大可达

2^n ,并称周期达到最大值的非线性移位寄存器序列为M序列。

1.2 Gold序列

Gold序列是1967年R.Gold在m序列基础上提出并分析的一种特性较好的伪随机序列,它是由两个码长相等、码时钟速率相同的m 序列优选对通过模2相加而构成的。

其产生的电路示意图如下图所示,通过设置m序列发生器B的不同初始状态,可以得到不同的Gold序列,由于总共有m-1个不同的相对移位(Q为m序列的级数),加上原有的两个m序列,可以产生共m+1个Gold序列。

1.3OVSF序列

对于TD-SCDMA来说,选择的扩频码称为正交可变扩频因子(Orthogonal Variable Spreading Factor,简称OVSF)。

又叫正交可变扩频因子,系统根据扩频因子的大小给用户分配资源,数值越大,提供的带宽越小,是一个实现码分多址(CDMA)信号传输的代码,它由Walsh函数生成,OVSF码互相关为零,相互完全正交。

OVSF序列的特点

1、序列之间完全正交

2、极适合用于同步码分多址系统

3、序列长度可变,不影响正交性,是可变速率码分系统的首选多址扩频码

4、自相关性很差,需与伪随机扰码组合使用

二、三种扩频码序列产生仿真

2.1 m序列

n级线性移位寄存器的如图1所示:

M序列具体实现的产生代码:

X1=1;X2=0;X3=1;X4=0;

X5=1;X6=1;X7=1;X8=0 %移位寄存器输入Xi初T态(01110101), Yi为移位寄存器各级输出

m=60; %置M序列总长度

for i=1:m %1#

Y8=X8;Y7=X7;Y6=X6;Y5=X5;Y4=X4; Y3=X3; Y2=X2; Y1=X1;

X8=Y7;X7=Y6;X6=Y5;X5=Y4;X4=Y3; X3=Y2; X2=Y1;

X1=xor(Y7,Y8); %异或运算

if Y8==0

U(i)=-1;

else

U(i)=Y8;

end

end

M=U%绘图

i1=i

k=1:1:i1;

plot(k,U,k,U,'rx')

xlabel('k')

ylabel('M序列')

title('移位寄存器产生的M序列')

实验产生的结果:

用阶梯图产生表示:

X1=1;X2=0;X3=1;X4=0; X5=1;X6=1;X7=1;X8=0 %移位寄存器输入Xi初T态(01110101), Yi为移位寄存器各级输出

m=60; %置M序列总长度

for i=1:m %1#

Y8=X8;Y7=X7;Y6=X6;Y5=X5;Y4=X4; Y3=X3; Y2=X2; Y1=X1; X8=Y7;X7=Y6;X6=Y5;X5=Y4;X4=Y3; X3=Y2; X2=Y1;

X1=xor(Y7,Y8); %异或运算

if Y8==0

U(i)=-1;

else

U(i)=Y8;

end

end

m=60; %置M序列总长度

for i=1:m %1#

Y8=X8;Y7=X7;Y6=X6;Y5=X5;Y4=X4; Y3=X3; Y2=X2; Y1=X1; X8=Y7;X7=Y6;X6=Y5;X5=Y4;X4=Y3; X3=Y2; X2=Y1;

X1=xor(Y7,Y8); %异或运算

if Y8==0

U(i)=-1;

else

U(i)=Y8;

end

end

M=U

%绘图

stairs(M);

得出图形为:

二、GOLD序列的产生:

自相关性:首先将第一个m序列变成双极性的序列,在与本身进行移位相乘进行积分运算,代码如下:

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

for j=0:N-1

rho(j+1)=sum(out1.*[out1(1+j:N),out1(1:j)])/N;

end

j=-N+1:N-1;

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

figure(3)

plot(j,rho);

axis([-10 10 -0.1 1.2]);title('第一个m序列的自相关函数')

互相关性:第一个m序列的函数与第二个m序列函数的移位相乘进行积分运算。代码如下:

for j=0:N-1

R(j+1)=sum(out1.*[out2(1+j:N),out2(1:j)]);

Gold序列及M自相关互相关代码:

clear;

reg1=ones(1,7); %寄存器初始状态

coeff1=[1 0 0 0 0 1 1]; %设置系数

N=2^length(reg1)-1;

%产生m序列

for k=1:N

a_n=mod(sum(reg1.*coeff1(1:length(coeff1)-1)),2);

reg1=[reg1(2:length(reg1)),a_n];

out1(k)=reg1(1);

end

reg2=ones(1,7); %寄存器初始状态

coeff2=[1 10 0 1 1 1]; %设置系数

N=2^length(reg2)-1;

for k=1:N

相关文档
最新文档