2020年1月2日QPSK通信系统的MonteCarlo仿真实验报告一、实验目的...................................................................................................................................1二、实验原理及框图.......................................................................................................................1三、实验内容...................................................................................................................................2四、程序及其注释...........................................................................................................................21、主函数(不包括MonteCarlo仿真部分).......................................................................22、MonteCarlo仿真主函数...................................................................................................33、测试(7,4)汉明码性能的主函数.................................................................................34、二进制的格雷码信源子函数.............................................................................................35、二进制信号变为四进制符号子函数.................................................................................46、星座映射子函数.................................................................................................................57、产生两路正交高斯噪声信号子函数.................................................................................58、最小距离判决子函数.........................................................................................................59、最大投影点判决子函数.....................................................................................................610、四进制信号变为二进制子函数.......................................................................................611、误符号率计算子函数.....................................................................................................712、通过符号计算误比特率子函数.......................................................................................713、星座图子函数...................................................................................................................814、汉明编码子函数...............................................................................................................815、汉明解码和纠错子函数...................................................................................................816、从汉明码中提取原二进制码不纠错子函数................................................................9五、仿真结果和图形.....................................................................................................................9六、结果分析和结论...................................................................................................................15七、遇到的问题、解决方法和收获...........................................................................................151一、实验目的1、提高独立学习的能力;2、培养发现问题、解决问题和分析问题的能力;3、学习Matlab的使用;4、掌握4PSK通信系统的MonteCarlo仿真方法;5、掌握4PSK通信系统的的组成原理;6、比较编码信号和为编码信号在随机信道中的传输,加深对纠错编码的理解;二、实验原理及框图1.未加信道纠错码的QPSK调制通信系统(见图(一))2比特符号图一未加信道纠错码的QPSK调制通信系统框图2.信道纠错编码(7,4)汉明码+QPSK调制的通信系统(见图(二))图二信道纠错编码(7,4)汉明码+QPSK调制的通信系统框图均匀随机数发生器高斯随机数发生器高斯随机数发生器比较比特差错计数器符号差错计数器4PSK映射检测器++输入数据AWGN信道输出数据信道编码(汉明码)QPSK调制QPSK解调信道解码(汉明码)2三、实验内容(一)未加信道纠错编码的QPSK调制通信系统1)最大投影点准则进行判决a,计算噪声方差分别为0、0.1、0.5、1.0时的符号差错概率和比特差错概率;b,画出在每种方差时,在检测器输入端1000个接收到的信号加噪声样本(星座图);c,分别画出数据点为1000,5000,10000,100000,时的MonteCarlo仿真误比特率曲线和理论误比特率曲线,比较区别,分析数据点的数量对仿真结果的影响。2)将检测器的判决准则改为最小距离法(星座图上符号间的距离),比较与上面结果的区别(二)信道纠错编码(7,4)汉明码+QPSK调制的通信系统1)比较经过信道纠错编码的QPSK调制系统与未加信道调制编码的系统的传输性能。四、程序及其注释1、主函数(不包括MonteCarlo仿真部分)clear;clc;N=5000;sgm2=0.1;gray_in=source(N);%信源,用格雷码表示s_in=gray2symbol(gray_in);%变为四进制符号[c]=mapping(s_in);%星座图映射n=orthogonal_gaussian(N,sgm2);%产生两路正交的高斯噪声信号cn=awgn_out(c,n);%经过信道s_out_distance=minimum_distance_judge(cn);%最小距离法判决s_out_projection=maximum_projection_judge(cn);%最大投影判决gray_out=s2gray(s_out_projection);%把四进制码译为2进制格雷码ser_distance=SER(s_in,s_out_distance);%最小距离法误码率ser_projection=SER(s_in,s_out_projection);%最大投影法误码率s_difference=SER(s_out_projection,s_out_distance);%两种判决方法结果不同率ber_distance=BER(s_in,s_out_distance);%最小距离法误比特率,由四进制码计算二进制误比特率ber_projection=SER(gray_in,gray_out);%最大投影法误比特率,由二进制码套用误码率的函数计算b_difference=BER(s_out_projection,s_out_distance);%两种方法的不同比特率constellaion_qpsk(s_in,cn);%星座图32、MonteCarlo仿真主函数clear;clc;N=10000;fori=1:106SNR(i)=(i-1)/5-10;%信噪比范围r=10^(SNR(i)/10);sgm2(i)=1/(2*r);%通过信噪比计算出噪声的方差gray_in=source(N);s_in=gray2symbol(gray_in);%变为四进制符号[c]=mapping(s_in);n=orthogonal_gaussian(N,sgm2(i));cn=awgn_out(c,n);s_out_projection=maximum_projection_judge(cn);ber_projection(i)=BER(s_in,s_out_projection);%仿真的误码率theory(i)=0.5*erfc(sqrt(r));%理论误码率endsemilogy(SNR,ber_projection,'o');%画出log的图像holdon;semilogy(SNR,theory)gridon;xlabel('Eb/N0(dB)');ylabel('BER');holdoff;3、测试(7,4)汉明码性能的主函数clear;clc;N=10000;HN=7*N/4;fori=1:106SNR(i)=(i-1)/5-10;%信噪比范围r=10^(SNR(i)/10);sgm2(i)=1/(2*r);%通过信噪比计算出噪声的方差gray_in=source(N);%信源的格雷码hn=hamming_encode(gray_in);%汉明编码s_in=gray2symbol(hn);%变为四进制符号[c]=mapping(s_in);%星座映射n=orthogonal_gaussian(HN,sgm2(i));%产生两路正交的高斯信号cn=awgn_out(c,n);%经过信道s_out_distance=minimum_distance_judge(cn);%最小距离法判决4gray_out_74=s2gray(s_out_distance);%把四进制码译为2进制格雷码gray_out1=hamming_d