物理层仿真 实验.doc_第1页
物理层仿真 实验.doc_第2页
物理层仿真 实验.doc_第3页
物理层仿真 实验.doc_第4页
物理层仿真 实验.doc_第5页
免费预览已结束,剩余33页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物理层仿真实验系别:通信工程系专业:通信工程系x级学号:姓名: 吕XX实验时间:2014年6月30日撰写日期:2014年7月3日 38 / 38实验一:随机信号的产生1.1实验目的掌握各种伪随机序列的产生方法。1.2实验原理1.2.1 Wichmann-Hill算法产生均匀分布随机变量该算法是通过将3个周期相近的随机数发生器产生的数据序列进行相加,进而得到更大的周期的数据序列。定义三个随机数发生器:以上三式中均需要设定一初始值,这三个初始值一般称为种子。产生的三个序列的周期分别是:30269、30307、30323。将这三个序列组合相加即可得到一个周期更大的均匀分布随机序列:1.2.2 逆变换发产生Rayleigh分布随机变量逆变换法的基本思想如图1.1所示,条件是产生的随机变量的分布函数具有闭合表达式。图1.1 将一个不相关均匀分布的随机序列U映射到一个具有概率分布函数Fx(x)的不相关序列随机序列XRayleigh分布的分布函数:根据上面的逆变换方法有:因此,根据上式即可将均匀分布的随机变量映射为Rayleigh分布的随机变量。1.2.3 根据Rayleigh分布随机变量产生Gaussian分布随机变量基于Rayleigh随机变量,可以方便的产生Gaussian分布随机变量。关系如下:或者其中u1和u2分别是两个(01)之间均匀分布的随机变量,产生的X和Y均为高斯随机变量。1.3 实验内容根据实验原理部分,完成以下实验任务。任务一:采用Willmann-Hill算法产生10000个均匀分布的随机变量,根据两组种子做出随机序列的直方图(命令hist),两组种子自行设定。任务2:使用逆变换法产生其它分布的随机变量(Rayleigh)设定sigma2为0.5、1和2,分别做出Rayleigh随机变量序列的直方图,观察图形。任务3:通过Rayleigh分布随机变量产生Gaussian分布随机变量,设定sigma2为1产生标准正态分布的随机变量,计算其方差并做直方图。改变sigma2值观察直方图的变化。1.4 实验结果与分析任务一:均匀分布两组直方图如下 由上图可看出,产生的随机序列满足(01)均匀分布。任务二:Rayleigh分布直方图 由这三张图可看出,图像大致满足瑞利分布,且方差不同,瑞利分布的横坐标不同。方差越大,图像在横坐标轴上的跨度越大任务三:通过瑞利分布随机变量产生高斯随机分布变量,方差为1计算其方差得:varx =1.0033;vary =1.0079与所设定的sigma2=1的值相接近。实验二:QPSK系统仿真2.1 实验目的掌握简单调制方法的基带仿真实现,以及AWGN信道和Rayleigh平坦衰落信道的建模,并完成在这两种信道下的误码率仿真。2.2 实验原理QPSK发射信号的等效基带格式和星座图Sk = A(cosk+jsink)其中A为信号幅度,k为调制相位,取值范围为(/4, 3/4,5/4,7/4),比特与相位之间的映射关系如图2.1所示。 图1.2 QPSK、8PSK、16QAM信号星座图2.3 实验内容任务1:根据参考教材第一章的BPSK示例,采用实验一产生随机数的方法重新改写程序,并仿真的BER结果,将结果与示例仿真结果进行比较。(提示:主要修改的内容有比特的产生、AWGN噪声的产生,即只要涉及需要随机数的地方均改用实验一中的方法得到)。任务2:参考BPSK程序,搭建QPSK、8PSK、16QAM的基带仿真程序,仿真在AWGN信道和Rayleigh平坦衰落信道下的误码率性能,比较它们的误比特率和带宽效率,解释它们误码率性能差别的原因。 2.4 实验结果与分析任务一:用实验一的方法产生的随机数和用matlab自带函数产生的随机数经过BPSK通信系统仿真的BER结果的比较。 如图,对这两种方法产生的随机数进行BPSK仿真,其误码率几乎一致。任务二:BPSK、QPSK、8PSK、16QAM在AWGN信道下的仿真:以上四图分别是BPSK、QPSK、8PSK、16QAM在伪随机数下AWGN信道中的仿真曲线,可见其结果与理论曲线几乎重叠,这是在满足大数定理下的仿真结果。BPSK、QPSK、8PSK、16QAM在Rayleigh信道下的仿真曲线:可见各个调制在AWGN和Rayleigh信道下的仿真结果几乎一致。接下来为节省仿真时间,在比较他们之间的性能差异将直接利用理论值曲线进行比较。BPSK、QPSK、8PSK、16QAM仿真在AWGN信道下的误码率性能比较。如上图所示,在相同信噪比下,BPSK和QPSK的误码率性能最好,8PSK 次之,QAM最差,8PSK和QAM的误码率性能大致在同一数量级。但是从带宽效率看,QAM的带宽效率最高为4,8PSK的带宽效率为3,QPSK为2。说明在相同信噪比下,带宽效率和误码率是一对矛盾互补的,它们分别对应着通信系统的有效性和可靠性。QPSK、8PSK、6QAM在Rayleigh衰落信道下的误码率性能,并比较它们的比特率。如上图可看出,在Rayleigh平坦衰落信道下BPSK、QPSK和8PSK的性能较在AWGN信道下有较大的减少,要得到相同的误码率,Rayleigh信道下要使用比AWGN信道下更大的信噪比。在相同信噪比下,QPSK的误码率会比8PSK小,但小的不是很多,而8PSK的带宽效率比QPSK高,所以在Rayleigh平坦衰落信道下,采用8PSK调制比QPSK更好。实验三:直接序列扩频抗ISI研究3.1 实验目的掌握直接序列扩频技术(DSSS)原理及基带仿真实现,理解扩频码设计对直接序列扩频抗多径干扰的影响。3.2 实验原理定义:扩展频谱技术一般是指用比信号带宽宽得多的频带宽度来传输信息的技术。直接序列扩频就是用比信息速率高很多倍的伪随机噪声码(PN)与信号相乘来达到扩展信号的带宽。上图是直接序列扩频的系统框图,从图可以看到,与传统窄带系统相比主要引入了扩频和解扩过程(通过扩频码实现),广义来说可以把扩频/解扩也堪称一种调制/解调。通过扩频码的作用窄带信号变成了宽带信号。因此,扩频系统具有良好的抗窄带干扰和抗多径(ISI)干扰的能力。下图展示了DSSS系统抗窄带干扰的原理,其中S(f)是调制信号的频谱,经过扩频进入接收端的信号频谱为S(f)*Sc(f),由于扩频码具有宽频特性,因此,信号带宽被展宽,如图1.3(b)所示,I(f)表示窄带干扰的频谱,其幅度超过有用信号,但经过解扩后,如图1.3(c)所示,由于扩频码的相关性,调制信号的功率得到恢复,而干扰信号的频谱被扩散,达到了抗窄带干扰的效果。类似的由于扩频码的自相关特性,DSSS系统还有有效的抗ISI干扰,其频域原理如图3.3所示,其中H(f)=+e-j2f 表示ISI信道的频域传递函数。在直接序列扩频系统中,其扩频码的设计是整个系统的关键,扩频码的选择要求具有好的互相关性和自相关性,即要能有效的抗多用户干扰和抗ISI干扰。为了抗多用户干扰,需要尽量选择互相正交的扩频码,为了抗ISI干扰,需要扩频码的自相关特性尽量满足一定的特性。常用的扩频码序列有m序列、Golden序列等等。接收机可采用相干接收机、RAKE接收机。3.3 实验内容根据DSSS技术原理搭建仿真系统,并完成下面的任务。任务一:参考后面提供的程序,采用m序列替代程序中的随机序列作为扩频码,仿真其性能,完成与随机序列扩频性能之间的比较;任务二:在ISI信道下,研究m序列与golden序列抗ISI的性能。3.4 实验结果与分析任务一:比较m序列与随机序列的扩频性能高斯信道下采用m序列扩频和采用随机序列扩频,信噪比相同时,它们的误码率是大致也是相同的。说明在无码间串扰的信道下m序列扩频与一般随机序列的性能没有显著差别。任务二:在ISI信道下,m序列与golden序列抗ISI性能比较。如上图所示,在ISI信道下,采用m序列和golden序列扩频都能够减少通信系统的误码率。但是golden序列扩频的性能明显优于m序列的性能。m序列需要在足够大信噪比下才能得到满意的误码率。4实验小结4.1实验一实验小结在通信系统中的各种信号以及噪声、信道衰落都可以看作相应的随机过程,通信系统仿真就是要通过计算机产生各种随机信号,并依据通信原理对这些随机信号进行相应的处理,获取期望的结果。这次的实验中,我掌握了Wichmann-Hill算法,并利用此算法产生的均匀分布的随机变量变换得到了Rayleigh分布的随机变量,以及Gussian分布的随机变量,为后续实验奠定了基础。4.2实验二实验小结在本次实验中,我利用上一个实验一产生的伪随机数,对BPSK、QPSK、8PSK和16QAM通信系统进行了仿真,并且得到了和理论曲线一致的仿真曲线。在实验过程中的第一个问题:我一开始采用10000个随机数作为信号源,发现仿真的结果与理论相距甚远。后来通过分析,明白在误码率达到10(-3)10(-5)时,仿真的结果在满足大数定理的情况下即错误个数尽可能的大,实验数据至少要10(7)数量级。因此后来的实验中,我都采用另一种仿真模式,即设定错误限,在每次达到错误限之前一直产生伪随机源和伪随机噪声,直到达到大数定理,才完成仿真。通过设定错误限来控制仿真的曲线稳定性。最后得到几乎与理论曲线一致的仿真曲线。在实验过程中的第二个问题:在进行仿真的过程中,我发现16QAM的仿真曲线与理论曲线不一致,虽然仿真曲线和理论曲线在数量级上一致,但仿真曲线的误码率总是高于理论曲线,并与其几乎平行。这与其他的仿真中仿真曲线几乎与理论曲线重合的现象不一致,让我很费解。后来分析,觉得这种现象产生的原因是,16QAM的星座图不是最好的星座图,在译码过程中,产生错误时,译码结果没有最小限度的减小错误的比特,也就是星座图上相邻两个码点距离过大。通过修改星座图,我发现仿真曲线与理论曲线又一致了,下图是我修改后的星座图。所有相邻的码字距离皆为1。这样能最小化错误的比特数目。4.3实验三实验小结这个实验中,我又重新上网搜索了m序列和golden序列的概念,并通过网上的一些描述原理,产生了两组m序列和golden序列作为扩频码,完成了实验的仿真。通过修改实验书上的代码,我对一些matlab矩阵实验平台上工具又有了进一步的了解。比如ISI信道的建模,可以直接通过卷积实现,而且实验书上的例程是利用错误限来控制仿真数据尽量的满足大数定理。这也给了我很多的启发。虽然实验中的一些原理不是很清晰,但是让我有了总体的把握,并加深了我对通信系统的理解。附录:代码实验一:lab1.mclc; clear all;%lab1的实验一%种子设定x(1)=22;y(1)=21;z(1)=23;u(1)=mod(x(1)/30269+y(1)/30307+z(1)/30323),1);%随机数发生器for i=2:10000 x(i)=mod(171*x(i-1),30269); y(i)=mod(170*y(i-1),30307); z(i)=mod(172*z(i-1),30323); u(i)=mod(x(i)/30269+y(i)/30307+z(i)/30323),1);end%种子设定x(1)=9;y(1)=8;z(1)=10;v(1)=mod(x(1)/30269+y(1)/30307+z(1)/30323),1);%随机数发生器for i=2:10000 x(i)=mod(171*x(i-1),30269); y(i)=mod(170*y(i-1),30307); z(i)=mod(172*z(i-1),30323); v(i)=mod(x(i)/30269+y(i)/30307+z(i)/30323),1);end %直方图figure(1);subplot(1,2,1);hist(u);subplot(1,2,2);hist(v);%实验二%th为0.5时。th=0.5;r=sqrt(-2*th2*log(u);figure(2)subplot(2,2,1);hist(r);%th为1时。th=1;r=sqrt(-2*th2*log(u);subplot(2,2,2);hist(r);%th为2时。th=2;r=sqrt(-2*th2*log(u);subplot(2,2,3);hist(r); %实验三%通过不同的种子产生不同的01伪随机均匀分布的随机变量x(1)=22;y(1)=21;z(1)=23;u1(1)=mod(x(1)/30269+y(1)/30307+z(1)/30323),1);%随机数发生器for i=2:10000 x(i)=mod(171*x(i-1),30269); y(i)=mod(170*y(i-1),30307); z(i)=mod(172*z(i-1),30323); u1(i)=mod(x(i)/30269+y(i)/30307+z(i)/30323),1);endx(1)=11;y(1)=12;z(1)=10;u2(1)=mod(x(1)/30269+y(1)/30307+z(1)/30323),1);%随机数发生器for i=2:10000 x(i)=mod(171*x(i-1),30269); y(i)=mod(170*y(i-1),30307); z(i)=mod(172*z(i-1),30323); u2(i)=mod(x(i)/30269+y(i)/30307+z(i)/30323),1);end%产生高斯分布的随机变量,th=1th=1;X=sqrt(-2*th2*log(u1).*cos(2*pi*u2);%直方图figure(3)subplot(2,2,1);hist(X);%产生高斯分布的随机变量,th=0.5th=0.5;X=sqrt(-2*th2*log(u1).*cos(2*pi*u2);subplot(2,2,2);hist(X);%产生高斯分布的随机变量,th=2th=2;X=sqrt(-2*th2*log(u1).*cos(2*pi*u2);subplot(2,2,3);hist(X);实验二代码BPSK系统AWGN信道自带随机数lab2_BPSK_N.mclc;clear all;close all; %实验一%BPSK仿真-系统自带随机数%EbN0dB=1:10;%设定信噪比errLimit=50;N=100;for ii=1:length(EbN0dB) errCount=0; totalN=0; sigma2(ii)=1/(2*(10(EbN0dB(ii)/10); while errCounterrLimit bits = randi(1,1,N); %调制 syms = 1-2*bits; receiver = syms +sqrt(sigma2(ii)*randn(1,N); %解调 for k = 1:N if receiver(k)0 demodata(k)=1; else demodata(k)=0; end end temp = sum(abs(bits-demodata); errCount = errCount + temp; totalN = totalN + N; end ber(ii)=errCount/totalN;endfigure(1);semilogy(EbN0dB,ber,r-o); hold on;grid on;%理论性能曲线berthe=berawgn(EbN0dB,psk,2,nodiff);semilogy(EbN0dB,berthe,b-*); axis(0 10 0.000001 1);xlabel(SNR in dB);ylabel(BER);legend(Simulation,Theoretical);BPSK系统AWGN信道伪随机数lab2_BPSK_PN.mclc;clear all;close all; %实验一%BPSK仿真-伪随机数%产生高斯信道噪声X种子x_g1seed=22;y_g1seed=21;z_g1seed=23;x_g2seed=11;y_g2seed=12;z_g2seed=10; %产生伪随机信源种子x_seed=5;y_seed=7;z_seed=6; EbN0dB=1:10;%设定信噪比errLimit=50;N=100;for ii=1:length(EbN0dB) errCount=0; totalN=0; sigma2(ii)=1/(2*(10(EbN0dB(ii)/10); while errCounterrLimit %产生伪随机信源并转换为0和1的形式 x_s(1)=x_seed;y_s(1)=y_seed;z_s(1)=z_seed;u1_s(1)=mod(x_seed/30269+y_seed/30307+z_seed/30323),1); for i=2:100 x_s(i)=mod(171*x_s(i-1),30269); y_s(i)=mod(170*y_s(i-1),30307); z_s(i)=mod(172*z_s(i-1),30323); u1_s(i)=mod(x_s(i)/30269+y_s(i)/30307+z_s(i)/30323),1); end x_seed=x_s(100);y_seed=y_s(100);z_seed=z_s(100); u1bits=round(u1_s); bits = u1bits; %调制 syms = 1-2*bits; %产生伪随机高斯噪声 x_g1(1)=x_g1seed;y_g1(1)=y_g1seed;z_g1(1)=z_g1seed;u1_g1(1)=mod(x_g1(1)/30269+y_g1(1)/30307+z_g1(1)/30323),1); for i=2:100 x_g1(i)=mod(171*x_g1(i-1),30269); y_g1(i)=mod(170*y_g1(i-1),30307); z_g1(i)=mod(172*z_g1(i-1),30323); u1_g1(i)=mod(x_g1(i)/30269+y_g1(i)/30307+z_g1(i)/30323),1); end x_g2(1)=x_g2seed;y_g2(1)=y_g2seed;z_g2(1)=z_g2seed;u2_g2(1)=mod(x_g2(1)/30269+y_g2(1)/30307+z_g2(1)/30323),1); for i=2:100 x_g2(i)=mod(171*x_g2(i-1),30269); y_g2(i)=mod(170*y_g2(i-1),30307); z_g2(i)=mod(172*z_g2(i-1),30323); u2_g2(i)=mod(x_g2(i)/30269+y_g2(i)/30307+z_g2(i)/30323),1); end x_g1seed=x_g1(100);y_g1seed=y_g1(100);z_g1seed=z_g1(100); x_g2seed=x_g2(100);y_g2seed=y_g2(100);z_g2seed=z_g2(100); th=1; X=sqrt(-2*th2*log(u1_g1).*cos(2*pi*u2_g2); receiver = syms +sqrt(sigma2(ii)*X; %解调 for k = 1:N if receiver(k)0 demodata(k)=1; else demodata(k)=0; end end temp = sum(abs(bits-demodata); errCount = errCount + temp; totalN = totalN + N; end ber(ii)=errCount/totalN;endsemilogy(EbN0dB,ber,r-o); hold on;grid on;%理论性能曲线berthe=berawgn(EbN0dB,psk,2,nodiff);semilogy(EbN0dB,berthe,b-*);title(BPSK在AWGN信道下的仿真曲线与理论曲线);axis(0 10 0.000001 1);xlabel(SNR in dB);ylabel(BER);legend(Simulation,Theoretical);QPSK系统AWGN信道伪随机数lab2_QPSK_AWGN_PN.mclc;clear all;close all; %实验一%QPSK仿真-伪随机数%产生高斯信道噪声X种子x_g1seed=22;y_g1seed=21;z_g1seed=23;x_g2seed=11;y_g2seed=12;z_g2seed=10; %产生伪随机信源种子x_seed=5;y_seed=7;z_seed=6; EbN0dB=1:10;%设定信噪比errLimit=100;N=100;for ii=1:length(EbN0dB) errCount=0; totalN=0; sigma2(ii)=1/(2*(10(EbN0dB(ii)/10); while errCount=0&ang=pi/2&ang=pi&ang=3*pi/2&ang4*pi/2) demodata(i:i+1)=1 0; end end temp = sum(abs(bits-demodata); errCount = errCount + temp; totalN = totalN + N; end ber(ii)=errCount/totalN;endsemilogy(EbN0dB,ber,r-o); hold on;grid on;%理论性能曲线berthe=berawgn(EbN0dB,psk,4,nodiff);semilogy(EbN0dB,berthe,b-*);title(QPSK在AWGN信道下的仿真曲线与理论曲线);axis(0 10 0.000001 1);xlabel(SNR in dB);ylabel(BER);legend(Simulation,Theoretical);8PSK系统AWGN信道伪随机数lab2_8PSK_AWGN_PN.mclc;clear all;close all; %实验一%QPSK仿真-伪随机数%产生高斯信道噪声X种子x_g1seed=22;y_g1seed=21;z_g1seed=23;x_g2seed=555;y_g2seed=456;z_g2seed=364; %产生伪随机信源种子x_seed=5;y_seed=7;z_seed=6; EbN0dB=1:11;%设定信噪比errLimit=200;N=102;for ii=1:length(EbN0dB) errCount=0; totalN=0; sigma2(ii)=1/(3*(10(EbN0dB(ii)/10); while errCount=0&ang=15*pi/8&ang=13*pi/8&ang=11*pi/8&ang=9*pi/8&ang=7*pi/8&ang=5*pi/8&ang=3*pi/8&ang=pi/8&ang3*pi/8) demo=0 0 1; end demodata(i:i+2)=demo; end temp = sum(abs(bits-demodata); errCount = errCount + temp; totalN = totalN + N; end ber(ii)=errCount/totalN;endsemilogy(EbN0dB,ber,r-o); hold on;grid on;%理论性能曲线berthe=berawgn(EbN0dB,psk,8,nondiff);semilogy(EbN0dB,berthe,b-*);title(8PSK在AWGN信道下的仿真曲线与理论曲线);axis(0 11 0.000001 1);xlabel(SNR in dB);ylabel(BER);legend(Simulation,Theoretical);16QAM系统AWGN信道伪随机数lab2_16QAM_AWGN_PN.mclc;clear all;close all; %实验一%QPSK仿真-伪随机数%产生高斯信道噪声X种子x_g1seed=29;y_g1seed=21;z_g1seed=23;x_g2seed=555;y_g2seed=456;z_g2seed=364; %产生伪随机信源种子x_seed=10;y_seed=7;z_seed=6; EbN0dB=1:10;%设定信噪比errLimit=500;N=100;for ii=1:length(EbN0dB) errCount=0; totalN=0; sigma2(ii)=1/(4*(10(EbN0dB(ii)/10)*10; while errCounterrLimit %产生伪随机信源并转换为0和1的形式 x_s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论