目录
一、理论基础
QPSK信号可以看作两个载波正交2PSK信号的合成,所以QPSK正调制器可参考通信原理
通过上面对QPSK信号的调制,我门对QPSK有了更加深刻的认识。那么它的解调可以采用与2PSK信号类似的解调方法进行解调。同相支路和正交支路分别采用相干解调方式解调,之后可以得到二者的和,经过抽样判决和串、并交换器,将上下之路得到的并行数据恢复为串行数据。
QPSK解调原理:
四相相移调制是利用载波的四种不同相位差来表征输入的数字信息,是四进制移相键控。QPSK是在M=4时的调相技术,它规定了四种载波相位,分别为45°,135°,225°,315°,调制器输入的数据是二进制数字序列,为了能和四进制的载波相位配合起来,则需要把二进制数据变换为四进制数据,这就是说需要把二进制数字序列中每两个比特分成一组,共有四种组合,即00,01,10,11,其中每一组称为双比特码元。每一个双比特码元是由两位二进制信息比特组成,它们分别代表四进制四个符号中的一个符号。
二、核心程序
................................................................
y3=z2.*y2;
subplot(212)
plot(t1,y3)
axis([0 0.4 -3 3 ]);
title('Q支路分量相干解调信号')
xlabel('时间/s')
ylabel('幅值')
grid on;
%加噪信号通过滤波器
[b,a]=butter(3,0.1);
x3=filter(b,a,x3);
[b,a]=butter(2,0.1);
y3=filter(b,a,y3);
figure(6)
subplot(211)
plot(t1,x3);
axis([0 0.2 -3 3 ]);
title('I支路分量相干解调信号通过滤波器')
xlabel('时间/s')
ylabel('幅值')
grid on;
subplot(212)
plot(t1,y3);
axis([0 0.2 -3 3 ]);
title('Q支路分量相干解调通过滤波器')
xlabel('时间/s')
ylabel('幅值')
grid on;
out1=zeros(1,length(x3)/(2*N_samples));
for i=0:(N/2-1)
if(x3(N_samples*i+N_samples/2)>0)
out1(i+1)=1;
else
out1(i+1)=-1;
end
end
out2=zeros(1,length(y3)/(2*N_samples));
for j=0:(N/2-1)
if(((y3(N_samples/4+N_samples*j)+y3((N_samples*3)/4+N_samples*j))/2)>0)
out2(j+1)=1;
else
out2(j+1)=-1;
end
end
out=zeros(1,length(bitstream));
for k=1:length(bitstream)/2
out(2*(k-1)+1)=out1(k);
out(2*(k-1)+2)=out2(k);
end
figure(7)
subplot(211)
stem(out);
title('QPSK输出信号')
ylabel('幅值')
axis([0 8 -1 1]);
spectrum=(real(fft(z1,10*length(z1)))).^2;
S_spectrum=spectrum(1:length(spectrum)/2);
subplot(212)
F=0:fs/(2*length(S_spectrum)):fs/2-fs/(2*length(S_spectrum));
plot(F,10*log10(S_spectrum))
axis([0 50 0 60]);
title('QPSK信号功率谱密度')
xlabel('频率/Hz')
ylabel('功率')
snr=0:0.5:10;
ber=1-(1-1/2*erfc(sqrt(0.4*snr))).^2;
figure(8)
semilogy(log(snr),ber,'-b*')
title('QPSK信号误码率分析')
xlabel('信噪比')
ylabel('误码率')
up143
三、仿真结论
I路码元为奇数位码元,Q路码元为偶数位码元,将二者合成之后,就得到所谓的正交相移键控(QPSK),也就是四进制绝对调相4PSK。它的调制解调按照后边附录程序进行QPSK是由两路BPSK信一号构成,且两路信号相互正交的,即相位差相差90o,两路BPSK信号相加,即得到QPSK信号。下面所示图示即为I路和Q路的码元情况: