QPSK数字调制系统在AWGN信道下的BER仿真

四相移相键控(QPSK)

QPSK将每两个比特流映射到四个矩形星座点上,本文的映射规则如下

双比特码符号
001+1j
10-1+1j
11-1-1j
011-1j

假设信源0和1比特等概出现,则QPSK系统的误比特率在AWGN信道下的理论误比特率同BPSK,即

P b = 1 2 e r f c ( E b N 0 ) P_{b}=\frac{1}{2}erfc(\sqrt{\frac{E_{b}}{N_{0}}}) Pb=21erfc(N0Eb )

S N R SNR SNR E b N 0 \frac{E_{b}}{N_{0}} N0Eb的换算关系

S N = E b N 0 ∗ R c R m ( 1 + α ) d \frac{S}{N}={\frac{E_{b}}{N_{0}}}*\frac{R_{c}R_{m}}{(1+\alpha)d} NS=N0Eb(1+α)dRcRm

其中, S N \frac{S}{N} NS是信号噪声功率比, E b N 0 \frac{E_{b}}{N_{0}} N0Eb是比特信噪比, R c R_{c} Rc是信道编码速率, R m R_{m} Rm是调制率, α \alpha α是滚降因子, d d d是扩频倍数。

两边取 10 l o g 10 10log_{10} 10log10转化为 d B dB dB形式,即

S N R = ( E b N 0 ) d B + 10 l o g 10 ( R c ) + 10 l o g 10 ( R m ) − 10 l o g 10 ( 1 + α ) − 10 l o g 10 ( d ) SNR=(\frac{E_{b}}{N_{0}})_{dB}+10log_{10}(R_{c})+10log_{10}(R_{m})-10log_{10}(1+\alpha)-10log_{10}(d) SNR=(N0Eb)dB+10log10(Rc)+10log10(Rm)10log10(1+α)10log10(d)

具体推导过程见文献1

Matlab仿真与理论误比特率对比

close all;clc;clear
qpsk_code=[1+1j  1-1j  -1+1j   -1-1j]./sqrt(2);%归一化使每个符号的功率为1
Num=100;
SNR_dB = -10:2:16;
SNR = 10.^(SNR_dB/10);
NoiPower = 1./SNR;
sigma = sqrt(NoiPower/2);
for snr_N = 1:length(SNR)
    ber = zeros(1,Num);
    for tmp = 1:Num
        qpsk_bit = randi([0,1],5e4,1);
        qpsk_bit2 = reshape(qpsk_bit,2,[]);
        data_signal = qpsk_code([2 1]*qpsk_bit2 + 1);%比特映射到符号
        noise = sigma(snr_N).*((randn(1,length(data_signal)))+ 1i*randn(1,length(data_signal)));;
        R_sig=data_signal+noise;
        bit_dec=zeros(length(R_sig),1);
        for loop_d = 1:length(R_sig)
            [~,position] = min(abs(R_sig(loop_d)-qpsk_code()));%MAP判决
            bit_dec(2*loop_d-1) = floor((position-1)/2);
            bit_dec(2*loop_d) = mod((position-1),2);
        end
        err_bit = sum(bit_dec~=qpsk_bit);
        ber(tmp) = err_bit/length(qpsk_bit);
    end
    ber_Mu(snr_N,:) = mean(ber,2).';
end
semilogy(SNR_dB,ber_Mu,'ro-')
hold on;grid on
BER = 1/2.*erfc(sqrt(SNR/2));
semilogy(SNR_dB,BER,'bo-')
legend('QPSK仿真','理论误码率')
xlabel('E_b/N_0(dB)')
ylabel('BER')

仿真结果

在这里插入图片描述

参考文献

张少侃,吕聪敏,甘浩.数字通信系统中Eb/N0与SNR转换方法的研究[J].现代计算机,2019(12):33-36.

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
衰落信道. 此仿真平台框架需支持以下功能: 1. 生成不同类型的数字信号,例如正弦波信号、矩形脉冲信号、调幅信号、调频信号等。 2. 实现基础的数字调制技术,例如二进制相移键控调制(BPSK)、四相移键控调制(QPSK)、八相移键控调制(8PSK)、16相移键控调制(16QAM)等。 3. 实现信道编码技术,例如卷积码、RS码、LDPC码等。 4. 实现误码率测量技术,例如比特误码率(BER)、符号误码率(SER)等。 5. 实现各种类型的信道,例如加性高斯白噪声(AWGN)信道、瑞利衰落信道、纯多径信道等。 6. 提供数据可视化功能,例如波形图、时域图、频谱图、误码率曲线等。 为了实现这些功能,我们可以采取以下的实现方式: 1. 设计信号发生器,包括正弦波信号发生器、矩形脉冲信号发生器、调幅信号发生器、调频信号发生器等。可以使用MATLAB等工具实现。 2. 实现各种数字调制技术,可以参考标准算法,例如Gray映射等。可以使用MATLAB的通信工具箱,或者Python的numpy等库来实现。 3. 设计信道编码模块,可以考虑使用相关的编码工具箱,例如MATLAB的Communications Toolbox或Python的PyLDPC等。 4. 实现误码率测量模块,可以使用仿真统计方法,例如蒙特卡洛方法等。 5. 实现各种类型的信道,例如加性高斯白噪声(AWGN)信道、瑞利衰落信道、纯多径信道等。可以使用MATLAB或Python等工具来生成。 6. 使用MATLAB或Python的可视化工具,例如matplotlib等库,来进行数据可视化。 通过上述实现方式,我们可以得到一个数字调制仿真平台框架,可以支持AWGN信道、瑞利衰落信道等,并提供各种数据可视化功能,包括波形图、时域图、频谱图、误码率曲线等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Girl_We_Got_A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值