《QPSK调制解调的仿真.docx》由会员分享,可在线阅读,更多相关《QPSK调制解调的仿真.docx(19页珍藏版)》请在优知文库上搜索。
1、(2.2.1)Mt)、Q(t)分别为同相和正交支路,3C为载波频率,那么相干解调后,同相支路相乘可得:Ii(t)=SQPSK(t)cosct=Kt)cosct+Q(t)sinctcosct=1(t)cos2wct+Q(t)sinwet/2=Kt)2-1(t)cos2ct+Q(t)sin2ct(2.2.(2) 支路相乘可得:Qq(t)=SQPSK(t)sinct-1(t)cosct+Q(t)sinctsinct=1(t)sinctcosct+Q(t)sin2ct=I(t)sin2ct2+Q(t)-Q(t)cos2ct(2.2.(3)经过低通滤波器可得:Ii(t)=0.51(也Qq(t)=0.5Q
2、(t)(2.2.(4)原理框图如图2.2所示:放1(t)同信任道门限=0nJ.北京:北京航空航天高校出版社,2003.3.2JohnG-ProakisMasoudSalehiGerhardBaUCh.著刘树棠附录%主文件%题目:基于matlab环境下的QPSK仿真%作者:杨遇春%完成日期:2015-01-14%邮箱:%clear;到一个1*100的矩阵datanrz=data.*2-1;%变成极性码data1=zeros(1,nbdclta-T);%创建一个l*nb/delta_T的零矩阵forq=l:nbdata1(q-1)delta-T+1:q/dclta_T)=datanrz(q);%将
3、极性码变成对应的波形信号end%将基带信号变换成对应波形信号dataO=zeros(1,nbdelta-T);%创建一个l*nb/delta_T的零矩阵forq=l:nbdata(q-1)delta-T+1:q/dclta_T)=data(q);%将极性码变成对应的波形信号end%放射的信号data2=abs(fft(data1);%串并转换,将奇偶位数据分开idata=datanrz(1:ml:(nb-1);%将奇偶位分开,因此间隔ml为2qdata=datanrz(2:ml:nb);%QPSK信号的调制ich=zeros(lfnb/delta_T/2);%创建一个l*nb/delta_T/
4、2的零矩阵,以便后面存放奇偶位数据fori=l:nb/2%瑞利衰落信道和高斯信道%瑞利衰落信道ray_ich=raylrnd(0.8,l,nb/2/delta_T);ray_qch=raylrnd(0.8,l,nb/2/delta_T);Ray_idata=idatal.*ray_ich;Ray_qdata=qdatal.*ray-qch;Ray_s=Ray_idata+Ray_qdata;%通过高斯信道之后的信号%快速傅里叶变换得到频谱%高斯噪声曲线%高斯信道sl=awgn(s,SNR);sil=abs(fft(sl);si1l=sl-s;%Awgn_s=awgn(Ray_s,SNR);%通
5、过高斯信道再通过瑞利哀落信道%elseqdata3(n)=0;endend%为了显示星座图,将信号进行处理idata4=zeros(l,nb2);qdata4=zeros(l,nb2);forn=l:nb/2Awgn_ichsum(n)=sum(idata2(n-l)/delta_T+l:n/dclta_T)*delta_TifAwgn_ichsum(n)=0idata4(n)=l;elseidata4(n)=0;endAwgn_qchsum(n)=sum(qdata2(n-l)/delta_T+l:n/delta_T)*delta_T;ifAwgn_qchsum(n)=0qdata4(n)=
6、l;elseqdata4(n)三0;endend%abs(demodata-data)求接收端和放射端%数据差的肯定值,累计之后就是误码个数Ray_num_BER=sum(abs(Ray_dcmodata-data)%误码率计算%调用了Cm_sm320;和Cm_sm33()函数%声明:函数声明在另外俩个M文件中%作用:cm_sm32()用于瑞利信道误码率的计算%cm_sm33()用于高斯信道误码率的计算%ecohon/off作用在于确定是否显示指令内容%SNRindBl=O:!:6;SNRindB2=0:0.1:6;%瑞利衰落信道fori=1:length(SNRindB1),pb,ps=cm
7、-sm32(SNRindBl(i);%比特误码率smld_bit_ray_err_prb(i)=pb;Smk1.SymbO1.ray_err_Prb(i)=ps;disp(ps,pb);echooff;h=spectrum.welch;%类似于C语言的宏定义,便利以下的调用%输出显示部分%第一部分(志向)figured)subplot(3,2,l);PIot(data),title(基带信号);axis(020000-22);subplot(3,2,2);PSdhdata1,Rs),titleC基带信号功率基密度subplot(3,2,3);PlOt(三),titl*调制信号上axis(050
8、0-33);SUbPlOt(3,2,4);psd(h,s,fs,fs),title(调制信号功率谱密度);subplot(3,2,5);plot(demodata1),title(解调输出);%通过高斯信道再通过瑞利衰落信道figure(3)subplot(2,2,l)plot(Ray.s),title(,调制信号(Ray+Awgn);axis(O500-55);subplot(2,2,2);PSdhRay_s;s/s),titled调制信号功率谱密度(Ray);subplot(2,2,3);fori=l:nb/2plot(idata(i),qdata(i),r+,),title(QPSK信号
9、星座图(Awgn+Ray);holdon;axis(-22-22);plot(Ray_ichsum(i),Ray_qchsum(i),*);holdon;Iegendr理论值(放射端)实际值(接收端);endSUbPIOH2,2,4)SCmiIogy(SNRindB2,theo_err_awgn_prb,r),title(误码率曲线);holdon;semilogy(SNRindB1,smld_bit_awgn_crr_prb,r*);holdon;semilogy(SNRindB2,theo_err_ray_prb);holdon;SemilogyISNRindB1,smld_bit_ray_err_prb,*j;xlabel(EbNo)jylabel(BER);Iegend(理论AWGN;仿真AWGN?理论Rayleigh;仿真Rayleigh);%文件2functionpb,ps=cm_sm32(snr_in_dB)%pb,ps=cm_sm32(snr_in_dB)%CM_SM3findsthepr