1 / 31
文档名称:

QPSK通信系统的 MonteCarlo 仿真.doc

格式:doc   大小:517KB   页数:31页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

QPSK通信系统的 MonteCarlo 仿真.doc

上传人:buhouhui915 2018/4/25 文件大小:517 KB

下载得到文件列表

QPSK通信系统的 MonteCarlo 仿真.doc

文档介绍

文档介绍:QPSK通信系统的 MonteCarlo 仿真
实验报告

班级:通信一班
姓名: 荣林林 20071001089
李海强 20071201086
一、实验目的
1、提高独立学习的能力;
2、培养发现问题、解决问题和分析问题的能力;
3、学习Matlab 的使用;
4、掌握4PSK通信系统的Monte Carlo仿真方法;
5、掌握4PSK通信系统的的组成原理;
6、比较编码信号和为编码信号在随机信道中的传输,加深对纠错编码的理解;
二、系统框图及编程原理
实验原理
PSK是利用载波的不同相位表示相应的数字信息。对于二进制相位调制(M=2)来说,两个载波相位是0和π。对于M相相位调制来说M=2k,这里k是每个传输符号的信息比特数。4PSK是M=4的载波相位调制。
这里,将理论差错概率与仿真的差错概率比较,进一步观察仿真与理论值之间的差别。同时,用不同的判决准则对接受信号进行判决。并比较两种判别方法的差别。


一组M载波相位调制信号波形的一般表示式为
m=[0,M-1]
式中是发送滤波器的脉冲形状,它决定了传输信号的频谱特性,A是信号的幅度。注意到,PSK信号对所有m都具有相等的能量,即
代表每个传输符号的能量。

传输信号的信道假设被加性噪声n(t)所污损,这样信号在接收端将产生误码。因为n(t)是功率谱为的白高斯过程的一个样本函数,所以噪声分量就是零均值高斯型的,即

最佳检测器将接收信号向量r投射到M个可能的传输信号向量{}之一上去,并选取对应于最大投影的向量。据此,得到相关准则为
m=[0,M-1]
检测器观察到接收信号向量,并计算r在4种可能的信号向量上的投影。根据选取对应于最大投影的信号点作为判决,从而判决出信号。
同时,检测器的判决准则也可采用最小距离法,即利用星座图上符号间的距离进行判决,从而得到判决结果。
Carlo 仿真过程
仿真框图如图(一)
图(一) 用于 Monte Carlo仿真的4PSK系统的方框图
如图所示,利用一个随机数发生器,产生(0,1)范围内的随机数。再将这个范围分成四个相等的区间(0,),(,),(,),(,),这些子区间分别对应于00,01,11,10信息比特对,再用这些比特对来选择信号相位向量。加性噪声的同相分量和正交分量,在上面讨论过,即为零均值,方差为的统计独立的高斯随机变量。在检测器观察到的接收信号向量,利用上面讨论的两种检测方法,得到判决结果,并与传输符号作比较,最后对符号差错和比特差错计数
三、信道纠错编码
信道解码
QPSK解调
AWGN信道
QPSK调制

信道编码
输入数据
在随机信道中,错码的出现是随机的,且错码之间是统计独立的。有高斯白噪声引起的错码就具有这种性质。所以,当信道中加性噪声为这种噪声时,就成这种信道为随机信道。
由于发送码元是随机的,接收端是无法预知的,也无法识别其中有无错码,为此,可在发送端的信息码元序列中,增加一些监督码元,这些监督码元与信息码元之间有一定的关系,接收端利用这种关系,来发现和纠正其中的可能存在的错码。在信息码元中加入监督码元就称为差错控制编码,也称纠错编码。汉明编码就是一种能够纠正一位错码,且编码效率较高的线性分组码。
具体的汉明编码过程主要为:
以(7,4)汉明编码为例,发送端信息序列以4个一组,再加上3个监督位,构成7为发送信息。其中,a0,a1,a2为监督位,a3,a4,a5,a6为信息序列。用S1,S2,S3为三个校正因子,当[S1,S2,S3]=0 0 1, 错码位置a0,
0 1 0, 错码位置a1,
1 0 0, 错码位置a2,
0 1 1, 错码位置a3,
1 0 1, 错码位置a4,
1 1 0, 错码位置a5,
1 1 1, 错码位置a6,
0 0 0, 无错码。
在发送端编码时,信息位a3,a4,a5,a6的值决定于输入信号,因此他们是随机的,监督位的a2,a1,a0根据信息位的取值按照监督关系(即是校验因子的值全为零),可以解得:
a2=a6a5a4,
a1=a6a5a3,
a0=a6a4a3,
给出信息位后可以直接根据上式确定出监督位。
在接收端,收到每个码组先计算出对应的校验位,然后判断错码情况,并对应校正过来。
四、实验过程中需要用到的一些子函数模块
1、高斯白噪声子函数
function[gsrv1,gsrv2]=gnguass(m,sgma)
if nargin==0
m=0;
sgma=1;
elsei