【OFDM、OOK、PPM、QAM的BER仿真】绘制不同调制方案的误码率曲线研究(Matlab代码实现)【OFDM、OOK、PPM、QAM的BER仿真】绘制不同调制方案的误码率曲线研究(Matlab代

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

OFDM (Orthogonal Frequency Division Multiplexing)、OOK (On-Off Keying)、PPM (Pulse Position Modulation) 和 QAM (Quadrature Amplitude Modulation) 是常见的数字调制技术,它们在通信系统中被广泛应用。对于这些调制技术的误码率(BER)研究是非常重要的,因为它们可以帮助我们了解在不同信道条件下系统的性能表现。

针对这些调制技术的BER研究需要考虑到多种因素,包括信道噪声、多径干扰、多普勒效应等。针对不同的调制技术,可能需要采用不同的分析方法来进行BER研究。

对于OFDM技术,由于其具有抗多径衰落和频率选择性衰落的能力,因此其BER性能相对较好。可以通过理论分析和仿真来研究在不同信道条件下的BER性能。

对于OOK技术,由于其简单性和成本低廉,因此在一些低速率的无线通信系统中仍然得到广泛应用。对于OOK的BER研究可以通过理论分析和实验来进行。

对于PPM技术,其在光通信系统中得到广泛应用,可以通过理论分析和仿真来研究其在不同信道条件下的BER性能。

对于QAM技术,由于其高效的频谱利用率和抗噪声干扰能力,因此在高速率的通信系统中得到广泛应用。对于QAM的BER研究可以通过理论分析和仿真来进行。

针对这些调制技术的BER研究是非常重要的,可以帮助我们更好地了解这些技术在不同信道条件下的性能表现,从而指导系统设计和优化。

要进行OFDM、OOK、PPM和QAM的误码率(BER)仿真研究,您可以按照以下步骤进行:

1. 确定仿真参数:确定您想要研究的调制方案和相应的参数,比如载波频率、符号速率、调制阶数等。

2. 生成调制信号:使用MATLAB或其他仿真工具生成不同调制方案的调制信号,包括OFDM、OOK、PPM和QAM。

3. 添加信道模型:为每种调制方案添加适当的信道模型,比如加性高斯白噪声信道(AWGN)或者频率选择性信道。

4. 误码率仿真:对每种调制方案进行误码率仿真,通过逐渐增加信噪比(SNR)并记录相应的误码率,从而得到误码率曲线。

5. 绘制误码率曲线:将每种调制方案的误码率仿真结果绘制成曲线图,以便直观地比较它们在不同信噪比下的性能表现。

6. 分析结果:根据误码率曲线的比较,分析每种调制方案在不同信噪比条件下的性能,包括其容忍的信道条件和适用的应用场景。

通过以上步骤,您可以进行OFDM、OOK、PPM和QAM的误码率仿真研究,并绘制它们的误码率曲线,以便更好地了解它们在不同信道条件下的性能特点。

📚2 运行结果

然后命令框按任意键:

然后按任意键:

部分代码:

% M-QAM Electrical
    if contains(mod_t,'qam')
        M = sscanf(mod_t,'%d-qam');
        for i=1:length(EbNo)        % avg signal energy = nbits*Eb, avg noise energy No, effective snr nbits*EbNo for unit power
            nbits = log2(M);
            snr = EbNo(i) + 10*log10(nbits);
            qam_tx = qammod(reshape(bin_tx(1:end-mod(end,nbits)), nbits,[]),M,'InputType','bit','UnitAveragePower',true) ;
            bin_rx = reshape(qamdemod( awgn(qam_tx, snr), M,'OutputType','bit','UnitAveragePower',true), 1, []);
            ber_sim(i) = sum( bin_tx(1:end-mod(end,nbits))~=bin_rx)/N;
        end
        ber((2*j-1)+(0:1),:) = [ber_sim; qam_the(qam_t==M,:)];
        lgnd(1:2,j) =  {strcat(num2str(M),'-QAM Sim BER'),strcat(num2str(M),'-QAM The BER')};
    end
            
    % L-PPM Optical
    if contains(mod_t,'ppm')
        L = sscanf(mod_t,'%d-ppm');
        nbits = log2(L);
        for i=1:length(EbNo)          % avg signal energy = L*nbit*Eb, avg noise energy No/2, effective snr 2*nbits*EbNo for unit power
            ppm_sym_arr = diag(ones(1,L));
            snr = EbNo(i) + 3 + 10*log10(log2(L));
            ppm_pos_tx = bi2de(reshape(bin_tx(1:N-mod(N,nbits)),nbits,[])') + 1;
            ppm_tx = ppm_sym_arr(:, ppm_pos_tx);
            ppm_rx = reshape( awgn(reshape(ppm_tx,1,[]) , snr, 'measured'), L, []);
            [~, ppm_pos_rx] = max(ppm_rx);
            ppm_rx_hard = ppm_rx>=0.5;
            ppm_rx_soft = ppm_sym_arr(:,ppm_pos_rx);
            %slot_err_sim_hard = sum(sum(ppm_rx_hard~=ppm_tx))/numel(ppm_tx)
            %slot_err_sim_soft = sum(sum(ppm_rx_soft~=ppm_tx))/numel(ppm_tx)
            bin_rx =  reshape(de2bi(ppm_pos-1,nbits)',1,[]) ;
            ber_sim(i)  = sum( bin_rx ~= bin_tx(1:N-mod(N,nbits)) )/(numel(bin_rx));
        end
        ber((2*j-1)+(0:1),:) = [ber_sim; bit_err_the(ppm_t==L,:)];
        lgnd(1:2,j) =  {strcat(num2str(L),'-PPM Sim BER'),strcat(num2str(L),'-PPM The BER')};

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]卢海风.基于OFDM系统的QAM软判决算法的研究与仿真[D].武汉理工大学[2023-11-11].DOI:10.7666/d.y1120229.

[2]于润泽.基于误码率的OFDM电磁干扰效应研究[D].吉林大学,2020.

🌈4 Matlab代码实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值