第【70】期--noma与ofdma在无线网络中的性能对比分析--MATLAB完整代码

关注我,追更更多通信仿真代码!

文章目录

    • 摘要
    • [1 引言](#1 引言)
    • [2 系统模型与基本原理](#2 系统模型与基本原理)
      • [2.1 下行双用户系统模型](#2.1 下行双用户系统模型)
      • [2.2 NOMA基本原理](#2.2 NOMA基本原理)
        • [2.2.1 叠加编码(发射端)](#2.2.1 叠加编码(发射端))
        • [2.2.2 串行干扰消除(接收端)](#2.2.2 串行干扰消除(接收端))
      • [2.3 OFDMA基本原理](#2.3 OFDMA基本原理)
    • [3 仿真评估](#3 仿真评估)
      • [3.1 仿真参数](#3.1 仿真参数)
      • [3.2 评价指标](#3.2 评价指标)
        • [3.2.1 误码率(BER)](#3.2.1 误码率(BER))
        • [3.2.2 频谱效率(可达速率)](#3.2.2 频谱效率(可达速率))
        • [3.2.3 中断概率](#3.2.3 中断概率)
        • [3.2.4 Jain公平性指数](#3.2.4 Jain公平性指数)
        • [3.2.5 能量效率](#3.2.5 能量效率)
      • [3.3 仿真图分析](#3.3 仿真图分析)
        • [3.3.1 误码率性能](#3.3.1 误码率性能)
        • [3.3.2 速率性能](#3.3.2 速率性能)
        • [3.3.3 中断概率性能](#3.3.3 中断概率性能)
        • [3.3.4 用户公平性分析](#3.3.4 用户公平性分析)
        • [3.3.5 能量效率分析](#3.3.5 能量效率分析)
        • [3.3.6 多用户扩展性分析](#3.3.6 多用户扩展性分析)
      • [3.4 部分代码:](#3.4 部分代码:)
    • [4 总结](#4 总结)

摘要

非正交多址(NOMA)作为5G及未来无线通信网络的关键候选技术,通过功率域复用允许多个用户共享相同的时频资源,有望突破传统正交多址(OMA)的频谱效率瓶颈。本文基于MATLAB仿真平台,在瑞利衰落信道下对下行双用户NOMA系统与正交频分多址(OFDMA)系统进行了全面的性能对比分析。仿真从误码率、和速率、中断概率、用户公平性、能量效率以及多用户扩展性六个维度展开评估。结果表明,NOMA在频谱效率、用户公平性和能量效率方面显著优于OFDMA,但在高信噪比条件下因干扰残留而面临误码率性能的劣势。适合入门noma查阅。

1 引言

  • 第五代移动通信(5G)系统对数据传输速率、连接密度、延迟和频谱效率提出了远超4G的严苛要求。传统正交多址(OMA)技术------如4G/LTE中广泛采用的正交频分多址(OFDMA)------通过将时频资源正交分配给不同用户来避免相互干扰。然而,这种独占式资源分配方式在用户规模持续增长、频谱资源日益紧缺的背景下,逐渐逼近其性能上限。

  • 非正交多址(NOMA)应运而生,为多址接入提供了全新的范式。NOMA的核心思想是在同一时频资源块上叠加多个用户的信号,通过在发射端实施叠加编码(Superposition Coding, SC) 和在接收端实施串行干扰消除(Successive Interference Cancellation, SIC) 来实现多用户分离。这种非正交的资源复用方式有望显著提升系统的频谱效率、用户公平性和大规模连接能力。

  • -本文旨在通过MATLAB仿真,在瑞利衰落信道下对下行双用户NOMA与OFDMA系统进行多维度性能对比评估。

2 系统模型与基本原理

2.1 下行双用户系统模型

2.2 NOMA基本原理

2.2.1 叠加编码(发射端)
2.2.2 串行干扰消除(接收端)

2.3 OFDMA基本原理

3 仿真评估

3.1 仿真参数

参数 符号 取值
SNR扫描范围 SNR dB \text{SNR}_{\text{dB}} SNRdB 0 ~ 30 dB,步长2 dB
BER仿真比特数 N bits N_{\text{bits}} Nbits 2 × 10 6 2 \times 10^6 2×106 bits/用户
信道实现数 N real N_{\text{real}} Nreal 5000
系统带宽 B B B 1 MHz
强用户距离 d 1 d_1 d1 50 m
弱用户距离 d 2 d_2 d2 200 m
路径损耗指数 β \beta β 3
NOMA功率分配系数(强/弱) α 1 / α 2 \alpha_1/\alpha_2 α1/α2 0.25 / 0.75
调制方式 --- BPSK
信道模型 --- 瑞利平坦衰落
电路功耗 P c P_c Pc 0.1 W

3.2 评价指标

3.2.1 误码率(BER)
3.2.2 频谱效率(可达速率)

根据香农容量公式,遍历可达速率(单位:bps/Hz)通过对信道实现取平均获得。

3.2.3 中断概率
3.2.4 Jain公平性指数
3.2.5 能量效率

3.3 仿真图分析

3.3.1 误码率性能

可以看到:

  • OFDMA 因正交资源分配完全消除了用户间干扰,其强、弱用户的 BER 均为最优且随 SNR 增加持续下降;NOMA 强用户通过 SIC 成功剥离弱用户干扰,其 BER 曲线与 OFDMA 强用户接近。然而,NOMA 弱用户将强用户信号视为噪声,承受了恒定的功率域干扰,其 BER 性能退化,这是 NOMA 以弱用户链路可靠性换取系统频谱效率所付出的本质代价。
3.3.2 速率性能

可以看到:

-= NOMA 在所有 SNR 区间均优于 OFDMA,且增益随 SNR 提高而扩大,其根源在于 NOMA 允许两用户同时占用全带宽和全功率,而 OFDMA 将资源均分导致固有复用损失。

3.3.3 中断概率性能

可以看到:

  • NOMA 强用户因 SIC 消除了干扰,中断概率最低;NOMA 弱用户则因强干扰的存在,需要更高的 SNR 才能达到目标速率,中断概率在所有方案中最差;该结果清晰揭示了 NOMA 的系统级权衡:整体频谱效率的提升并非"帕累托改进",而是以弱用户服务质量(QoS)保障难度加大为代价,在实际部署中必须依靠精细的用户配对与功率控制来缓解。
3.3.4 用户公平性分析
  • Jain 公平性指数表明,NOMA 在所有用户数下均显著优于 OFDMA,因为 NOMA 依据路径损耗反向分配功率(弱用户得更多功率),有效抵消了信道差异造成的速率鸿沟;而 OFDMA 对所有用户一视同仁地均分带宽与功率,导致随用户数增加,远端弱用户的速率迅速边缘化,公平性急剧恶化。NOMA 的这种"按需倾斜"的功率域复用特性,使其天然具备向弱势用户倾斜的资源再分配能力,在公平性维度上具有 OMA 无法比拟的结构性优势。
3.3.5 能量效率分析

可以看到:

  • NOMA 的能量效率在整个 SNR 扫描范围内均高于 OFDMA,且两种方案均呈现"先升后降"的趋势(存在最优工作点),。NOMA 的 EE 优势根植于其更高的频谱利用率------在相同发射功耗与电路功耗下,NOMA 能够传输更多的有效数据,这种"用相同能量做更多事"的特性,使 NOMA 在能量受限的物联网与传感器网络中具备极高的应用潜力。
3.3.6 多用户扩展性分析

可以看到:

NOMA 的和速率随用户数 K 增加而持续上升,但增长速率逐渐放缓并趋于饱和;反观 OFDMA,由于带宽和功率被 K 个用户均分,单用户速率随 K 急剧下降,和速率不升反降。NOMA 的非正交复用机制使其不受正交资源格栅的硬性约束,新增用户仅需在固定功率池内重新分配即可共享频谱,因而具备远超 OFDMA 的多用户扩展能力;而 OFDMA 的"均分诅咒"导致用户规模越大、系统总吞吐量反而萎缩。这一特性使 NOMA 成为支撑 5G 海量机器类通信(mMTC)场景的关键使能技术。

3.4 部分代码:

c 复制代码
%% --------- 公共仿真参数 ---------------------------------------------
SNR_dB        = 0:2:30;                 % SNR扫描范围 (dB)
N_bits        = 2e6;                    % 每个用户的比特数,用于BER仿真
N_real        = 5000;                   % 容量仿真所需的信道实现次数
BW            = 1e6;                    % 系统带宽 (Hz)

% NOMA两用户功率分配(弱用户获得更多功率)
alpha_weak    = 0.75;
alpha_strong  = 0.25;

% 基于距离的路径损耗(归一化)
d_strong      = 50;     d_weak   = 200;     pl_exp = 3;
PL_strong     = d_strong^(-pl_exp);
PL_weak       = d_weak^(-pl_exp);
norm_pl       = PL_strong;
PL_strong     = PL_strong / norm_pl;
PL_weak       = PL_weak   / norm_pl;

%% =====================================================================
%  第1部分:BER vs SNR (瑞利衰落信道,BPSK调制)
%  =====================================================================
ber_noma_s = zeros(size(SNR_dB));        % NOMA强用户BER
ber_noma_w = zeros(size(SNR_dB));        % NOMA弱用户BER
ber_ofdma_s = zeros(size(SNR_dB));       % OFDMA强用户BER
ber_ofdma_w = zeros(size(SNR_dB));       % OFDMA弱用户BER

for k = 1:length(SNR_dB)
    snr_lin = 10^(SNR_dB(k)/10);         % 线性SNR
    N0  = 1;                             % 噪声功率谱密度
    Pt  = snr_lin * N0;                  % 发射总功率

    % 生成随机比特和BPSK符号
    b1 = randi([0 1], 1, N_bits);    s1 = 2*b1 - 1;
    b2 = randi([0 1], 1, N_bits);    s2 = 2*b2 - 1;

    % 瑞利衰落信道系数(含路径损耗)
    h1 = (randn(1,N_bits)+1j*randn(1,N_bits))/sqrt(2);
    h2 = (randn(1,N_bits)+1j*randn(1,N_bits))/sqrt(2);
    h1 = h1*sqrt(PL_strong);
    h2 = h2*sqrt(PL_weak);
    % 加性高斯白噪声
    n1 = (randn(1,N_bits)+1j*randn(1,N_bits))*sqrt(N0/2);
    n2 = (randn(1,N_bits)+1j*randn(1,N_bits))*sqrt(N0/2);

    % --- NOMA:叠加编码 -------------------------------------------
    x  = sqrt(alpha_strong*Pt)*s1 + sqrt(alpha_weak*Pt)*s2;
    y1 = h1.*x + n1;     y2 = h2.*x + n2;

    % 弱用户直接解调自己的比特,把强用户信号视为干扰
    r2 = real(y2./h2);
    b2_hat = double(r2 > 0);
    ber_noma_w(k) = mean(b2_hat ~= b2);

    % 强用户执行SIC:先解调弱用户符号,减去后解调自己的符号
    r1   = y1./h1;
    s2_hat = 2*double(real(r1)>0) - 1;   % 估计弱用户符号
    y1_clean = y1 - h1.*sqrt(alpha_weak*Pt).*s2_hat;
    b1_hat = double(real(y1_clean./h1)>0);
    ber_noma_s(k) = mean(b1_hat ~= b1);

    % --- OFDMA:正交子载波,各自分配一半功率 ------------------------
    x1 = sqrt(Pt/2)*s1;     x2 = sqrt(Pt/2)*s2;
    y1o = h1.*x1 + n1;      y2o = h2.*x2 + n2;
    b1o = double(real(y1o./h1)>0);
    b2o = double(real(y2o./h2)>0);
    ber_ofdma_s(k) = mean(b1o ~= b1);
    ber_ofdma_w(k) = mean(b2o ~= b2);
end

% 绘制BER曲线
figure; 
semilogy(SNR_dB,ber_noma_s,'o-','LineWidth',1.5); hold on;
semilogy(SNR_dB,ber_noma_w,'s-','LineWidth',1.5);
semilogy(SNR_dB,ber_ofdma_s,'d--','LineWidth',1.5);
semilogy(SNR_dB,ber_ofdma_w,'^--','LineWidth',1.5);
grid on; xlabel('发射SNR (dB)'); ylabel('误码率 (BER)');
title('瑞利衰落信道下的BER性能');
legend('NOMA强用户 (SIC)','NOMA弱用户','OFDMA强用户','OFDMA弱用户','Location','southwest');
ylim([1e-5 1]);
saveas(gcf,'fig_ber.png');

%% =====================================================================
%  第2部分:和速率 / 每用户容量
%  =====================================================================
sum_noma   = zeros(size(SNR_dB));   sum_ofdma  = zeros(size(SNR_dB));
rs_noma    = zeros(size(SNR_dB));   rw_noma    = zeros(size(SNR_dB));
rs_ofdma   = zeros(size(SNR_dB));   rw_ofdma   = zeros(size(SNR_dB));

for k = 1:length(SNR_dB)
    snr_lin = 10^(SNR_dB(k)/10);

    % 生成信道实现
    h1 = (randn(1,N_real)+1j*randn(1,N_real))/sqrt(2);
    h2 = (randn(1,N_real)+1j*randn(1,N_real))/sqrt(2);
    g1 = (abs(h1).^2)*PL_strong;        % 强用户信道增益
    g2 = (abs(h2).^2)*PL_weak;          % 弱用户信道增益

    % NOMA可达速率(假设弱用户直接解调,强用户执行SIC)
    rs = log2(1 + alpha_strong*snr_lin*g1);
    rw = log2(1 + (alpha_weak*snr_lin*g2)./(alpha_strong*snr_lin*g2 + 1));
    rs_noma(k)  = mean(rs);
    rw_noma(k)  = mean(rw);
    sum_noma(k) = rs_noma(k)+rw_noma(k);

    % OFDMA:各用户占用一半带宽,功率各半
    r1o = 0.5*log2(1 + (snr_lin/2)*g1);
    r2o = 0.5*log2(1 + (snr_lin/2)*g2);
    rs_ofdma(k)  = mean(r1o);
    rw_ofdma(k)  = mean(r2o);
    sum_ofdma(k) = rs_ofdma(k)+rw_ofdma(k);
end

% 绘制和速率
figure;
plot(SNR_dB,sum_noma,'o-','LineWidth',2); hold on;
plot(SNR_dB,sum_ofdma,'s--','LineWidth',2);
grid on; xlabel('发射SNR (dB)'); ylabel('总频谱效率 (bps/Hz)');
title('NOMA vs OFDMA 和速率对比');
legend('NOMA','OFDMA','Location','northwest');
saveas(gcf,'fig_sumrate.png');

% 绘制每用户速率
figure;
plot(SNR_dB,rs_noma,'o-','LineWidth',1.5); hold on;
plot(SNR_dB,rw_noma,'s-','LineWidth',1.5);
plot(SNR_dB,rs_ofdma,'d--','LineWidth',1.5);
plot(SNR_dB,rw_ofdma,'^--','LineWidth',1.5);
grid on; xlabel('发射SNR (dB)'); ylabel('可达速率 (bps/Hz)');
title('每用户速率 vs SNR');
legend('NOMA强用户','NOMA弱用户','OFDMA强用户','OFDMA弱用户','Location','northwest');
saveas(gcf,'fig_per_user_rate.png');

4 总结

仿真代码可见往期文章文末VX公众号(包含往期博客所有代码),所见即所得

本文通过 MATLAB 仿真,在瑞利衰落信道下对下行双用户 NOMA 与 OFDMA 系统进行了多维度性能对比。结果表明,NOMA 凭借功率域复用和串行干扰消除(SIC)技术,在频谱效率、用户公平性和能量效率方面显著优于 OFDMA,尤其适合大规模用户接入场景。然而,NOMA 弱用户因承受强用户干扰,其误码率和中断概率性能较差,揭示了该技术在提升系统容量与保障弱用户服务质量之间的内在权衡。总体而言,NOMA 为 5G 及未来无线网络提供了突破传统正交多址效率瓶颈的有效路径,但其实际部署需结合精细的用户配对与功率控制策略。

相关推荐
爱吃提升18 小时前
MATLAB impulse函数脉冲响应完整实操教程
开发语言·matlab
逆向编程21 小时前
MATLAB rlocus函数根轨迹完整实操教程
开发语言·matlab
@陈小鱼1 天前
MATLAB+Python:基于小样本卷积神经网络的 PPG 血压预测
人工智能·python·机器学习·matlab·脉搏波·血压·一维卷积神经网络
2zcode2 天前
项目文档:基于MATLAB图像处理的乳腺癌辅助检测系统设计与实现
图像处理·人工智能·matlab
逆向编程2 天前
如何使用MATLAB的bode函数进行伯德图分析?
开发语言·matlab
2zcode2 天前
基于MATLAB语音信号分析与机器学习的帕金森病智能检测系统
人工智能·机器学习·matlab
daad7772 天前
记录vscode连接matlab启动环境搭建
java·vscode·matlab
2zcode3 天前
基于MATLAB的医学图像增强与多维特征分析系统设计与实现
开发语言·计算机视觉·matlab
2zcode3 天前
基于MATLAB形态学与高斯滤波的医学图像自适应增强算法研究
算法·计算机视觉·matlab