物理层仿真实验综述Word文件下载.docx
《物理层仿真实验综述Word文件下载.docx》由会员分享,可在线阅读,更多相关《物理层仿真实验综述Word文件下载.docx(73页珍藏版)》请在冰点文库上搜索。
因此,
根据上式即可将均匀分布的随机变量映射为Rayleigh分布的随机变量。
1.2.3根据Rayleigh分布随机变量产生Gaussian分布随机变量
基于Rayleigh随机变量,可以方便的产生Gaussian分布随机变量。
关系如下:
或者
其中u1和u2分别是两个(0~1)之间均匀分布的随机变量,产生的X和Y均为高斯随机变量。
1.3实验内容
根据实验原理部分,完成以下实验任务。
任务一:
采用Willmann-Hill算法产生10000个均匀分布的随机变量,根据两组种子做出随机序列的直方图(命令hist),两组种子自行设定。
任务2:
使用逆变换法产生其它分布的随机变量(Rayleigh)设定sigma2为0.5、1和2,分别做出Rayleigh随机变量序列的直方图,观察图形。
任务3:
通过Rayleigh分布随机变量产生Gaussian分布随机变量,设定sigma2为1产生标准正态分布的随机变量,计算其方差并做直方图。
改变sigma2值观察直方图的变化。
1.4实验结果与分析
均匀分布两组直方图如下
由上图可看出,产生的随机序列满足(0~1)均匀分布。
任务二:
Rayleigh分布直方图
由这三张图可看出,图像大致满足瑞利分布,且方差不同,瑞利分布的横坐标不同。
方差越大,图像在横坐标轴上的跨度越大
任务三:
通过瑞利分布随机变量产生高斯随机分布变量,方差为1
计算其方差得:
varx=1.0033;
vary=1.0079与所设定的sigma2=1的值相接近。
实验二:
QPSK系统仿真
2.1实验目的
掌握简单调制方法的基带仿真实现,以及AWGN信道和Rayleigh平坦衰落信道的建模,并完成在这两种信道下的误码率仿真。
2.2实验原理
QPSK发射信号的等效基带格式和星座图
Sk=A(cosφk+jsinφk)
其中A为信号幅度,φk为调制相位,取值范围为(π/4,3π/4,5π/4,7π/4),比特与相位之间的映射关系如图2.1所示。
图1.2QPSK、8PSK、16QAM信号星座图
2.3实验内容
任务1:
根据参考教材第一章的BPSK示例,采用实验一产生随机数的方法重新改写程序,并仿真的BER结果,将结果与示例仿真结果进行比较。
(提示:
主要修改的内容有比特的产生、AWGN噪声的产生,即只要涉及需要随机数的地方均改用实验一中的方法得到)。
参考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^-j2πfτ表示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.m
clc;
clearall;
%lab1的实验一
%种子设定
x
(1)=22;
y
(1)=21;
z
(1)=23;
u
(1)=mod((x
(1)/30269+y
(1)/30307+z
(1)/30323),1);
%随机数发生器
fori=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);
v(i)=mod((x(i)/30269+y(i)/30307+z(i)/30323),1);
%直方图
figure
(1);
subplot(1,2,1);
hist(u);
subplot(1,2,2);
hist(v);
%实验二
%th为0.5时。
th=0.5;
r=sqrt(-2*th^2*log(u));
figure
(2)
subplot(2,2,1);
hist(r);
%th为1时。
th=1;
subplot(2,2,2);
%th为2时。
th=2;
subplot(2,2,3);
%实验三
%通过不同的种子产生不同的0~1伪随机均匀分布的随机变量
u1
(1)=mod((x
(1)/30269+y
(1)/30307+z
(1)/30323),1);
u1(i)=mod((x(i)/30269+y(i)/30307+z(i)/30323),1);
x
(1)=11;
y
(1)=12;
u2
(1)=mod((x
(1)/30269+y
(1)/30307+z
(1)/30323),1);
u2(i)=mod((x(i)/30269+y(i)/30307+z(i)/30323),1);
%产生高斯分布的随机变量,th=1
X=sqrt(-2*th^2*log(u1)).*cos(2*pi*u2);
figure(3)
hist(X);
%产生高斯分布的随机变量,th=0.5
%产生高斯分布的随机变量,th=2
实验二代码
BPSK系统AWGN信道自带随机数lab2_BPSK_N.m
clearall;
closeall;
%实验一
%%%%%%%%BPSK仿真--系统自带随机数%%%%%%%%%
EbN0dB=1:
10;
%设定信噪比
errLimit=50;
N=100;
forii=1:
length(EbN0dB)
errCount=0;
totalN=0;
sigma2(ii)=1/(2*(10^(EbN0dB(ii)/10)));
whileerrCount<
errLimit
bits=randi(1,1,N);
%调制
syms=1-2*bits;
receiver=syms+sqrt(sigma2(ii))*randn(1,N);
%解调
fork=1:
N
ifreceiver(k)<
demodata(k)=1;
else
demodata(k)=0;
end
temp=sum(abs(bits-demodata));
errCount=errCount+temp;
totalN=totalN+N;
ber(ii)=errCount/totalN;
semilogy(EbN0dB,ber,'
r-o'
);
holdon;
gridon;
%理论性能曲线
berthe=berawgn(EbN0dB,'
psk'
2,'
nodiff'
semilogy(EbN0dB,berthe,'
b-*'
axis([0100.0000011]);
xlabel('
SNRindB'
ylabel('
BER'
legend('
Simulation'
'
Theoretical'
BPSK系统AWGN信道伪随机数lab2_BPSK_PN.m
%%%%%%%%%%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;
%产生伪随机信源并转换为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);
fori=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);
x_seed=x_s(100);
y_seed=y_s(100);
z_seed=z_s(100);
u1bits=round(u1_s);
bits=u1bits;
%产生伪随机高斯噪声
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);
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);
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);
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);
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*th^2*log(u1_g1)).*cos(2*pi*u2_g2);
receiver=syms+sqrt(sigma2(ii))*X;
title('
BPSK在AWGN信道下的仿真曲线与理论曲线'
QPSK系统AWGN信道伪随机数lab2_QPSK_AWGN_PN.m
%%%%%%%%%%QPSK仿真--伪随机数%%%%%%%%%%
errLimit=100;
u1_s(i)=mod((x_s(i)/30269+y