首页 > 代码库 > 通信算法之十一:QPSK/DQPSK/OQPSK/BPSK/DBPSK/16QAM调制解调仿真链路

通信算法之十一:QPSK/DQPSK/OQPSK/BPSK/DBPSK/16QAM调制解调仿真链路

一. QPSK

        正交相移键控 (Quadrature Phase Shift Keying)简称“QPSK”,是一种数字调制方式。它分为绝对相移和相对相移两种。由于绝对相移方式存在相位模糊问题,所以在实际中主要采用相对移相方式DQPSK。目前已经广泛应用于无线通信中,成为现代通信中一种十分重要的调制解调方式。

二. QPSK: 

        EbNo=9.6dB

        EcNo=12.6dB

四. QPSK仿真链路

%****************************************************************
% 内容概述:QPSK调制与QPSK解调 仿真链路
% 仿真链路:
% 创 建 人:Lee gang
% 创建时间:2014年10月20日
% 参考文献:
% 版权声明:不可随意复制、不可随意传播。
%****************************************************************
clc
close all
clear all
%系统参数---------------------------------------
SourceBitLen = 1000;
SNR = (12:0.1:15);%信噪比
BerEbNo = zeros(1,length(SNR));
for nEN=1:length(SNR)
    Err_counter = 0;
    for nframe=1:2000
        %输入源比特序列----------------------------------
        SourceBit  = randint(1,SourceBitLen);
        %QPSK调制---------------------------------------
        out = LGQpskMod(SourceBit);
        %高斯白噪声信道---------------------------------
        outch = ChannelAwgn(out,SNR(nEN));
        %QPSK解调-------------------------------------
        [BerDateOut Soft] = LGQpskDemod(III,QQQ);
        %BER------------------------------------------
        BerDataIn = (SourceBit.‘);
        [errNum,errRate] = biterr(BerDataIn,BerDateOut);
        disp([‘误码率 = ‘,num2str(errRate),‘, 错误比特数 = ‘,num2str(errNum)]);
        Err_counter = Err_counter + errNum;
        Ber = Err_counter/nframe/SourceBitLen;
    end
    BerEbNo(nEN) = Ber;
    fprintf(‘EcNo:%1.3fdB,误码率:%8.6e,\n‘,SNR(nEN),Ber);
end
grid on;
semilogy(SNR,BerEbNo,‘b-v‘);
xlabel(‘Ec/No[dB]‘);
ylabel(‘Bit Error Rate‘);
title(‘QPSK调制,解调性能仿真误码率曲线‘);
%---------------------------------------------
 


五.仿真图形

调制后星座图:


解调前:



六. BPSK

(1)

EbNo = 9.6dB

(2) 仿真链路略

(3) 误码率曲线



七. 

DBPSK误码率曲线



DQPSK误码率曲线



OQPSK误码率曲线



16QAM误码率曲线




【详细资料,及相应MATLAB代码,咨询qq:1279682290】




通信算法之十一:QPSK/DQPSK/OQPSK/BPSK/DBPSK/16QAM调制解调仿真链路