MATLAB仿真m序列和Gold序列自相关与互相关
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB仿真m序列和Gold序列自相关与互相关
MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。本章正是运用MATLAB来仿真m序列和Gold序列的相关特性,以及OCDMA 系统的误码率同用户数
N的关系曲线。
su
1 仿真过程
在理论分析的基础上,下面使用附录上两段程序,通过MATLAB仿真得出m
序列和Gold序列的自己相关性。
这段m序列产生程序采用了8个移位寄存器,将最后两个移位寄存器的值进行异或处理反馈给第一个移位寄存器,然后向前移位,输出最后一个移位寄存器的值,Gold序列的产生只是将两个m序列中的一个进行延时移位,再进行异或,产生的主要原理和m序列并无较大差异。
在这两段程序个前半部分m序列和Gold序列生成的基础上,只要将
y1=xcorr(x1)改为y1=xcorr(x1,x2)即可求出它们的互相关仿真。
2 仿真结果
在系统中采用上述序列仿真得到自相关和互相关特性曲线如图1 , 2及图3 所示。
图1 m 序列的自相关曲线
图4-2 m 序列与Gold序列的自相关曲线
图4-3 m 序列与Gold 序列的互相关曲线
附录
程序1
X1=1;X2=0;X3=1;X4=0; %移位寄存器输入Xi初T态(0101), Yi为移位寄存器各级输出
m=120; %置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
t=1:1:i1;
x1=[(2*M)-1]’;%将运行结果m序列M从单极性序列变为双极性序列y1=xcorr(x1);%求自相关性
t=1:1:i1;
plot(t,y1(1:i1));axis([1,120,-12,288])%绘出信号的相关图grid
xlabel('t')
ylabel('相关性')
title('移位寄存器产生的M序列的相关性')
程序2
function c=gold()
n=7;
a=[1 1 1 1 1 1 1 1];
co=[];
for v=1:2^n-1
co=[co,a(1)];
a(8)=mod(a(5)+a(1),2);
a(1)=a(2);
a(2)=a(3);
a(3)=a(4);
a(4)=a(5);
a(5)=a(6);
a(6)=a(7);
a(7)=a(8);
end
m1=co;
b=[1 0 1 0 0 0 0 1];
co=[];
for v=1:2^n-1
co=[co,b(1)];
m=mod(b(5)+b(1),2);
p=mod(b(6)+m,2);
b(8)=mod(b(5)+b(1),2);
b(1)=b(2);
b(2)=b(3);
b(3)=b(4);
b(4)=b(5);
b(5)=b(6);
b(6)=b(7);
b(7)=b(8);
end
m2=co;
c=xor(m1,m2);
x2=[(2*c)-1]’;%将运行结果Gold序列c从单极性序列变为双极性序列y1=xcorr(x2);%求自相关性
t=1:1:120;
plot(t,y1(1:120));axis([1,120,-12,288])%绘出信号的相关图grid
xlabel('t')
ylabel('相关性')
title('移位寄存器产生的Gold序列的相关性')