资源描述:
《实验8 多户CDMA直接序列扩频系统仿真.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程实验报告课程3G移动通信实验实验名称多用户CDMA直接序列系统扩频仿真学院通信工程专业通信工程班级13083414学号13081403学生姓名一、实验内容【实验目的】n加深对CDMA扩频系统的理解;n能够使用Matlab语言完成简化的CDMA直接序列扩频系统仿真和分析;【实验内容】n使用Matlab语言完成扩频系统仿真;n分析误比特率;【实验设备】n一台PC机【实验步骤】生成4个用户的信息码,分别用各自的扩频码进行扩频,然后按照图3的原理进行发送、接收,统计误比特率。其中噪声为高斯白噪声awgn,信噪比可以取2dB。【实验报告
2、】按照要求完成实验报告。实验报告中要求画出实验步骤中的波形图,并对实验结果进行总结。【实验原理】直接序列扩频系统采用高码速率的直接序列(DirectSequence,DS),伪随机码在发端进行扩频,在收端用相同的码序列去进行解扩,然后将展宽的扩频信号还原成原始信息。直接序列扩频系统的发射机和接收机框图如图1所示。二、仿真程序及说明ex_f.m:functionm=ex_f(mt,pn)%ex_f用pn序列扩频mt%返回mt与pn大小乘积的序列m=reshape((mt'*pn)',1,[]);endde_f.m:functiond
3、=de_f(s,pn)%de_fdecodetheexfrequncymodulate%s->theseqneeddecode,lengthofsmustbeintergallylargerthanlengthofpnd_l=s.*ex_f(ones(1,length(s)/length(pn)),pn);d=sum(reshape(d_l,length(pn),[]))/length(pn);endmultiuser.m:H2=[11;1-1];NH2=H2*(-1);H4=[H2H2;H2NH2];NH4=H4*(-1);H8
4、=[H4H4;H4NH4];NH8=H8*(-1);H16=[H8H8;H8NH8];NH16=H16*(-1);H32=[H16H16;H16NH16];NH32=H32*(-1);H64=[H32H32;H32NH32];%产生walsh64扩频码%p1=H64(5,:);p2=H64(10,:);p3=H64(15,:);p4=H64(20,:);m1t=mod(fix(randn(1,16)),2)*2-1;%产生4个用户的随机序列%m2t=mod(fix(randn(1,16)),2)*2-1;m3t=mod(fix(r
5、andn(1,16)),2)*2-1;m4t=mod(fix(randn(1,16)),2)*2-1;s1=ex_f(m1t,p1);%对四个用户进行扩频%s2=ex_f(m2t,p2);s3=ex_f(m3t,p3);s4=ex_f(m4t,p4);s=s1+s2+s3+s4;%合并并通过AWGN信道%s=awgn(s,0.01);d1=de_f(s,p1);%解扩频%d2=de_f(s,p2);d3=de_f(s,p3);d4=de_f(s,p4);d1=d1./abs(d1);%判决%d2=d2./abs(d2);d3=d3
6、./abs(d3);d4=d4./abs(d4);err1=sum(abs(m1t-d1)/2);%统计误码%err2=sum(abs(m2t-d2)/2);err3=sum(abs(m3t-d3)/2);err4=sum(abs(m4t-d4)/2);subplot(4,2,1)stairs(m1t);title('用户1消息序列')axis([116-1.51.5]);subplot(4,2,3)stairs(m2t);title('用户2消息序列')axis([116-1.51.5]);subplot(4,2,5)stair
7、s(m3t);title('用户3消息序列')axis([116-1.51.5]);subplot(4,2,7)stairs(m4t);title('用户4消息序列')axis([116-1.51.5]);subplot(4,2,2)stairs(d1);title(['用户1接收序列''(''误码:'num2str(err1)'误码率:'num2str(err1/16)')'])axis([116-1.51.5]);subplot(4,2,4)stairs(d2);title(['用户2接收序列''(''误码:'num2str(
8、err2)'误码率:'num2str(err2/16)')'])axis([116-1.51.5]);subplot(4,2,6)stairs(d3);title(['用户3接收序列''(''误码:'num2str(err3)'误码率:'num2s