8PSK通信系统的蒙特卡罗仿真分析(共11页)

上传人:des****85 文档编号:240085777 上传时间:2022-01-15 格式:DOC 页数:11 大小:138.50KB
返回 下载 相关 举报
8PSK通信系统的蒙特卡罗仿真分析(共11页)_第1页
第1页 / 共11页
8PSK通信系统的蒙特卡罗仿真分析(共11页)_第2页
第2页 / 共11页
8PSK通信系统的蒙特卡罗仿真分析(共11页)_第3页
第3页 / 共11页
8PSK通信系统的蒙特卡罗仿真分析(共11页)_第4页
第4页 / 共11页
8PSK通信系统的蒙特卡罗仿真分析(共11页)_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《8PSK通信系统的蒙特卡罗仿真分析(共11页)》由会员分享,可在线阅读,更多相关《8PSK通信系统的蒙特卡罗仿真分析(共11页)(11页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上8PSK通信系统的蒙特卡罗仿真分析一、 设计原理 1. 设计整体方案根据题目要求和对设计原理的分析,设计的整体方案为:首先,产生一个等概率且相互独立的二进制序列,将二进制序列通过串-并转换为一个三位码组。通过调用Matlab系统函数,对输入信号进行调制和滤波,再送入信道传输,在在信道中对信号采用加性高斯白噪声进行干扰,然后进行解调,同时计数误比特和误符号数,并根据蒙特卡罗方法统计分析信号传输过程中由于噪声干扰作用下的误比特率和误符号率。最后画出各种波形。 图1 8PSK通信系统的蒙特卡罗仿真分析2. 蒙特卡罗法的原理蒙特卡罗法又称随机抽样或统计试验方法,属于计算数学的

2、一个分支,它是在本世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。传统的经验方法由于不能逼近真实的物理过程,很难得到满意的结果,而蒙特卡罗方法 由于能够真实地模拟实际物理过程,故解决问题与实际非常符合,可以得到很圆满的结果。这也是我们采用该方法的原因。 蒙特卡罗方法的基本原理及思想如下: 当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。这就是蒙特卡罗方法的基本思想。蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。

3、它是 以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题 的近似解。二、 详细设计步骤根据整体设计方案,对各个设计模块进行具体设计。设计步骤如下:1 二进制序列的产生、串/并转换及二/十进制转换二进制的产生即是本系统的信息源的产生,串/并转换和二/十进制转换以备在调制的时候数据调用。在本系统中,首先,用Matlab库函数来直接产生一个串行二进制序列,并将其保存在一个向量中,以备函数调用;其次,将产生的串行二进制码转换成3行并行码,即是一个符号;再次,将二进制序列转换成十进制数(0、1、2、7);最后,调用Matlab绘图函数绘制等概率且相互独立的二进制序列波形。模块程

4、序如下: %数据源的产生x=round(rand(1,3*N); %产生独立串行随机二进制for i=1:N, D(1)=x(3*i-2); %D暂存二进制数以待转换 D(2)=x(3*i-1); D(3)=x(3*i); d1(i)=D(1); d2(i)=D(2); d3(i)=D(3); Bin2Dec(i)=bin2dec( num2str(D) );%二十进制转换 end%#以下是画出独立随机二进制序列程序for i=1:length(x), %计算码元的值 if(x(i)=1), %如果信息为1 for j0=1:grid0, %该码元对应的点值取1 y(i-1)*grid0+j0

5、)=1; end else for j0=1:grid0, %反之,信息元为0,码元对应点值取0 y(i-1)*grid0+j0)=0; end;end;endfigure(2); %图2plot(y,b); %画出独立随机二进制序列title(信号源);xlabel(X序列);ylabel(Y序列);axis(0 20000 -0.5 2) ;28psk调制、滤波、添加加性高斯白噪声及相应波形产生本系统中,首先,8psk调制、滤波通过调用Matlab库函数y=dmodce(x, Fd, Fs, method, ),从而在输出端输出8psk波形(眼图);其次,通过调用子函数产生高斯白噪声;最后

