三种常用扩频码序列产生及其特性仿真实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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