三种常用扩频码序列产生及其特性仿真实验报告
- 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
a_n=mod(sum(reg2.*coeff2(1:length(coeff2)-1)),2); %移位,反馈
reg2=[reg2(2:length(reg2)),a_n]; %反馈
out2(k)=reg2(1); %取第一个值输出
end
%产生gold序列
gold=mod(out1+out2,2);
c=1:N;
figure(1)
[b1,t1]=stairs(c,out1);
subplot(2,1,1);plot(b1,t1);
axis([0 130 -0.1 1.1]);title('第一个m序列');
[b2,t2]=stairs(c,out2);
subplot(2,1,2);plot(b2,t2);
axis([0 130 -0.1 1.1]);title('第二个m序列');
figure(2)
[b3,t3]=stairs(c,gold);
plot(b3,t3);
axis([0 130 -0.1 1.1]);title('gold序列')
out1=2*out1-1; %变为双极性序列
out2=2*out2-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序列的自相关函数')
%互相关函数
for j=0:N-1
R(j+1)=sum(out1.*[out2(1+j:N),out2(1:j)]);
end
j=-N+1:N-1;
R=[fliplr(R(2:N)),R];
figure(4)
plot(j,R);
axis([-N N -20 20]);title('两个m序列的互相关函数');
运行后结果:
运行后Gold序列的仿真图
两m序列的互相关性仿真图
m序列自相关性仿真图
三、OVSF码仿真代码
ovsf码的互相关和自相关
a=[1 -1 1 1 -1 1 -1 -1];
b=[1 -1 -1 1 1 -1 -1 1];
P=length(a);
%求序列a的自相关函数
Ra(1)=sum(a.*a);
for k=1:P-1
Ra(k+1)=sum(a.*circshift(a,[0,k])); end
%求序列b的自相关函数
Rb(1)=sum(b.*b);
for k=1:P-1
Rb(k+1)=sum(b.*circshift(b,[0,k])); end
%求序列a和b的互相关函数
Rab(1)=sum(a.*b);
for k=1:P-1
Rab(k+1)=sum(a.*circshift(b,[0,k])); end
x=[0:P-1];
figure(9)
subplot(3,1,1);
stem(x,Rab);
ylabel('a和b的互相关函数');
axis([0 P-1 -10 12]); grid;
xlabel('偏移量'); subplot(3,1,2);
stem(x,Ra);
ylabel('a自相关函数'); xlabel('偏移量');
%axis([0 P-1 -5 30]); subplot(3,1,3);
stem(x,Rb);
%plot(x,Rb)
xlabel('偏移量');
ylabel('b的自相关函数');
总结特性分析:
1.自相关性比较
由图像比较三种序列的自相关性,可知三种序列自相关性m序列>gold>序列>ovsf序列。
M序列自相关性最大,容易与噪声区分。
2.互相关性比较
由图像比较三种序列的互相关性,可知三种序列互相关性为ovsf序列>gold序列>m序列。
在通信较为复杂的环境下,ovsf序列的互相关性为0,不易与其他信号产生干扰。
4、M序列自相关函数近似于冲激函数的形状,不同序列间的互相关特性一致性不好。
5、Gold序列的自相关特性略差于m序列,但互相关特性优于m 序列
6、OVSF序列之间完全正交,即互相关性很好,因此极适合用于同步码分多址系统,但自相关性很差。