logo资料库

MATLAB实践 QPSK系统的误码率和星座图仿真.doc

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
《MATLAB 实践》报告 ——QPSK 系统的误码率和星座图仿真 一、引言 数字调制就是把数字基带信号的频谱搬移到高频处,形成适合在信道中传输的带通 信号。基本的数字调制方式有振幅键控(ASK)、频移键控(FSK)、绝对相移键控(PSK)、 相对(差分)相移键控(DPSK)。在接收端可以采用想干解调或非相干解调还原数字 基带信号。 数字信号的传输方式分为基带传输和带通传输。然而,实际中的大多数信道(如) 无线信道具有丰富的低频分量。为了使数字信号在带通信道中传输,必须用数字基带信 号对载波进行调制,以使信号与信道的特性相匹配。 通信系统的抗噪声性能是指系统克服加性噪声影响的能力。在数字通信系统中,信 道噪声有可能使传输码元产生错误,错误程度通常用误码率来衡量。因此,与分析数字 基带系统的抗噪声性能一样,分析数字调制系统的抗噪声性能,也就是求系统在信道噪 声干扰下的总误码率。 误码率(BER:bit error ratio)是衡量数据在规定时间内数据传输精确性的指标。 误码率是指错误接收的码元数在传输总码元数中所占的比例,更确切地说,误码率是码 元在传输系统中被传错的概率,即误码率=错误码元数/传输总码元数。如果有误码就有 误码率。误码的产生是由于在信号传输中,衰变改变了信号的电压,致使信号在传 输中遭到破坏,产生误码。噪音、交流电或闪电造成的脉冲、传输设备故障及其 他因素都会导致误码(比如传送的信号是 1,而接收到的是 0;反之亦然)。误码 率是最常用的数据通信传输质量指标。它表示数字系统传输质量的式是“在多少位 数据中出现一位差错”。 误信率,又称误比特率,是指错误接收的比特数在传输总比特数中所占的比 例,即误比特率=错误比特数/传输总比特数。 在数字通信系统中,可靠性用误码率和误比特率表示。 数字调制用“星座图”来描述,星座图中定义了一种调制技术的两个基本参数: (1)信号分布;(2)与调制数字比特之间的映射关系。星座图中规定了星座点 与传输比特间的对应关系,这种关系称为“映射”,一种调制技术的特性可由信号 分布和映射完全定义,即可由星座图来完全定义。 二、QPSK 系统的原理 四相相移调制是利用载波的四种不同相位差来表征输入的数字信息,是四进 制 移相 键 控。QPSK 是 在 M=4 时 的调 相 技术 , 它规 定 了四 种 载 波相 位 ,分 别 为 45°,135°,225°,275°,调制器输入的数据是二进制数字序列,为了能和四进 制的载波相位配合起来,则需要把二进制数据变换为四进制数据,这就是说需要 把二进制数字序列中每两个比特分成一组,共有四种组合,即 00,01,10,11, 其中每一组称为双比特码元。每一个双比特码元是由两位二进制信息比特组成, 它们分别代表四进制四个符号中的一个符号。QPSK 中每次调制可传输 2 个信息 比特,这些信息比特是通过载波的四种相位来传递的。解调器根据星座图及接收 到的载波信号的相位来判断发送端发送的信息比特。 在 QPSK 体制中,由其矢量图(图 1)可以看出,错误判决是由于信号矢量 的相位因噪声而发生偏离造成的。例如,设发送矢量的相位为 45°,它代表基带 信号码元“11”,若因噪声的影响使接收矢量的相位变成 135°,则将错判为“01”。
当不同发送矢量以等概率出现时,合理的判决门限应该设定在和相邻矢量等距离 的位置。在图中对于矢量“11”来说,判决门限应该设在 0°和 90°。当发送“11” 时,接收信号矢量的相位若超出这一范围(图中阴影区),则将发生错判。 90 01 11 0 00 10 图 1 QPSK 的噪声容限 QPSK 信号的误码率: Pe 1  11    2 erfc r 2/ 2   QPSK 信号的误比特率: 1 2 Pe  erfc r 2/ 图 2 QPSK 系统原理方框图 三、仿真实验
根据信噪比 产生高斯 噪声数据 B F C 星座图映射 加法运算 判决 A 产生二进制 数据 D E 星座图 逆映射 误比特率 统计 误码率统计 图 3 仿真实验框图 实验结果(即误码率曲线和星座图) 图 4 B 点信号的星座图
图 5 C 点信号的星座图 图 6 误码率和误比特率的理论和仿真曲线
对实验结果的简单分析和说明 图 4 是 B 点信号的星座图映射,00、01、10、11 组合分别映射成-1-j,-1+j,1-j,1+j。 图 5 是 C 点信号的星座图映射,它是加入噪声后的映射结果,由图中可以看出加 入噪声后大致以-1-j,-1+j,1-j,1+j 为中心形成了近似圆的图像,少部分点偏离比较严重, 产生了误差。 由图 6,可见 QPSK 仿真误码率曲线和理论误码率曲线重合在一起,QPSK 仿真误 比特率曲线和理论误比特率曲线也重合在一起,误码率约是误比特率的两倍,说明实验 方法是正确可行的。 四、结论 本次实验研究了数字调制方式 QPSK,对其误码率进行了考察。通过理论误码率和 仿真误码的比较,了解了误码率的性能。本次实验还通过运用星座图来对实验结果进行 仿真。本次实验得出结论如下: QPSK 信号的误码率: Pe 1  11    2 erfc r 2/ 2   QPSK 信号的误比特率: 误码率是误比特率的两倍。 Pe  1 2 erfc r 2/ 附录: 1、 心得体会:本次实验我收获很多,学会了应用 MATLAB 来处理问题,加深了对通信原 理中部分公式和概念的理解。实验过程中也遇到了不少问题,在星座图映射上,一开始 将 00,01,10,11 看成一个整体,这样对整体编程存在很大困难,因此后来尝试将其 分开看,并成功映射;在计算噪声的过程中,由于通信原理的知识未能牢固掌握,在分 析和计算的过程中花了很多时间;实验过程中,学会了使用 find 函数来代替 for 循环的 功能,从而使程序运行更加快,大大加快了实验的进度。通过本次 MATLAB 的实践, 应该加强 MATLAB 在各个学科的应用,学会用 MATLAB 来处理实际问题。 2、 程序: close all clc clear all SNR_DB=[0:1:12]; sum=1000000; data= randsrc(sum,2,[0 1]); [a1,b1]=find(data(:,1)==0&data(:,2)==0); message(a1)=-1-j; [a2,b2]=find(data(:,1)==0&data(:,2)==1); message(a2)=-1+j; [a3,b3]=find(data(:,1)==1&data(:,2)==0); message(a3)=1-j; [a4,b4]=find(data(:,1)==1&data(:,2)==1); message(a4)=1+j; scatterplot(message) title('B 点信号的星座图')
A=1; Tb=1; Eb=A*A*Tb; P_signal=Eb/Tb; NO=Eb./(10.^(SNR_DB/10)); P_noise=P_signal*NO; sigma=sqrt(P_noise); for Eb_NO_id=1:length(sigma) noise1=sigma(Eb_NO_id)*randn(1,sum); noise2=sigma(Eb_NO_id)*randn(1,sum); receive=message+noise1+noise2*j; resum=0; total=0; m1=find(angle(receive)<=pi/2&angle(receive)>0); remessage(1,m1)=1+j; redata(m1,1)=1; redata(m1,2)=1; m2= find( angle(receive)>pi/2&angle(receive)<=pi); remessage(1,m2)=-1+j; redata(m2,1)=0; redata(m2,2)=1; m3=find( angle(receive)>-pi&angle(receive)<=-pi/2); remessage(1,m3)=-1-j; redata(m3,1)=0; redata(m3,2)=0; m4=find( angle(receive)>-pi/2&angle(receive)<=0); remessage(1,m4)=1-j; redata(m4,1)=1; redata(m4,2)=0; [resum,ratio1]=symerr(data,redata); pbit(Eb_NO_id)=resum/(sum*2); [total,ratio2]=symerr(message,remessage); pe(Eb_NO_id)=total/sum; end scatterplot(receive) title('C 点信号的星座图') Pe=1-(1-1/2*erfc(sqrt(10.^(SNR_DB/10)/2))).^2; Pbit=1/2*erfc(sqrt(10.^(SNR_DB/10)/2)); figure(3) semilogy(SNR_DB,pe,':s',SNR_DB,Pe,'-*',SNR_DB,pbit,'-o',SNR_DB,Pbit,':+') legend('QPSK 仿真误码率','QPSK 理论误码率','QPSK 仿真误比特率','QPSK 理论误比特率',1) xlabel('信噪比/dB') ylabel('概率 P') gird on
分享到:
收藏