1、通信原理现代通信技术QPSK仿真报告通信原理实验课程课程实验报告一、实验要求QPSK调制仿真与分析使用matlab仿真实现QPSK相干调制与解调,要求:1)调制载波中心频率为5MHz,二进制数据比特率为2Mbps,基带信号波形采用滚降系数为0.4的平方根升余弦滤波器,画出4个载波周期I、Q调制分量的时域波形和对应的二进制码。2)画出基带|、Q信号和已调信号的频谱。3)通过AWGN信道,Eb/N0在0到20dB之间变化,画出误比特率曲线,并和理论误比特率进行对比;4)画出Eb/N0分别为5dB和10dB时的星座图;二、实验环境软件: MATLAB R2018a三、实验原理1、四进制相移键控(QP
2、SK)的载波信号有四种可能的离散相位状态,每个载波相位携带两个二进制码元。双bite码元与载波相位的常见对应关系有AB两种方式。双比特码元载波相位A方式B方式00-3/410-/2-/4110/401/23/4B方式的另一种表示:B方式的QPSK信号的正交调制原理如下图。公式有:式中,同相分量,2、误比特率与信噪比信噪比SNR= 10lg(Ps/Pn),其中Ps和Pn分别代表信号和噪声的有效功率Eb/N0为比特信噪比。显然,信噪比越大,信号的误码率越小。3、星座图数字通信系统中,每个符号间隔输出一个符号,对应一个信号波形。M进制数字通信系统在发送端需要设计出M种不同的信号。如前所述,信号s;(
3、)可以通过矢量空间分析器得到矢量,这样M个能量信号波形就可映射为N维空间中的M个点。将所对应的N维空间中的M个点的集合称为M进制信号的星座图,或称为信号空间图,或称为信号矢量图。相对于前面介绍的一般信号波形,数字信号波形一般限定在一个符号间隔内,二进制数字信号限定在01T,多进制数字信号限定时间在01T。四、实验设计与运行结果首先声明:因为题目要求的频率过高,电脑配置不足,每次调制用时过长,先将所有的数据等比例缩小,如调制载波中心频率5MHz5Hz,二进制数据比特率2Mbps2bps。1、调制使用调相法产生B方式的QPSK信号。1基带信号生成:随机数判决+比特率为节奏的for函数。2穿并行转换
4、与极性变换:条件判决即可。如:生成a2n+1if stt(2*n-1)=1 st1(n)=1; else st1(n)=-1; end运行结果如下图,3与载波信号调制合成:使双极性码与相互正交的载波相乘,同相支路和正交之路分别完成2PSK,最后叠加,得到B方式的QPSK信号。实验即用代码复述上述过程,得到结果如下图:2、加噪声使用matlab函数awgn(x, SNR) 。其意义为:在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。结果在上一张图已经呈现,再次给出:3、求频谱Matlab中求函数频谱的过程是:对函数做傅里叶变换后,进行快速傅
5、里叶变换计算。程序中使用的函数是:function f,sf= T2F(t,st)得到如下的结果图:4、误码率曲线的得到与对比5、星座图五、程序源代码i=10; %基带信号码元数*106j=5000;j1=2000;t=linspace(0,5,j);%0-5之间产生5000个点行矢量,即将0,5分成5000份t1=linspace(0,2,j1)f=5; %载波频率*106fm=i/5; %基带信号频率,码元数是10*106,而时域长度是5,也就是一个单位2*106个码元a=round(rand(1,i); %产生随机序列 %产生基带信号stt=t;for n=1:10 if a(n)1 f
6、or m=j/i*(n-1)+1:j/i*n stt(m)=0; end else for m=j/i*(n-1)+1:j/i*n stt(m)=1; end endend figure(1);subplot(311);plot(t,stt);title(基带信号stt);axis(0,5,-1,2); %并行信号st1=t;for n=1:j/2 if stt(2*n-1)=1 st1(n)=1; else st1(n)=-1; endendsubplot(312);s1 = st1(1:2000);plot(t1,s1);title(基带信号码st1);axis(0,2,-1,2);st2
7、=t;for n=1:j/2 if stt(2*n)=1 st2(n)=1; else st2(n)=-1; endendsubplot(313);s2 = st2(1:2000);plot(t1,s2);title(基带信号码st2);axis(0,2,-1,2);%载波信号s1=cos(2*pi*f*t);s2=-sin(2*pi*f*t);%调制F1=st1.*s1;%加入载波1 同相IF2=st1.*s2;%加入载波2 正交Qfigure(2);subplot(411);plot(t,F1);title(I:F1=s1*st1);axis(0,2,-1,2);subplot(412);
8、plot(t,F2);title(Q:F2=s2*st2);axis(0,2,-1,2);e_fsk=F1+F2;subplot(413);plot(t,e_fsk);title(QPSK信号); axis(0,2,-1,2);%加噪fsk = awgn(e_fsk,20) %在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。subplot(414);plot(t,fsk);title(加噪声后信号)axis(0,2,-1,2);f,sf1 = T2F(t,st1);f,sf2 = T2F(t,st2);f,sf3 = T2F(t,fsk)
9、;%傅里叶变换figure(3);subplot(311);plot(t,sf1);axis(2.3,2.7,-1,10);title(s1);subplot(312);plot(t,sf2);axis(2.3,2.7,-1,10);title(s2);subplot(313);plot(t,sf3);axis(2.3,2.7,-1,10);title(加噪后的信号);% 误码率计算Maxbit = 1000;Eb = 1;for i=1:20 % 信噪比从1到20dB for cnt=1:10 %对于每个信噪比,进行10次实验,最后求平均 SNR = 10 ( 0.1 * i); %信噪比
10、N0 = Eb/SNR; Sigma = sqrt(N0/2); b = rand(1,Maxbit); %随机数据 b_bin = round(b); % 0 1 比特流 b2 = sign(b_bin - 0.5); %调制后的 -1 和+1 比特流 Noise = Sigma*randn(1,Maxbit); % snt 调制信号与噪声叠加后的信号 fsk1=fsk(1:1000); Snt =fsk1 + Noise; % 解调过程,抽样判决,0,判为+1 res(Snt=0) = 1; % Snt .* b2,解调正确,相乘结果为+1,若发生误码,结果为-1 St = res .*f
11、sk1; % err为误码的个数 err(cnt) = length(find(St0); end % Pb计算信噪比为 i dB 时的误比特率 Pb(i) = (mean(err)/Maxbit)*100;endfigure(4);subplot(211);semilogy(Pb); xlabel(信噪比(dB);ylabel(实际误码率Pe)%同上计算理论Maxbit = 1000;Eb = 1;for i=1:15 for cnt=1:10 b = rand(1,Maxbit); b_bin = round(b); b2 = sign(b_bin - 0.5); SNR = 10 ( 0
12、.1 * i); N0 = Eb/SNR; Sigma = sqrt(N0/2); Noise = Sigma*randn(1,Maxbit); Snt = b2 + Noise; res(Snt=0) = 1 St = res .* b2; err(cnt) = length(find(St0); end Pb(i) = (mean(err)/Maxbit)*100;endfigure(4);subplot(212);semilogy(Pb); xlabel(信噪比(dB);ylabel(理论误码率Pe)axis(0,10,0.1,10);clear all;msg = randi(0,3,
13、1,5000); % 4进制,20个符号figure(1);stem(msg);msg1 = pskmod(msg,4,pi/4); % 4psk调制 初始相位为 pi/4msg2 = awgn(msg1,5)scatterplot(msg2);title(SNR=5dB);axis(-1.2,1.2,-1.2,1.2);% 画星座图xlabel(f1)ylabel(f2)hold on;rectangle(Position,-1, -1, 2, 2,Curvature,1, 1);axis equal; % 画圆clear all;msg = randi(0,3,1,5000); % 4进制
14、,20个符号figure(2);stem(msg);msg1 = pskmod(msg,4,pi/4); % 4psk调制 初始相位为 pi/4msg2 = awgn(msg1,10)scatterplot(msg2); title(SNR=10dB);axis(-1.2,1.2,-1.2,1.2);% 画星座图xlabel(f1)ylabel(f2)hold on;rectangle(Position,-1, -1, 2, 2,Curvature,1, 1);axis equal; % 画圆%用于频谱的函数function f,sf= T2F(t,st)%利用FFT计算信号的频谱并与信号的真
15、实频谱的抽样比较。%脚本文件T2F.m定义了函数T2F,计算信号的傅立叶变换。%Input is the time and the signal vectors,the length of time must greater%than 2%Output is the frequency and the signal spectrumdt = t(2)-t(1);T=t(end);df = 1/T;N = length(st);f=-N/2*df : df : N/2*df-df;sf = fft(st);sf = T/N*fftshift(sf);end六、总结对于这次仿真实践,我最大的感想就
16、是“太难了!”。之前我接触的matlab只是较为简单的编程和simulink的应用,对QPSK调制这种长而复杂的编程不但心存恐惧,还完全没有头绪。一开始我希望求助于书本已经有的模型,但发现资料少有后,决定自己仔细研究。QPSK(4psk)等是数字信号常用的调制信号,它的原理模型并不复杂,但是由于matlab语言的兼容性强大,它的语言类型太复杂,很多函数使用时我对参数非常茫然,好在经过研究,最后完成了设计和这份报告。总结一下,在设计QPSK调制解调系统时,需要对参数的正确了解、对采样概念的理解。在对一个软件不理解的时候,原版的说明书是非常好的工具,比如matlab有专门的网站放置说明文件和社区分享使用者的程序。通过这次设计实验,我更加深入了解了QPSK等调制方法的可行性,也熟悉了matlab诸多通信工具函数的使用,还巩固了通信原理中基础参数的知识。七、参考文献1张祖凡,等 通信原理. 北京:电子工业出版社,20182樊昌信,等 通信原理 第七版. 北京:国防工业出版社,2012
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1