1、完整版QPSK调制与解调在MATLAB平台上的实现QPSK调制与解调在 MATLAB 平台上的实现李悦QPSK即四进制移向键控(Quaternary Phase Shift Keyi ng,它利用载波的四 种不同相位来表示数字信息,由于每一种载波相位代表两个比特信息, 因此每个 四进制码元可以用两个二进制码元的组合来表示。 两个二进制码元中的前一个码 元用a表示,后一个码元用 b表示。QPSK信号可以看作两个载波正交 2PSK信号的合成,下图表示QPSK正交 调制器。由QPSK信号的调制可知,对它的解调可以采用与 2PSK信号类似的解调方 法进行解调。解调原理图如下所示,同相支路和正交支路分别
2、采用相干解调方式 解调,得到l(t)和Q(t),经过抽样判决和并/串交换器,将上下支路得到的并行数据恢复成串行数据载波%调相法clear all close all t=-1:0.01:7-0.01;tt=le ngth(t);x1=o nes(1,800);for i=1:ttif (t(i)=-1 & t(i)=5& t(i)=0 & t1(i)=4& t1(i)0 data_recover_a(i:i+19)=1; bit_recover=bit_recover 1;elsedata_recover_a(i:i+19)=-1; bit_recover=bit_recover -1;end
3、enderror=0;dd = -2*bit_i n+1;ddd=dd;ddd1=repmat(ddd,20,1);for i=1:2e4ddd2(i)=ddd1(i);endfor i=1:1e3if bit_recover(i)=ddd(i) error=error+1;endend p=error/1000;解调后序列);figure(1) subplot(2,1,1);plot(t2,ddd2);axis(0 100 -2 2);title( 原序列); subplot(2,1,2);plot(t2,data_recover_a);axis(0 100 -2 2);title(效果图:
4、%设定T=1,不加噪声clear allclose all%调制bit_in = randin t(1e3, 1, 0 1);bit=bit_i n(1:2:1e3);bit_Q = bit_i n(2:2:1e3);data_I = -2*bit_l+1;data_Q = -2*bit_Q+1;data_I1=repmat(data_I,20,1);data_Q 1=repmat(data_Q,20,1);for i=1:1e4data_I2(i)=data_I1(i);data_Q2(i)=data_Q1(i);en d;t=0:0.1:1e3-0.1;f=0:0.1:1;xrc=0.5+
5、0.5*cos(pi*f);data_I2_rc=c on v(data_l2,xrc)/5.5;data_Q2_rc=co nv(data_Q2,xrc)/5.5;f1=1;t1=0:0.1:1e3+0.9;I_rc=data_I2_rc.*cos(2*pi*f1*t1);Q_rc=data_Q2_rc.*si n(2*pi*f1*t1);QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc);%解调I_demo=QPSK_rc.*cos(2*pi*f1*t1);Q_demo=QPSK_rc.*si n(2*pi*f1*t1);I_recover=c on v(I
6、_demo,xrc);Q_recover=c on v(Q_demo,xrc);I=I_recover(11:10010);Q=Q_recover(11:10010);t2=0:0.05:1e3-0.05;t3=0:0.1:1e3-0.1;data_recover=;for i=1:20:10000data_recover=data_recover l(i:1:i+19) Q(i:1:i+19); en d;ddd = -2*bit_i n+1;ddd 1= repmat(ddd,10,1);for i=1:1e4ddd2(i)=ddd1(i);endfigure(1)subplot(4,1,
7、1);plot(t3,l);axis(0 20 -6 6); subplot(4,1,2);plot(t3,Q);axis(0 20 -6 6); subplot(4,1,3);plot(t2,data_recover);axis(0 20 -6 6);subplot(4,1,4);plot(t,ddd2);axis(0 20 -6 6);效果图:20% QPSK误码率分析SNRi ndB仁 0:2:10;SNRi ndB2=0:0.1:10;for i=1:le ngth(SNRi ndB1) pb,ps=cm_sm32(SNR in dB1(i); smld_bit_err_prb(i)=
8、pb; smld_symbol_err_prb(i)=ps;en d;for i=1:le ngth(SNR in dB2)SNR=exp(SNRi ndB2(i)*log(10)/10); theo_err_prb(i)=Qfu nct(sqrt(2*SNR);en d;title(QPSK误码率分析);semilogy(SNRi ndB1,smld_bit_err_prb,*);axis(0 10 10e-8 1);hold on;% semilogy(SNRi ndB1,smld_symbol_err_prb,o); semilogy(SNR in dB2,theo_err_prb);l
9、egend(仿真比特误码率,理论比特误码率); hold off;fun ctio ny=Qfu nct(x) y=(1/2)*erfc(x/sqrt(2);fun ctio n pb,ps=cm_sm32(SNRi ndB) N=10000;E=1;SNR=10A(SNRi ndB/10);sgma=sqrt(E/SNR)/2;s00=1 0;s0仁0 1;si 仁-1 0;s10=0 -1;for i=1:Ntemp=ra nd;if (temp0.25)dsource1(i)=0;dsource2(i)=0;elseif (temp0.5) dsource1(i)=0; dsource2
10、(i)=1;elseif (temp0.75)dsource1(i)=1;dsource2(i)=0;elsedsource1(i)=1;dsource2(i)=1;en d;en d;numo fsymbolerror=0;num ofbiterror=0;for i=1:Nn=sgma*ra ndn( size(s00);if(dsource1(i)=0)&(dsource2(i)=0) r=s00+n;elseif(dsource1(i)=0)&(dsource2(i)=1) r=s01+ n;elseif(dsource1(i)=1)&(dsource2(i)=0) r=s10+n;e
11、lser=s11+ n;en d;c00=dot(r,s00);c0仁 dot(r,s01);c10=dot(r,s10);c11=dot(r,s11);c_max=max(c00 c01 c10 c11);if (c00=c_max)decis 1=0 ;decis2=0;elseif(c01=c_max)decis 1=0 ;decis2=1;elseif(c10=c_max)decis 1= 1;decis2=0;elsedecis1=1;decis2=1;en d;symbolerror=0; if(decis1=dsource1(i) num ofbiterror= num ofbiterror+1; symbolerror=1;en d;if(decis2=dsource2(i)num ofbiterror= num ofbiterror+1; symbolerror=1;en d;if(symbolerror=1)numo fsymbolerror =numo fsymbolerror+1; en d;en d;ps=numo fsymbolerror/N;pb=num ofbiterror/(2*N);效果图:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1