《QPSK通信系统的MonteCarlo仿真.pdf》由会员分享,可在线阅读,更多相关《QPSK通信系统的MonteCarlo仿真.pdf(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1 QPSK 通信系统的 MonteCarlo 仿真 实验报告 山东大学 荣林林 20071001089 2 一、实验目的 1、提高独立学习的能力;2、培养发现问题、解决问题和分析问题的能力;3、学习Matlab 的使用;4、掌握4PSK通信系统的Monte Carlo仿真方法;5、掌握4PSK通信系统的的组成原理;6、比较编码信号和为编码信号在随机信道中的传输,加深对纠错编码的理解;二、系统框图及编程原理 实验原理 PSK 是利用载波的不同相位表示相应的数字信息。对于二进制相位调制(M=2)来说,两个载波相位是 0 和。对于 M 相相位调制来说 M=2k,这里 k是每个传输符号的信息比特数
2、。4PSK 是 M=4 的载波相位调制。这里,将理论差错概率与仿真的差错概率比较,进一步观察仿真与理论值之间的差别。同时,用不同的判决准则对接受信号进行判决。并比较两种判别方法的差别。一QPSK 调制原理 1信号能量分析 一组 M 载波相位调制信号波形的一般表示式为)22cos()()(MmtftAgtucTm m=0,M-1 式中)(tgT是发送滤波器的脉冲形状,它决定了传输信号的频谱特性,A 是信号的幅度。注意到,PSK 信号对所有 m 都具有相等的能量,即 3 sTmdttgA)(222 s代表每个传输符号的能量。2噪声分析 传输信号的信道假设被加性噪声 n(t)所污损,这样信号在接收端
3、将产生误码。因为 n(t)是功率谱为20N的白高斯过程的一个样本函数,所以噪声分量10nn 和就是零均值高斯型的,即 3信号判决分析 最佳检测器将接收信号向量 r 投射到 M 个可能的传输信号向量ms之一上去,并选取对应于最大投影的向量。据此,得到相关准则为 mmsrsrC),(m=0,M-1 检测器观察到接收信号向量nsrm,并计算 r 在 4 种可能的信号向量ms上的投影。根据选取对应于最大投影的信号点作为判决,从而判决出信号。同时,检测器的判决准则也可采用最小距离法,即利用星座图上符号间的距离进行判决,从而得到判决结果。4 二Monte Carlo 仿真过程 仿真框图如图(一)图(一)用
4、于 Monte Carlo 仿真的 4PSK 系统的方框图 如图所示,利用一个随机数发生器,产生(0,1)范围内的随机数。再将这个范围分成四个相等的区间(0,0.25),(0.25,0.5),(0.5,0.75),(0.75,1.0),这些子区间分别对应于 00,01,11,10 信息比特对,再用这些比特对来选择信号相位向量ms。加性噪声的同相分量和正交分量,在上面讨论过,即为零均值,方差为 的统计独立的高斯随机变量。在检测器观察到的接收信号向量,利用上面讨论的两种检测方法,得到判决结果,并与传输符号作比较,最后对符号差错和比特差错计数 三、实验内容及程序分析(以下程序皆以N=1000为例)%
5、映射比较子函数%函数分为四步第一步产生随机序列,进行4PSK映射。%第二步:调用高斯高斯噪声子函数,产生正交两路高斯噪声,与输出符号序列相加%第三步:检测接受信号 5%第四步:计算误码率和误比特率 N=1000;%符号长度 E=1;%计算噪声方差 sgma=input(方差=);sgma=sqrt(sgma);%4PSK比特映射 s00=1 0;s01=0 1;s11=-1 0;s10=0-1;%第一步产生随机序列,进行4PSK映射。生成随机信源 for i=1:N,%生成随机信源 temp=rand;if(temp0.25),%With probability 1/4,source outp
6、ut is 00.dsource1(i)=0;dsource2(i)=0;elseif(temp0.5),%With probability 1/4,source output is 01.dsource1(i)=0;dsource2(i)=1;elseif(temp%j化星座图函数 sgma=input(方差=);%输入方差 sgma=sqrt(sgma);%求sgma N=1000;%输入数据点数 E=1;%单个符号能量%4PSK映射规则%s00=1 0;s01=0 1;s11=-1 0;s10=0-1;%化星座图%产生信源序列%for i=1:N,%a uniform random va
7、riable between 0 and 1 temp=rand;%随机序列 if(temp0.25),%With probability 1/4,source output is 00.dsource1(i)=0;dsource2(i)=0;10 elseif(temp0.5),%With probability 1/4,source output is 01.dsource1(i)=0;dsource2(i)=1;elseif(temp0.5)source(i)=1;else source(i)=0;end end%(7,4)汉明编码%第二步:实现4码到7码的变换 for k=1:N/4
8、out(7*k-6)=source(4*k-3);out(7*k-5)=source(4*k-2);out(7*k-4)=source(4*k-1);out(7*k-3)=source(4*k);17 out(7*k-2)=xor(xor(out(7*k-6),out(7*k-5),out(7*k-4);out(7*k-1)=xor(xor(out(7*k-6),out(7*k-5),out(7*k-3);out(7*k)=xor(xor(out(7*k-6),out(7*k-4),out(7*k-3);end%第三步:进行4PSK映射。s00=1 0;%s00=1 0 s01=0 1;%s0
9、1=0 1 s11=-1 0;%s11=-1 0 s10=0-1;%s10=0-1%进行4PSK映射%for i=1:N/2 if(source(2*i-1)=0&source(2*i)=0)s=s00;elseif(source(2*i-1)=0&source(2*i)=1)s=s01;elseif(source(2*i-1)=1&source(2*i)=0)s=s10;elseif(source(2*i-1)=1&source(2*i)=1)s=s11;end%第四步:调用高斯高斯噪声子函数,产生正交两路高斯噪声,与输出符号序列相加n(1),n(2)=gnguass(0,sgma);%调用
10、gnguass函数 18 r=s+n;%(7,4)汉明解码%第五步:7码到4码的解码 for k=1:N/4 jiema(4*k-3)=out(7*k-6);jiema(4*k-2)=out(7*k-5);jiema(4*k-1)=out(7*k-4);jiema(4*k)=out(7*k-3);end%第六步:进行码元检测%最大投影点准则%c00=dot(r,s00);%取r在s00上的投影 c01=dot(r,s01);%取r在s01上的投影 c10=dot(r,s10);%取r在s10上的投影 c11=dot(r,s11);%取r在s11上的投影 c_max=max(c00 c01 c1
11、0 c11);%取c00,c01,c10,c11中的最大值 if(c00=c_max),decis1=0;decis2=0;elseif(c01=c_max),decis1=0;decis2=1;elseif(c10=c_max),decis1=1;decis2=0;19 else decis1=1;decis2=1;end out(2*i-1)=decis1;out(2*i)=decis2;end%第七步:计算误码率和误比特率%计算符号差错概率%symbolerror=0;for i=1:N/2 if(out(2*i-1)=source(2*i-1)|out(2*i)=source(2*i)
12、symbolerror=symbolerror+1;end end ps=2*symbolerror/N;%计算比特差错概率 biterror=0;for i=1:N if(out(i)=source(i)biterror=biterror+1;end end 20 pb=biterror/N;1、高斯白噪声子函数 functiongsrv1,gsrv2=gnguass(m,sgma)if nargin=0 m=0;sgma=1;elseif nargin=1 sgma=m;m=0;end u=rand;z=sgma*sqrt(2*log10(1/(1-u);u=rand;gsrv1=m+z*
13、cos(2*pi*u);gsrv2=m+z*sin(2*pi*u);函数评注:编程产生正交两路高斯白噪声 2、映射检测比较子函数(1)、采用最大投影准则 function pb,ps=cm_sm32(snr_in_dB)%pb,ps=cm_sm32(snr_in_dB)%pb 误符号率%ps 误比特率 N=1000;%符号长度 E=1;%计算噪声方差 snr=10(snr_in_dB/10);sgma=sqrt(E/snr/2);s00=1 0;%比特映射 s01=0 1;s11=-1 0;s10=0-1;for i=1:N,%生成随机信源 21 temp=rand;if(temp0.25),
14、%With probability 1/4,source output is 00.dsource1(i)=0;dsource2(i)=0;elseif(temp0.5),%With probability 1/4,source output is 01.dsource1(i)=0;dsource2(i)=1;elseif(temp0.75),%With probability 1/4,source output is 10.dsource1(i)=1;dsource2(i)=0;else%With probability 1/4,source output is 11.dsource1(i)
15、=1;dsource2(i)=1;end;end;numofsymbolerror=0;%检测错误并计算错误率 numofbiterror=0;for i=1:N,gsrv1,gsrv2=gnguass(0,sgma);%调用高斯噪声子函数 n(1)=gsrv1;n(2)=gsrv2;if(dsource1(i)=0)&(dsource2(i)=0),r=s00+n;elseif(dsource1(i)=0)&(dsource2(i)=1),r=s01+n;elseif(dsource1(i)=1)&(dsource2(i)=0),r=s10+n;else r=s11+n;end;c00=do
16、t(r,s00);%最大投影点准则,即向量点乘积 c01=dot(r,s01);c10=dot(r,s10);c11=dot(r,s11);c_max=max(c00 c01 c10 c11);if(c00=c_max),decis1=0;decis2=0;elseif(c01=c_max),decis1=0;decis2=1;elseif(c10=c_max),decis1=1;decis2=0;22 else decis1=1;decis2=1;end;symbolerror=0;%设置符号错误标志,以统计错误个数 if(decis1=dsource1(i),numofbiterror=n
17、umofbiterror+1;symbolerror=1;end;if(decis2=dsource2(i),numofbiterror=numofbiterror+1;symbolerror=1;end;if(symbolerror=1),numofsymbolerror=numofsymbolerror+1;end;end;ps=numofsymbolerror/N;%错误率计算 pb=numofbiterror/(2*N);(2)最小距离判别法(只需将上面红色部分改为下面程序即可)c00=sqrt(r(1)-s00(1)2+(r(2)-s00(2)2);%最小距离判决 c01=sqrt(r(1)-s01(1)2+(r(2)-s01(2)2);c10=sqrt(r(1)-s10(1)2+(r(2)-s10(2)2);c11=sqrt(r(1)-s11(1)2+(r(2)-s11(2)2);c_min=min(c00 c01 c10 c11);if(c00=c_min),decis1=0;decis2=0;elseif(c01=c_min),decis1=0;decis2=1;elseif(c10=c_min),decis1=1;decis2=0;else decis1=1;decis2=1;end;23
限制150内