当前位置:文档之家› 《移动通信原理与应用》实验报告

《移动通信原理与应用》实验报告

重庆交通大学信息科学与工程学院综合性设计性实验报告专业:通信工程专业12级学号:631206040218姓名:柴闯闯实验所属课程:移动通信原理与应用实验室(中心):信息技术软件实验室指导教师:谭晋2014年11月一、题目扩频通信系统仿真实验二、仿真要求①传输的数据随机产生,要求采用频带传输(DPSK调制);②扩频码要求采用周期为63(或127)的m序列;③仿真从基站发送数据到三个不同的用户,各不同用户分别进行数据接收;④设计三种不同的功率延迟分布,从基站到达三个不同的用户分别经过多径衰落(路径数分别为2,3,4);⑤三个用户接收端分别解出各自的数据并与发送前的数据进行差错比较。

三、仿真方案详细设计(1)通信系统的总体框图如下:由上图可以看出,整个设计由发送端、信道和接收机三个部分组成。

①发射机原理发送端首先产生三组用户数据和三组不同的m序列,并用三组m序列分别对用户信息进行扩频。

再将扩频信号与载波进行DPSK调制,得到高频的已调调信号并将其送入无线的多径信道。

②无线信道信道模拟成无线的多径多用户信道,在这个信道中有三个用户进行数据传输,每个用户的数据分别通过三径传输到达接收端。

三径会有不同的延时,衰减。

最终,还要将三径用户数据增加高斯白噪声。

③接收机原理接收端会接收到有燥的三径信息的叠加。

首先,要对接收到的三径信息进行解扩,分离出三组用户信息;其次,在将解扩后的信息进行带通滤波去除带外噪声;最后,分别对三组用户信息进行解调得到原始数据,在对接收到的数据进行误码率统计,得出系统的性能指标。

(2)功能模块的详细设计①扩频码(m序列)的产生扩频码为伪随机码,可以m序列、Golden序列。

本设计采用自相关特性好,互相关特性较差的m序列,为了节省运算量,我选取了周期为63扩频序列,经过计算易知要产生周期为63的m序列需要长度为6的反馈系数,经过查找资料得出三组反馈系数(八进制)45、67、75,其对应的二进制为1000011、1100111、1101101。

并将二进制与移位寄存器级数对应,以1000011为例,设初始化各寄存器单元内容为1,其具体的寄存器结构图如下所示:产生m序列的matlab程序如下:%m序列的产生,s为初始状态,抽头系数为(1000011)2function PN=mseq(s)N=length(s);c=[];D=s;for i=1:2^N-1c1=rem(D(N)+D(N-1),2);c=[c,D(N)];D=[c1,D(1:N-1)];endc=c*2-1;%变为1,-1的序列PN=c;end②扩频扩频的主要思想是每一位数据位都扩展成长度为m序列长的信息,其具体做法是将数据信息中的‘1’用m序列代替,而对于‘-1’用-m序列代替,这样对每一个数据位都进行扩展就实现了对原始数据的扩频。

其结构框图如下:扩频仿真代码如下:%扩频function expandsignal=expand(signal,PN)expand=[];for i=1:length(signal)if signal(i)==1expand=[expand,PN];elseexpand=[expand,-1*PN];endendexpandsignal=expand;%扩频后的序列end③多径信道的仿真对多径信道的仿真主要通过对不同用户产生的数据经三径进行传输,每一径信号又有三个用户数据叠加而成,并且每一径信号具有不同的延迟和衰减。

最后在信道的另一端三径信号进行叠加并对其加燥。

多径信道仿真代码如下:function multiS=channels(modusignal,k)a=length(modusignal);signal1=[0,modusignal];signal2=[0,0,modusignal];signal3=[0,0,0,modusignal];r1=0.01*abs(randn(1,a)+j*randn(1,a));r2=0.1*abs(randn(1,a+1)+j*randn(1,a+1));r3=0.2*abs(randn(1,a+2)+j*randn(1,a+2));r4=0.5*abs(randn(1,a+3)+j*randn(1,a+3));if k==2r=[modusignal.*r1,0,0,0]+[signal1.*r2,0,0];endif k==3r=[modusignal.*r1,0,0,0]+[signal1.*r2,0,0]+[signal2.*r3,0];endif k==4r=[modusignal.*r1,0,0,0]+[signal1.*r2,0,0]+[signal2.*r3,0]+[signal3.*r4];endmultiS=r;end④解扩在扩频码与接收信号同步的情况下, 可对接收信号进行解扩, 其解扩的过程与扩频的过程一样, 也是利用扩频码与接收信号进行相乘即可。

