(最新)二进制基带通信系统的蒙特卡洛仿真matlab实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二二进制基带通信系统的蒙特卡洛仿真
一、实验目的
1、理解蒙特卡洛仿真方法的原理;
2、掌握使用蒙特卡洛法仿真通信系统的方法。
二、实验内容
1、用蒙特卡洛法仿真使用单极性信号的二进制基带通信系统,绘制误码率与信噪比的关系曲线图;
2、用蒙特卡洛法仿真使用双极性信号的二进制基带通信系统,绘制误码率与信噪比的关系曲线图。
三、实验原理
1、蒙特卡洛仿真的基本原理
由概率定义知,某事件的概率可以用大量试验中该事件发生的频率来估算,当样本容量足够大时,可以认为该事件的发生频率即为其概率。因此,可以先对影响其可靠度的随机变量进行大量的随机抽样,然后把这些抽样值一组一组地代入功能函数式,确定结构是否失效,最后从中求得结构的失效概率。蒙特卡罗法正是基于此思路进行分析的。
设有统计独立的随机变量Xi(i=1,2,3,…,k),其对应的概率密度函数分别为fx1,fx2,…,fxk,功能函数式为Z=g(x1,x2,…,xk)。
首先根据各随机变量的相应分布,产生N组随机数x1,x2,…,xk值,计算功能函数值Zi=g(x1,x2,…,xk)(i=1,2,…,
N),若其中有L组随机数对应的功能函数值Zi≤0,则当N→∞时,根据伯努利大数定理及正态随机变量的特性有:结构失效概率,可靠指标。
从蒙特卡罗方法的思路可看出,该方法回避了结构可靠度分析中的数学困难,不管状态函数是否非线性、随机变量是否非正态,只要模拟的次数足够多,就可得到一个比较精确的失效概率和可靠度指标。特别在岩土体分析中,变异系数往往较大,与JC 法计算的可靠指标相比,结果更为精确,并且由于思路简单易于编制程序。
2、蒙特卡洛仿真的工作过程
在解决实际问题的时候应用蒙特·卡罗方法主要有两部分工作:·用蒙特卡罗方法模拟某一过程时,需要产生各种概率分布的随机变量。
·用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。
四、实验方法
1、第一个实验内容的实验方法
①实验框图如下:
均均均均
②实验方法
第一步:先产生一个等概率出现并且统计独立的二进制0和1的序列作为数据源。方法是:用一个“均匀分布随机数产生器”产生在(0,1)范围均匀分布的随机数s,送到“二进制数据源”进行处理,如果输入的随机数在(0,0.5)以内,“二进制数据源”的输出就是0;否则输入为1。设产生的信号比特能量为E b。
第二步:仿真产生信道上的加性高斯噪声。方法是:利用“高斯分布随机数产生器”分别产生一个均值为零,方差为σ2=E b N0/2的高斯分布随机数n,这个随机数将加在输入的二进制数据序列上。为了方便,我们将信号比特能量归一化,即设E b=1。这样一来,信噪比SNR(定义为E b/N0)就等于1/(2σ2)。
第三步:仿真产生接收的随机变量r,它构成了“检测器”(即代表采样判决器)的输入。由第一步和第二步可知,r=s+n。
第四步:“检测器”(即采样判决器)对输入的r进行判决,如果
r>0.5,则输出为1,如果r<0.5,则输出为零。
第五步:计算误码率,方法是:将“检测器”的输出与“二进制数据源”的发送序列进行逐位比较,如果对应位的值不同,则差错计数器(表示比特差错计数)的值加一。全部比较完后,计算误码率,计算公式为:P e=差错计数器值/发送序列的全部比特数N。
第六步:设置不同的SNR(即改变N0的值),重复以上的步骤,得到不同SNR下的误码率。
第七步:至少得到20个不同的SNR下的误码率后,绘制误码率与信噪比的关系曲线图,并在图上同时画出理论曲线图。曲线图应该与下图类似(采用对数坐标系)。
2、第二个实验内容的实验方法
①实验框图同第一个实验,只是“二进制数据源”的输出是±1。
②实验方法
第一步:先产生一个等概率出现并且统计独立的二进制0和1的序列作为数据源。方法是:用一个“均匀分布随机数产生器”产生在(0,1)范围均匀分布的随机数s,送到“二进制数据源”进行处理,如果输入的随机数在(0,0.5)以内,“二进制数据源”的输出就是-1;否则输入为1。设产生的信号比特能量为E b。
第二步:仿真产生信道上的加性高斯噪声。方法是:利用“高斯分布随机数产生器”分别产生一个均值为零,方差为σ2=E b N0/2的高斯分布随机数n,这个随机数将加在输入的二进制数据序列上。为了方便,我们将信号比特能量归一化,即设E b=1。这样一来,信噪比SNR(定义为E b/N0)就等于1/(2σ2)。
第三步:仿真产生接收的随机变量r,它构成了“检测器”(即代表采样判决器)的输入。由第一步和第二步可知,r=s+n。
第四步:“检测器”(即采样判决器)对输入的r进行判决,如果r>0,则输出为1,如果r<0,则输出为-1。
第五步:计算误码率,方法是:将“检测器”的输出与“二进制数据源”的发送序列进行逐位比较,如果对应位的值不同,则差错计数器(表示比特差错计数)的值加一。全部比较完后,计算误码率,计算公式为:P e=差错计数器值/发送序列的全部比特数N。
第六步:设置不同的SNR(即改变N0的值),重复以上的步骤,得到不同SNR下的误码率。
第七步:至少得到20个不同的SNR下的误码率后,绘制误码率与信噪比的关系曲线图,并在图上同时画出理论曲线图。曲线图应该与下图类似(采用对数坐标系)。
五、Matlab源程序及仿真结果
1、单极性信号:
(1)代码如下
k=20000; %k表示产生的随机数的个数
E=1;%E表示比特能量,进行归一化,设为1
for j=1:30 %产生30个不同的N
N(j)=1/(10^(0.1*j)); %设定N的值
d(j)=sqrt(E*N(j)/2); %标准差
count=0;
m=rand(1,k); %产生k个在(0,1)之间的均匀分布的随机数
for i=1:k
if (m(i)>0) && (m(i)< 0.5)
s(i)=0;