8PSK通信系统的蒙特卡罗仿真分析.docx
《8PSK通信系统的蒙特卡罗仿真分析.docx》由会员分享,可在线阅读,更多相关《8PSK通信系统的蒙特卡罗仿真分析.docx(20页珍藏版)》请在冰豆网上搜索。
8PSK通信系统的蒙特卡罗仿真分析
设计要求:
1、产生等概率且相互独立的二进制序列,画出波形;
2、产生均值为0,方差为1的加性高斯随机噪声;
3、进行8PSK调制,画出波形;
4、进行蒙特卡罗分析;
5、解调8PSK,画出眼图。
课程设计学生日志
时间
设计内容
7.3——7.5
翻阅Matlab、通信原理的有关资料
7.6
用Matlab编写并调试程序,实现调制、解调信号的时域波形
7.7
实行蒙特卡罗及眼图的仿真
7.8
写课程设计论文
7.9
修改论文
7.10
课程设计答辩
课程设计考勤表
周
星期一
星期二
星期三
星期四
星期五
2
课程设计评语表
指导教师评语:
成绩:
指导教师:
年月日
8PSK通信系统的蒙特卡罗仿真分析
一、设计目的和意义
(1)根据蒙特卡罗仿真方法基本思想,分析了加性高斯噪声和单频干扰条件下的8PSK信号相位分布模型及其相关检测方法;
(2)讨论了加性噪声和单频干扰模型,建立了相关检测系统蒙特卡罗仿真模型,模型通过动态系统仿真软件实现;
(3)进行了仿真设计与应用系统性能分析。
二、设计原理
(1)蒙特卡罗概及原理
蒙特卡罗法亦称为随机仿真方法,是一种与一般数值计算方法有本质区别的计算方法,它起源于早期的用几率近似概率的数学思想,它利用随机数学进行统计试验,以求得的统计特征值作为待解问题的数值解。
蒙特卡罗法首先构造或描述各种概率过程,然后从这些概率过程中实现相应的概率分布,最后建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。
对于数字通信系统而言有效性用信息的传输速率表示而可靠性可用误码率来表示。
信号在传送检波的过程中由于噪声的干扰可能会检码错误。
这样如何统计分析信号传输过程中噪声干扰下的误码率问题就成了衡量该系统好坏的标志。
蒙特卡罗方法正是基于随机数信号的产生原理,统计分析信号传输过程中由于噪声干扰而引起的误码率。
其基本原理如下:
由概率定义知,某事件的概率可以用大量试验中该事件发生的频率来估算,当样本容量足够大时,可以认为该事件的发生频率即为其概率。
因此,可以先对影响其可靠度的随机变量进行大量的随机抽样,然后把这些抽样值一组一组地代入功能函数式,确定结构是否失效,最后从中求得结构的失效概率。
蒙特卡罗法正是基于此思路进行分析的。
蒙特卡罗方法的基本思想是:
当所求解问题是某种随机事件出现的概率,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解.
图1 通信系统仿真模型
(2)8PSK的调制
8PSK是一种常用的多相键控,输入的二进制信息序列经串—并交换每次产生一个3位码组b1b2b3,因此符号率为比特率的1/3。
在b1b2b3控制下,同相路和正交路分别产生两个四电平基带信号I(t)和Q(t)。
b1用于决定同相路的信号的极性,b2用于决定正交路信号的极性,b3则用于确定同相路和正交路信号的幅度。
因此同相路和正交路的基带信号幅度是相互关联的,不能独立选取。
其调制与那里图如图1所示
图28PSK调制
(3)8PSK的解调
8PSK信号可采用QPSK信号的相干解调器进行解调,区别在于判决电路二电平判决改为四电平判决,判决结果经逻辑运算后得到比特马组,再进行并/串变换,8PSK信号的另一种解调方案如图2所示,它采用两组正交相干解调器,其中一组参考载波相位为0°和90°,另一组参考载波相位为-45°和45°,没个相干解调器后接一个二电平判决电路,对判决结果经逻辑运算后得到比特马组,在进行并/串变换,得到原始的串行二进制信息。
图38PSK解调
8PSK调制是利用载波的8种不同相位(或相位差)来表征数字信息的调制方式,和二进制调制一样,8PSK调制也分为绝对调相和相对调相。
它把输入的二进制信号序列经过串并变换,每次把一个3位的码组映射为一个符号的相位,映射星座按自然码或者格雷码(文中采用自然码),符号速率是比特速率的1/3,在8PSK调制方式中,输入的串行二进制序列经串并转换,每次产生3位并行码组b1b2b3。
b1和b3分别决定I路的极性和幅度,b2和b3分别决定Q路的极性和幅度,星座图如图4
图48PSK星座图
4、眼图
如图5所示,一个确定的数字序列在眼图空间对应固定的眼图结构。
在不同干扰强度的情况下,基带信号对应的眼图结构会出现不同程度的变化,即干扰强度的不同会在眼图结构中得以体现,主要表现在眼图的形状和亮、暗面积比会发生变化。
基于眼图分析的干扰效果评估研究是一种数字信号基带传输受扰测度研究方法,主要思想既是通过眼图对基带信号的受扰程度进行表征。
眼图的仿真模型如图6所示
图5 眼图模型图
图6 仿真模型
由图可知“眼睛”的张开程度可以作为基带传输系统性能的一种度量,它不但反映串扰的大小,而且也可以反映信道噪声的影响。
眼图张开部分的宽度决定了接受波形可以不受串扰影响而抽样、再生的时间间隔。
显然,抽样的最佳时刻是“眼睛”张开最大的时刻;“眼睛”在特定抽样时刻的张开高度决定了系统的噪声容限;“眼睛”的闭合斜率决定了系统对抽样定时误差的敏感程度,斜率愈大则对定时误差愈敏感。
三、详细设计步骤
1、MATLAB库中的高斯随机数发生函数randn是应用给出的最低标准随机数发生器以及极坐标法,将均匀分布的随机数映射成高斯分布的随机数。
2、产生二进制序列后当进行8PSK调制时伴随着高斯随机噪声,这时的信号便会有不同概率误差,我们就用蒙特卡罗来估计分析,存在的误差是怎么的,有多少,基于蒙特卡罗的思想原则和应用特征,结合通信中调制解调理论,利用蒙特卡罗思想在通信系统建模的应用,并给出仿真结果。
蒙特卡罗法的步骤是:
(1)构造实际问题的目标概率模型;
(2)根据目标概率模型的特点,确定概率密度函数和累积概率分布函数;(3)统计试验结果,给出问题的解和精度估计.
仿真平台为matlab7.0,验证蒙特卡罗方法的好坏主要是能否把仿真结果确切显示出来.在计算信号误差函数时为了提高实验效果,在伪随机采样时就对概率密度函数和累积概率分布函数作好统计,这样得到的采样信号统计特征量,才能防止随着伪随机数数目增加而处理时间以指数级增加.仿真结果见图10
蒙特卡罗法的主要思路是:
一、针对所要求解或所要验证的问题建立一个简单且便于实现的概率统计模型;
二、对模型中的随机变量建立抽样方法,在计算机上进行随机模拟,抽取足够的随机数,并对有关的事件进行统计;
三、对模拟试验结果加以分析说明.
3、数字调相{或相移键控PSK)最简单的形式为,利用=进制数字信号对两个同频反相正弦渡进行控制不断切换合成调相渡,即BPSK。
8BPSK是一种常用的八相相移键控,有八种可能输出的相位,它不是恒幅度调制,不仅在相位中而且在幅度中亦包台信息,一个符号携带三个比特的信息8PSK的调制信号可以看成是对两个正交载波进行四电平双边带调制后所得的两路四进制幅度键控4ASK信号的叠加,其实现如图3所示。
4、在传输信道中引入噪声,解调出的信号以眼图的形式输出,改变干扰信号的强度,录取不同干扰强度下的眼图,利用眼图来观察其噪声带来的误码率。
计算对应眼图的眼皮厚度与眼图开启度。
改变信噪比的大小,相应的给出眼皮厚度和眼图开启度的值及相应的受扰后的眼图。
结合眼皮厚度与眼图开启度两个参数,建立二者的比值(眼图厚度比)与干扰强度的对应关系。
通过大量的仿真数据获得拟合曲线。
四、设计结果及分析
图7二进制序列及8PSK波形
图8高斯随机噪声
图9叠加后的8PSK波形
图108PSK的蒙特卡罗仿真
图11解调后的8PSK信号
图12眼图
分析:
信道噪声对系统性能的主要影响是在接收信号中引入了比特差错。
在二进制系统中,比特差错率表现为将符号1误认为0,或将符号0误认为符号1。
很明显比特差错的频率越高,接收机的输出信号与原始信息之间的差异就越大。
在存在信道噪声的情况下,可以用平均符号差错概率来衡量二进制信息传输的逼真度。
平均符号差错概率的定义为,接收机输出的重构符号与所传输的二进制不相同的平均概率。
在原始二进制波形中的所有比特均具有相同重要性的条件下,平均符号差错概率又称为误比特率(BER)。
但是,在重构原始消息信号的模拟波形时,不同的符号差错可能需要区别对待。
例如码字(表示消息信号的量化抽样值)中重要的比特发生的错误要比不重要的比特发生的错误有害得多。
将接收数字信号波形输入示波器,把产生水平扫描的锯齿波形周期与码源定时同步,则在示波器上可以看到相应的眼图。
数字信号干扰效果评估是通信信号干扰效果评估中的一项重要的研究内容,基于眼图分析的干扰效果评估方法的研究,首先在确定成型滤波器及其滚降系数(即排除了信道中其它因素如码间串扰的影响)的基础上为数字信号的眼图生成提供了平台;进而完成对眼图受到干扰后的变化情况的分析,确定了能够反应眼图变化的两个特征参数(眼皮厚度、眼图的开启度),为评估受扰后的眼图提供了参数依据;最后通过仿真,建立了眼图厚度比随干扰强度变化的评估模板,提出了一种新的能够反应数字信号受干扰情况的评估方法。
五、体会
本设计要求采用matlab实现对8PSK通信系统的蒙特卡罗仿真并且绘制相关的图形,此题比较难做涉及到的方面很多,对8PSK及蒙特卡罗仿算法很不了解查阅了很多资料然而涉及的有较少,但查资料当中学到了很多不知道的东西,加深了对PSK的了解。
六、参考文献
【1】、曹志刚,钱亚生.现代通信原理.清华大学出版社,2006年10月第24版
【2】、罗新民现代通信原理(第二版)高等教育出版社
【3】、张立材通信原理(第2版)人民邮电出版社
【4】、郭文彬.通信原理基于matlab的计算机仿真.北京邮电大学
【5】、杨 凯 眼图分析法在干扰效果评估中的应用(解放军63888部队,河南济源454650)2009年第4期
附件1:
程序
fcarr=0.5*5e3;
N=20;
fs=20*1e3;
Fn=fs/2;
Ts=1/fs;
T=1/N;
randn('state',0);
td=[0:
Ts:
(N*T)-Ts]';
data=sign(randn(N,1))';
data1=ones(T/Ts,1)*data;
data2=data1(:
);
data_2=data2';
data_2=data_2>0;
Transmitted_data_bits=data_2(1:
(fs)/N:
end)
figure
(1)
subplot(2,1,1)
plot(td,data2)
axis([01-22]);
gridon
xlabel('Time')
ylabel('Amplitude')
title('输入数据')
twopi_fc_t=(1:
fs/2)*2*pi*fcarr/fs;
a=1;
phi=0;
cs_t=a*cos(twopi_fc_t+phi);
sn_t=a*sin(twopi_fc_t+phi);
cs_t=cs_t';
sn_t=sn_t';
si=cs_t.*Isymbols;
sq=sn_t.*Qsymbols;
sumiq=si+sq;
gridon
subplot(2,1,2)
plot(tiq,sumiq)
axis([.498.502-22]);
gridon
xlabel('Time(s)')
ylabel('Amplitude')
title('8PSK波形');
M=2;
seed=[7864554321];
SNRpBit=60;SNR=SNRpBit/log2(M);
numPlot=25;
source=randsrc(numSymb,1,[0:
M-1]);n=randn(1,100)*sqrt
(1);
figure
(2)
stem(n)
title('高斯随机噪声')
figure(4)
subplot(1,1,1)
plot(tiq,sumiq1)
axis([.498.502-22]);
gridon
xlabel('Time(s)')
ylabel('Amplitude')
title('叠加噪声后的8PSK波形')
figure(5)
xlabel('Time')
ylabel('Voltage')
out=[];
fori=1:
1000:
10000
out=[outbitout(i:
i+999)bitout1(i:
i+999)];
end
out1=[];
fori=1:
1000:
20000
ifsum(out(i:
i+999))>0
outa(i:
i+999)=1;
out1=[out11];
else
outa(i:
i+999)=-1;
out1=[out1-1];
end
end
plot(td,outa)
title('解调后的8PSK信号');
gridon;
axis([01-22]);
N=fs/fcarr;
function[pb,ps]=cm_sm32(snr_in_dB)
N=10000;
E=1;
snr=10^(snr_in_dB/10);
sgma=sqrt(E/(3*2*snr));
s000=[10];
s001=[cos(pi/4)sin(pi/4)];
s011=[01];
s010=[cos(3*pi/4)sin(3*pi/4)];
s110=[-10];
s111=[cos(5*pi/4)sin(5*pi/4)];
s101=[0-1];
s100=[cos(7*pi/4)sin(7*pi/4)];
fori=1:
N,
temp=rand;
if(temp<0.125),
dsource1(i)=0;
dsource2(i)=0;
dsource3(i)=0;
elseif(temp<0.25),
dsource1(i)=0;
dsource2(i)=0;
dsource3(i)=1;
elseif(temp<0.375),
dsource1(i)=0;
dsource2(i)=1;
dsource3(i)=0;
elseif(temp<0.5),
dsource1(i)=0;
dsource2(i)=1;
dsource3(i)=1;
elseif(temp<0.625),
dsource1(i)=1;
dsource2(i)=0;
dsource3(i)=0;
elseif(temp<0.75),
dsource1(i)=1;
dsource2(i)=0;
dsource3(i)=1;
elseif(temp<0.875),
dsource1(i)=1;
dsource2(i)=1;
dsource3(i)=0;
else
dsource1(i)=1;
dsource2(i)=1;
dsource3(i)=1;
end;
end;
numofsymbolerror=0;
numofbiterror=0;
fori=1:
N,
n
(1)=gngauss(sgma);
n
(2)=gngauss(sgma);
if((dsource1(i)==0)&(dsource2(i)==0)&(dsource3(i)==0)),
r=s000+n;
elseif((dsource1(i)==0)&(dsource2(i)==0)&(dsource3(i)==1)),
r=s001+n;
elseif((dsource1(i)==0)&(dsource2(i)==1)&(dsource3(i)==0)),
r=s010+n;
elseif((dsource1(i)==0)&(dsource2(i)==1)&(dsource3(i)==1)),
r=s011+n;
elseif((dsource1(i)==1)&(dsource2(i)==0)&(dsource3(i)==0)),
r=s100+n;
elseif((dsource1(i)==1)&(dsource2(i)==0)&(dsource3(i)==1)),
r=s101+n;
elseif((dsource1(i)==1)&(dsource2(i)==1)&(dsource3(i)==0)),
r=s110+n;
else
r=s111+n;
end;
c000=dot(r,s000);
c001=dot(r,s001);
c010=dot(r,s010);
c011=dot(r,s011);
c100=dot(r,s100);
c101=dot(r,s101);
c110=dot(r,s110);
c111=dot(r,s111);
c_max=max([c000c001c010c011c100c101c110c111]);
if(c000==c_max),
decis1=0;decis2=0;decis3=0;
elseif(c001==c_max),
decis1=0;decis2=0;decis3=1;
elseif(c010==c_max),
decis1=0;decis2=1;decis3=0;
elseif(c011==c_max),
decis1=0;decis2=1;decis3=1;
elseif(c100==c_max),
decis1=1;decis2=0;decis3=0;
elseif(c101==c_max),
decis1=1;decis2=0;decis3=1;
elseif(c110==c_max),
decis1=1;decis2=1;decis3=0;
else
decis1=1;decis2=1;decis3=1;
end;
symbolerror=0;
if(decis1~=dsource1(i)),
numofbiterror=numofbiterror+1;
symbolerror=1;
end;
if(decis2~=dsource2(i)),
numofbiterror=numofbiterror+1;
symbolerror=1;
end;
if(decis3~=dsource3(i)),
numofbiterror=numofbiterror+1;
symbolerror=1;
end;
if(symbolerror==1),
numofsymbolerror=numofsymbolerror+1;
end;
end;
ps=numofsymbolerror/N;
pb=numofbiterror/(3*N);
function[channelout]=pskmoto(input,No)
u=input;
sgma=sqrt(No);
%经过高斯信道
fori=1:
length(u)
n=gngauss(sgma);
if((dsource1(i)==0)&(dsource2(i)==0)&(dsource3(i)==0))
r=s000+n;
elseif((dsource1(i)==0)&(dsource2(i)==0)&(dsource3(i)==1))
r=s001+n;
elseif((dsource1(i)==0)&(dsource2(i)==1)&(dsource3(i)==0))
r=s010+n;
elseif((dsource1(i)==0)&(dsource2(i)==1)&(dsource3(i)==1))
r=s011+n;
elseif((dsource1(i)==1)&(dsource2(i)==0)&(dsource3(i)==0))
r=s100+n;
elseif((dsource1(i)==1)&(dsource2(i)==0)&(dsource3(i)==1))
r=s101+n;
elseif((dsource1(i)==1)&(dsource2(i)==1)&(dsource3(i)==0))
r=s110+n;
else
r=s111+n;
end
%计算互相关度
c000=dot(r,s000);
c001=dot(r,s001);
c010=dot(r,s010);
c011=dot(r,s011);
c100=dot(r,s100);
c101=dot(r,s101);
c110=dot(r,s110);
c111=dot(r,s111);
%对第i个符号进行判决
c_max=max([c000c001c010c011c100c101c110c111]);
if(c000==c_max)
decis1(i)=0;
decis2(i)=0;
decis3(i)=0;
elseif(c001==c_max)
decis1(i)=0;
decis2(i)=0;
decis3(i)=1;
elseif(c010==c_max)
decis1(i)=0;
decis2(i)=1;
decis3(i)=0;
elseif(c011==c_max)
decis1(i)=0;
decis2(i)=1;
decis3(i)=1;
elseif(c100==c_max)
decis1(i)=1;
decis2(i)=0;
decis3(i)=0;
elseif(c101==c_max)
decis1(i)=1;
decis2(i)=0;
decis3(i)=1;
elseif(c110==c_max)
decis1(i)=1;
decis2(i)=1;
decis3(i)=0;
else
decis1(i)=1;
decis2(i)=1;
decis3(i)=1;
end
end
%映射成多进制信号
fori=1:
length(u)
if((decis1(i)==0)&(decis2(i)==0)&(decis3(i)==0))
channelout(i)=0;
elseif((decis1(i)==0)&(decis2(i)==0)&(decis3(i)==1))
channelout(i)=1;
elseif((decis1(i)==0)&(decis2(i)==1)&(decis3(i)==0))
channelout(i)=2;