MATLAB实践QPSK系统的误码率和星座图仿真.docx
- 文档编号:29894786
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:10
- 大小:220.10KB
MATLAB实践QPSK系统的误码率和星座图仿真.docx
《MATLAB实践QPSK系统的误码率和星座图仿真.docx》由会员分享,可在线阅读,更多相关《MATLAB实践QPSK系统的误码率和星座图仿真.docx(10页珍藏版)》请在冰豆网上搜索。
MATLAB实践QPSK系统的误码率和星座图仿真
MATLAB实践—QPSK系统的误码率和星座图仿真
《MATLAB实践》报告
——QPSK系统的误码率和星座图仿真
一、引言
数字调制就是把数字基带信号的频谱搬移到高频处,形成适合在信道中传输的带通信号。
基本的数字调制方式有振幅键控(ASK)、频移键控(FSK)、绝对相移键控(PSK)、相对(差分)相移键控(DPSK)。
在接收端可以采用想干解调或非相干解调还原数字基带信号。
数字信号的传输方式分为基带传输和带通传输。
然而,实际中的大多数信道(如)无线信道具有丰富的低频分量。
为了使数字信号在带通信道中传输,必须用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。
通信系统的抗噪声性能是指系统克服加性噪声影响的能力。
在数字通信系统中,信道噪声有可能使传输码元产生错误,错误程度通常用误码率来衡量。
因此,与分析数字基带系统的抗噪声性能一样,分析数字调制系统的抗噪声性能,也就是求系统在信道噪声干扰下的总
比特。
在QPSK体制中,由其矢量图(图1)可以看出,错误判决是由于信号矢量的相位因噪声而发生偏离造成的。
例如,设发送矢量的相位为45°,它代表基带信号码元“11”,若因噪声的影响使接收矢量的相位变成135°,则将错判为“01”。
当不同发送矢量以等概率出现时,合理的判决门限应该设定在和相邻矢量等距离的位置。
在图中对于矢量“11”来说,判决门限应该设在0°和90°。
当发送“11”时,接收信号矢量的相位若超出这一范围(图中阴影区),则将发生错判。
图1QPSK的噪声容限
QPSK信号的误码率:
QPSK信号的误比特率:
图2QPSK系统原理方框图
二、仿真实验
图3仿真实验框图
实验结果(即误码率曲线和星座图)
图4B点信号的星座图
图5C点信号的星座图
图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信号的误码率:
QPSK信号的误比特率:
误码率是误比特率的两倍。
附录:
1、心得体会:
本次实验我收获很多,学会了应用MATLAB来处理问题,加深了对通信原理中部分公式和概念的理解。
实验过程中也遇到了不少问题,在星座图映射上,一开始将00,01,10,11看成一个整体,这样对整体编程存在很大困难,因此后来尝试将其分开看,并成功映射;在计算噪声的过程中,由于通信原理的知识未能牢固掌握,在分析和计算的过程中花了很多时间;实验过程中,学会了使用find函数来代替for循环的功能,从而使程序运行更加快,大大加快了实验的进度。
通过本次MATLAB的实践,应该加强MATLAB在各个学科的应用,学会用MATLAB来处理实际问题。
2、程序:
closeall
clc
clearall
SNR_DB=[0:
1:
12];
sum=1000000;
data=randsrc(sum,2,[01]);
[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);
forEb_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')
girdon
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 实践 QPSK 系统 误码率 星座图 仿真
![提示](https://static.bdocx.com/images/bang_tan.gif)