其原理图如下:解扩代码如下:function deexpandsignal=deexpand(signal,k)expandsignal1=expand(round(rand(1,10)),mseq([1,0,0,1,1,0]));expandsignal2=expand(round(rand(1,10)),mseq([1,1,0,1,1,0]));expandsignal3=expand(round(rand(1,10)),mseq([1,0,0,1,1,1]));if k==2for i=1:length(expandsignal1)deexpPN1((i-1)*100+1:i*100)=expandsignal1(i);endfor i=1:length(signal)-3deexpsignal1(i)=signal(i).*deexpPN1(i);enddeexpandsignal=deexpsignal1;endif k==3for i=1:length(expandsignal1)deexpPN2((i-1)*100+1:i*100)=expandsignal2(i);endfor i=1:length(signal)-3deexpsignal2(i)=signal(i).*deexpPN2(i);enddeexpandsignal=deexpsignal2;endif k==4for i=1:length(expandsignal1)deexpPN3((i-1)*100+1:i*100)=expandsignal3(i);endfor i=1:length(signal)-3deexpsignal3(i)=signal(i).*deexpPN3(i);enddeexpandsignal=deexpsignal3;endEnd⑤调制与解调为了使低频信号能够在高频中传输,并且增强系统的抗噪声性能,我们必须采用一定的调制解调技术,这里我采用DPSK对扩频信号进行调试,并在接收端对解扩信号进行DPSK解调以恢复出原有信号。

DPSK是利用前后相邻码元的载波相对相位变化传递数字信息。

DPSK的主要思路利用前后相邻码元的载波相对相位变化进行调制,以将低频的信号调制到较高频率,在接收端再将调制信号乘以载波做相干解调,便得到倍频信号和原信号的叠加,再低通滤波器将倍频信号滤掉就能得到原始信号。

I、调制框图如下:调制仿真代码如下:%差分编码function Y = difference(X)a=length(X);for i=1:aif X(i)==-1X(i)=0;endendY=zeros(1,a);b=0.01:0.01:a;for(i=1:a)is((i-1)*100+1:i*100)=X(i); endif (X(1)==1)Y(1)=1;else Y(1)=0;endfor i=2:aY(i)=rem( Y(i-1)+X(i),2); endY;t=0.01:0.01:a;for(i=1:a)st((i-1)*100+1:i*100)=Y(i); End%DPSK调制function z=dpsk(X)fs=2000;w=2;%调制频率n=length(X);t=1:100;nn=1:100;n1=0.01:0.01:n;for(i=1:n)is((i-1)*100+1:i*100)=X(i); st((i-1)*100+1:i*100)=0;endfor(nn=1:100)oss(nn)=sin(2*pi*w*(t(nn)/100));osc(nn)=sin(2*pi*w*(t(nn)/100)+pi);endfor(i=1:n)if(X(i)==1)for(nn=1:100)st(100*(i-1)+nn)=oss(nn);endelsefor(nn=1:100)st(100*(i-1)+nn)=osc(nn);endendendz=st;II、解调框图如下:解调仿真代码如下:function y=dpskdemod(X)fs=200;w=2;n=length(X)/100;tt=0.01:0.01:n;dt=X.*sin(2*pi*w*tt);%低通滤波器[N,Wn]=buttord(2*pi*25,2*pi*50,3,25,'s');%临界频率采用角频率表示 [b,a]=butter(N,Wn,'s');[bz,az]=impinvar(b,a,fs);%映射为数字的dt=filter(bz,az,dt);%抽样判决逆码变换部分dt1=0;dt2=0;for(i=1:n)for(j=1:100)dt1=dt1+dt(100*(i-1)+j);enddt2=dt1/100; if(dt2>0.05)dtt(100*(i-1)+1:100*i)=1; dt2=0; dt1=0;else dtt(100*(i-1)+1:100*i)=0; dt2=0; dt1=0; end endfor i=1:ny(i)=dtt((i-1)*100+50); end四、仿真结果及结论第一组用户数据:0.5用户1的发送数据接收到用户1数据用户1扩频后的时域信号用户1解扩后的时域信号用户1DPSK 调制后的时域信号用户1DPSK 解调后的时域信号用户1扩频后的频谱图用户1解扩后的频谱图用户1调制后的频谱图用户1解调后的频谱图第二组用户数据:第三组用户数据:0.51用户2的发送数据接收到用户2数据-101用户2扩频后的时域信号用户2解扩后的时域信号-101用户2DPSK 调制后的时域信号用户2DPSK 解调后的时域信号用户2扩频后的频谱图用户2解扩后的频谱图用户2调制后的频谱图用户2解调后的频谱图用户3的发送数据接收到用户3数据用户3扩频后的时域信号用户3解扩后的时域信号用户3DPSK 调制后的时域信号用户3DPSK 解调后的时域信号信道中三径数据的叠加:仿真说明及结论:为了观察到较好的图示效果,仿真时只产生了10个数据,并对一些波形图进行了部分区间的显示。

相关主题