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

更新时间:2023-11-04 18:01:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

重庆交通大学信息科学与工程学院

综合性设计性实验报告

专 业: 通信工程专业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)2 function PN=mseq(s) N=length(s); c=[]; D=s;

for i=1:2^N-1

c1=rem(D(N)+D(N-1),2); c=[c,D(N)];

D=[c1,D(1:N-1)]; end

c=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)==1

expand=[expand,PN]; else

expand=[expand,-1*PN]; end

end

expandsignal=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==2

r=[modusignal.*r1,0,0,0]+[signal1.*r2,0,0]; end if k==3

r=[modusignal.*r1,0,0,0]+[signal1.*r2,0,0]+[signal2.*r3,0]; end

if k==4

r=[modusignal.*r1,0,0,0]+[signal1.*r2,0,0]+[signal2.*r3,0]+[signal3.*r4]; end

multiS=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==2

for i=1:length(expandsignal1)

deexpPN1((i-1)*100+1:i*100)=expandsignal1(i); end

for i=1:length(signal)-3

deexpsignal1(i)=signal(i).*deexpPN1(i); end

deexpandsignal=deexpsignal1; end if k==3

for i=1:length(expandsignal1)

deexpPN2((i-1)*100+1:i*100)=expandsignal2(i); end

for i=1:length(signal)-3

deexpsignal2(i)=signal(i).*deexpPN2(i); end

deexpandsignal=deexpsignal2; end if k==4

for i=1:length(expandsignal1)

deexpPN3((i-1)*100+1:i*100)=expandsignal3(i); end

for i=1:length(signal)-3

deexpsignal3(i)=signal(i).*deexpPN3(i); end

deexpandsignal=deexpsignal3; end End

⑤调制与解调

为了使低频信号能够在高频中传输,并且增强系统的抗噪声性能,我们必须采用一定的调制解调技术,这里我采用DPSK对扩频信号进行调试,并在接收端对解扩信号进行DPSK解调以恢复出原有信号。DPSK是利用前后相邻码元的载波相对相位变化传递数字信息。DPSK的主要思路利用前后相邻码元的载波相对相位变化进行调制,以将低频的信号调制到较高频率,在接收端再将调制信号乘以载波做相干解调,便得到倍频信号和原信号的叠加,再低通滤波器将倍频信号滤掉就能得到原始信号。

I、调制框图如下:

调制仿真代码如下:

%差分编码

function Y = difference(X) a=length(X); for i=1:a

if X(i)==-1 X(i)=0; end end

Y=zeros(1,a); b=0.01:0.01:a; for(i=1:a)

is((i-1)*100+1:i*100)=X(i); end

if (X(1)==1) Y(1)=1; else Y(1)=0; end

for i=2:a

Y(i)=rem( Y(i-1)+X(i),2); end Y;

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; end

for(nn=1:100)

oss(nn)=sin(2*pi*w*(t(nn)/100)); osc(nn)=sin(2*pi*w*(t(nn)/100)+pi); end

for(i=1:n)

if(X(i)==1)

for(nn=1:100)

st(100*(i-1)+nn)=oss(nn); end else

for(nn=1:100)

st(100*(i-1)+nn)=osc(nn); end end end z=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);

end

dt2=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 end

for i=1:n

y(i)=dtt((i-1)*100+50); end

四、仿真结果及结论

第一组用户数据:

用户1的发送数据 10.5 00510 用户1扩频后的时域信号1 0-1 0200400600用户1DPSK调制后的时域信号 10 -105101520

用户1扩频后的频谱图60 40 20 0 -50050用户1调制后的频谱图 3000 2000 1000 0-20-1001020

接收到用户1数据10.500510用户1解扩后的时域信号0.20-0.205101520用户1DPSK解调后的时域信号10.80.60.40.20200400600用户1解扩后的频谱图4003002001000-10010用户1解调后的频谱图4003002001000-20-1001020第二组用户数据:

用户2的发送数据 1 0.50 0510用户2扩频后的时域信号 10 -10200400600 用户2DPSK调制后的时域信号1 0 -105101520

用户2扩频后的频谱图80 60 4020 0-50050 用户2调制后的频谱图3000 2000 10000-20-1001020第三组用户数据:

用户3的发送数据 10.5 0 0510用户3扩频后的时域信号1 0 -10200400600 用户3DPSK调制后的时域信号1 0 -105101520

接收到用户2数据10.500510用户2解扩后的时域信号0.50-0.505101520用户2DPSK解调后的时域信号10.80.60.40.202004006001500

用户2解扩后的频谱图10005000-10010用户2解调后的频谱图4003002001000-20-1001020接收到用户3数据10.500510用户3解扩后的时域信号10-105101520用户3DPSK解调后的时域信号10.80.60.40.20200400600

本文来源:https://www.bwwdw.com/article/4ab2.html

Top