6、,在加入高斯白噪声后,绘制受噪声干扰的星座图和眼图。模块程序如下:for SNR_db=0:10:20N3=0.1*SNR_db;Eb_N0=10(SNR_db/10);sgma=sqrt(1/(8*Eb_N0); %nc、ns的均方差y0=dmodce(Bin2Dec,Fd,Fs, psk,M); %8PSK调制ynoise=sqrt(Fs/Fd)*sgma*(randn(length(y0),1)+j*randn(length(y0),1); % 加加性高斯随机噪声%z=ddemodce(ynoise,Fd,Fs,psk,M); %8PSK解调figure(N3+3); % 循环画出不同加

7、加性高斯随机噪声后的星座图axis(-1.2 1.2 -1.2 1.2);hold on;for i=0:M-1 plot(cos(2*pi*i/M),sin(2*pi*i/M), .,MarkerSize ,20); %产生星座图endplot(ynoise, +); %画出加噪声后的星座图title(加噪声后不同星座图);hold onfor j1=1:Nn1(N*N3+j1)=y0(j1); %存调制后的数据于n1n2(N*N3+j1)=ynoise(j1);%存加噪声后的数据于n2end %画出受到噪声干扰的信号向量;end;hold ondelay = 3; % 提升余弦滤波器的延时

8、 rcv = rcosflt(n1,Fd,Fs,fir/normal,.5,delay); rcvy = rcosflt(n2,Fd,Fs,fir/normal,.5,delay); propdelay = delay .* Fs/Fd + 1; % 繁殖延时 rcv1 = rcv(propdelay:end-(propdelay-1),:); rcvy1 = rcvy(propdelay:end-(propdelay-1),:); N0 = Fs/Fd; offset1 = 0;% 偏移值为2 h1 = eyediagram(rcv1,N0,1/Fd,offset1); set(h1,Nam

9、e,Eye Diagram Displayed with No Offset); title(加噪前的眼图);h2 = eyediagram(rcvy1,N0,1/Fd,offset1); set(h2,Name,Eye Diagram Displayed with No Offset); title(加噪后的眼图); %# 以下是画出加加性高斯随机噪声的波形程序 B=10*N;for i=1:B n00(i)=10*gngauss(sgma);endfigure(8);hold on;for i=1:B plot(n00);end;title(加性高斯随机噪声);xlabel(时间t);yl

10、abel(幅度y);axis(0 B -2.5 2.5);3加性高斯白噪声的产生及其波形的产生和绘制 本模块,调用一个子函数,产生均值为0,方差为1的高斯白噪声,并且绘出相应的高斯白噪声波形。模块程序如下:%# 以下是画出加加性高斯随机噪声的波形程序 B=10*Nfor i=1:B n00(i)=10*gngauss(sgma);endfigure(8);hold on;for i=1:B plot(n00);end;title(加性高斯随机噪声);xlabel(时间t);ylabel(幅度y);axis(0 B -2.5 2.5);48PSK的解调 本模块是将加入加性高斯随机噪声的信号与可能

11、发送的8种发射信号相位向量am(m=0,1,2,3,4,5,6,7)进行相关,再通过判决器取出相关值最大的那组am,作为检测器的输出信号,完成相干检测,将该信号进行并串变换,其结果与原信号d进行比较。模块程序如下:%信号映射a000=1 0;a001=cos(pi/4) sin(pi/4);a011=0 1;a010=cos(3*pi/4) sin(3*pi/4);a110=-1 0;a111=cos(5*pi/4) sin(5*pi/4);a101=0 -1;a100=cos(7*pi/4) sin(7*pi/4); for i=1:N, n(1)=gngauss(sgma); n(2)=g

12、ngauss(sgma); %存高斯白噪声数据于n中 if(d1(i)=0)&(d2(i)=0)&(d3(i)=0), %加噪声 r=a000+n; elseif(d1(i)=0)&(d2(i)=0)&(d3(i)=1), r=a001+n; elseif(d1(i)=0)&(d2(i)=1)&(d3(i)=0), r=a010+n; elseif(d1(i)=0)&(d2(i)=1)&(d3(i)=1), r=a011+n; elseif(d1(i)=1)&(d2(i)=0)&(d3(i)=0), r=a100+n; elseif(d1(i)=1)&(d2(i)=0)&(d3(i)=1),

13、r=a101+n; elseif(d1(i)=1)&(d2(i)=1)&(d3(i)=0), r=a110+n; else r=a111+n; end; %对应相关函数 c000=dot(r,a000); c001=dot(r,a001); c010=dot(r,a010); c011=dot(r,a011); c100=dot(r,a100); c101=dot(r,a101); c110=dot(r,a110); c111=dot(r,a111); c_max=max(c000 c001 c010 c011 c100 c101 c110 c111); %判决器取出相关值最大,作为检测器的输出信号 if(c000=c_max)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号