索引OFDM调制解调系统的matlab性能仿真

简介: 本文对m索引OFDM调制解调系统性能进行了仿真分析,增加了仿真图并配有语音讲解视频,使用Matlab2022a完成仿真,代码无水印。研究了OFDM-IM技术,通过激活不同子载波组合传输额外信息,提高频谱效率和降低PAPR。提出了OFDM联合子块索引调制技术(OFDM-JS-IM)和OFDM全索引方法(OFDM-AIM),并通过遗传算法优化子块查找表,有效提升系统性能。提供了核心MATLAB程序示例。

1.算法仿真效果
本文所进行的仿真工作是《m索引OFDM调制解调系统的性能仿真分析》基础上做了完善。

首先仿真图的增减,可以对比两篇文章的仿真图,多出来的仿真图就是增加的内容。

另外对仿真过程的视频操作过程,配上了语音介绍(老版本操作视频不带语音)。

matlab2022a仿真结果如下(完整代码运行后无水印):

1.jpeg
2.jpeg
3.jpeg
4.jpeg
5.jpeg
6.jpeg
7.jpeg
8.jpeg
9.jpeg

仿真操作步骤可参考程序配套的操作视频。

2.算法涉及理论知识概要
正交频分复用(Orthogonal Frequency Division Multiplexing, OFDM)是一种广泛应用于无线通信的技术,它通过将高速串行数据流分解为多个低速并行子载波来提高系统的抗多径干扰能力。然而,传统的OFDM技术在某些情况下仍存在一些不足,例如峰均功率比(PAPR)高、频谱利用率受限等问题。为了克服这些缺点,索引OFDM-IM(Index Modulation for OFDM, OFDM-IM)被提出,它结合了传统OFDM和空间调制的思想,进一步提高了系统的性能。

   OFDM-IM的核心思想是通过激活不同的子载波组合来传输额外的信息,从而提高频谱效率和降低PAPR。

基于索引调制的OFDM(OFDM-IM,OFDM with Index Modulation)技术被提出,在频率选择性衰落信道上提升了系统的分集增益,特别是在较低频谱效率场景下能够有效降低系统的误比特率。在OFDM-IM方法中,特殊的索引信息传输方式以及索引结构的设计对分集增益的提高,引发了广泛的关注。如何通过索引结构的设计,取得比OFDM更低的误比特率以及更高的频谱效率成为了索引调制OFDM研究方向上的热点。

    主要研究工作内容如下:

(1)针对OFDM中索引调制技术存在频谱效率较低的问题,本文提出了OFDM联合子块索引调制技术(OFDM-JS-IM,OFDM with Joint Subblock Index Modulation),将索引映射中被丢弃部分索引组合,在联合子块空间中进行了重复利用。仿真验证及理论分析表明,OFDM-JS-IM方法能够以轻微的误比特率性能损失为代价,有效提高OFDM-IM的频谱效率。

(2)针对索引结构与分集性能的关系进行了分析。由于OFDM-IM的特殊结构,索引比特的分集阶数高于一般的符号比特,使得OFDM-IM性能优于OFDM。然而,OFDM中的索引调制结构也仅仅能将部分比特的分集阶数提高至2。本文提出了OFDM全索引方法(OFDM with All Index Modulation,OFDM-AIM),不再使用低分集阶数的符号比特传输信息,而将所有信息以索引比特的方式传输,并提出了提高子块分集阶数的搜索算法,能够构建具有高分集阶数的合法子块集合。仿真结果表明,该方法能够有效提升系统的分集增益。

(3)基于上述OFDM-AIM技术,本文还提出了可变子块长度的子块设计辅助的OFDM-AIM。由于OFDM-AIM中子块长度决定了系统的最高分集阶数,因此可以适当提高子块长度以寻找更多较高分集阶数的子块,以提高分集增益。根据系统的频谱效率和计算复杂度要求,该方法能通过变化子块长度在实际应用中达到更好的性能权衡。

(4)分集阶数只是评价发射端信号的特性,而系统的误比特率性能不仅与分集阶数有关,还与不同子块符号间的欧式距离以及信道特性有关。针对该问题,本文将启发式算法中的遗传算法用于搜索具有最低误比特率的子块查找表。

   但是,在高速场景下,子信道间的正交性会受到多普勒频移的破坏而引起载波间干扰,并且ofdm多个子信道信号叠加也会导致较高的峰均比,这些缺点时ofdm不适用于高速场景。而基于索引调制的正交频分复用(ofdm-im)技术将空间调制技术与传统的正交频分复用(ofdm)技术相结合,其思想是不仅激活子载波可以传输调制信号,而且可以传输其静默子载波的位置信息,从而弥补静默子载波不发送数据造成的损失。静默子载波的存在使得多普勒频移所带来的子载波间的干扰降低,使得系统对频偏不敏感。同时,大量静默子载波的存在又降低了整个输出符号的峰均比,这些优点使得索引调制技术成为5g研究热点之一。

   OFDM-IM技术和传统的OFDM技术不同之处在于其在调制阶段,加入了索引调制步骤,根据索引调制比特信息,通过映射关系表,选择子载波进行激活并发送相应的比特数据,而未被选择的子载波则处于静默状态。这些索引调制比特数据同时补偿未被激活的静默子载波产生的频谱利用率低的问题。而在OFDM-IM接收部分,则通过子载波块的检测模块来恢复出索引信息和数据符号信息。

10.png
11.png

   如上所示,OFDM-IM调制系统主要有两种调制方式,一种是相邻分块的调制方式(如图1所示),一种是交织调制方式(如图2所示)。从图1和图2可知,基于相邻分块的调制方式,其主要通过子载波以相邻的方式进行分块划分,而基于交织分块的调制方式,其通过在频域上加入一个交织深度为G的等间隔交织器来实现分块划分。       

  OFDM-IM索引调制系统相对于传统的OFDM系统而言,其最要区别在于被激活的子载波数量被降低,因此其对子载波数量相对于OFDM系统而言较为稀疏,那么其对频偏更加的不敏感。另外一方面,通过OFDM-IM索引调制技术,则可以在传统OFDM调制系统的基础上加入一个调制域,补偿未被激活的子载波带来的频谱利用率方面的损失,从而起到提高频谱利用率,提升系统误码率性能的需求。

3.MATLAB核心程序

Nsub         = 2048;  
%子块
G            = 16;  %2个子载波作为一个块
Phase_Set    = [1 -1];
Nlength      = 50000;%数据长度
PAPR_SLM     = zeros(3,Nlength);
BPSK         =  1;%BPSK调制
X            = zeros(1,Nsub);
for ij=1:Nlength%开始循环仿真
    ij
    %产生数据bit信息
    bitsource    = rand(1,Nsub)>=0.5;
    %产生索引比特
    index        = rand(1,Nsub)>=0.5;

    %调制,在调制过程中加入单个索引的调制方式
    X0           = modulation(bitsource,BPSK);    
    X            = reshape(X0,[G,Nsub/G]);
    Xindex       = reshape(index,[G,Nsub/G]);

    X2           = zeros(G,2*Nsub/G);
    for i=1:G
        %选择前面4个作为索引比特
        IMtable  = Xindex(i,:);
        S        = X(i,:);
        for j = 1:length(S)
            if IMtable(j) == 1
               X2(i,2*j-1) = S(j);
               X2(i,2*j)   = 0;
            else
               X2(i,2*j-1) = 0;
               X2(i,2*j)   = S(j);
            end
        end
    end

    X3           = reshape(X2',[1,2*Nsub]);
    %IFFT
    x            = ifft(X3,[],2);       
    %计算PAPR
    Signal_Power = abs(x.^2);

    %PTS
    K = 128;                                                                    % SIZE OF FFT 
    V = 4;       
    Choose_Len=16;
    A = zeros(V,K);
    Choose = [1 1 1 1; 1 1 1 2; 1 1 2 1; 1 2 1 1; 2 1 1 1;
          1 1 2 2; 1 2 1 2; 1 2 2 1; 2 2 1 1; 2 1 2 1; 2 1 1 2;
          2 2 2 1; 2 2 1 2; 2 1 2 2; 1 2 2 2; 2 2 2 2];
    for v=1:V
        A(v,v:V:K) = X(v:V:K);
    end
    a = ifft(A,[],2);                                                       %行变化,默认为列变化

    min_value = 10;
    for n=1:Choose_Len
        temp_phase = Phase_Set(Choose(n,:)).';
        temp_max = max(abs(sum(a.*repmat(temp_phase,1,K))));
        if temp_max<min_value
            min_value = temp_max;
            Best_n = n;
        end
    end
    aa = sum(a.*repmat(Phase_Set(Choose(Best_n,:)).',1,K));

    Signal_Power = abs(aa.^2);
    Peak_Power   = max(Signal_Power,[],2);
    Mean_Power   = mean(Signal_Power,2);
    PAPR_Orignal(ij) = 10*log10(Peak_Power./Mean_Power);

end
[cdf1, PAPR1] = ecdf(PAPR_Orignal);
%显示PAPR
figure;
semilogy(PAPR1,1-cdf1)
xlabel('PAPR0 [dB]');
ylabel('CCDF (Pr[PAPR>PAPR0])');
grid on
save R1imPTS.mat PAPR1 cdf1
0sj_016m
相关文章
|
27天前
|
传感器 算法 vr&ar
六自由度Stewart控制系统matlab仿真,带GUI界面
六自由度Stewart平台控制系统是一种高精度、高稳定性的运动模拟装置,广泛应用于飞行模拟、汽车驾驶模拟、虚拟现实等领域。该系统通过六个独立的线性致动器连接固定基座与移动平台,实现对负载在三维空间内的六个自由度(三维平移X、Y、Z和三维旋转-roll、pitch、yaw)的精确控制。系统使用MATLAB2022a进行仿真和控制算法开发,核心程序包括滑块回调函数和创建函数,用于实时调整平台的位置和姿态。
|
2月前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
1天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
|
21天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
22天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
20天前
|
算法
基于HASM模型的高精度建模matlab仿真
本课题使用HASM进行高精度建模,介绍HASM模型及其简化实现方法。HASM模型基于层次化与自适应统计思想,通过多层结构捕捉不同尺度特征,自适应调整参数,适用于大规模、高维度数据的分析与预测。MATLAB2022A版本运行测试,展示运行结果。
|
23天前
|
存储 算法 决策智能
基于免疫算法的TSP问题求解matlab仿真
旅行商问题(TSP)是一个经典的组合优化问题,目标是寻找经过每个城市恰好一次并返回起点的最短回路。本文介绍了一种基于免疫算法(IA)的解决方案,该算法模拟生物免疫系统的运作机制,通过克隆选择、变异和免疫记忆等步骤,有效解决了TSP问题。程序使用MATLAB 2022a版本运行,展示了良好的优化效果。
|
21天前
|
运维 算法
基于Lipschitz李式指数的随机信号特征识别和故障检测matlab仿真
本程序基于Lipschitz李式指数进行随机信号特征识别和故障检测。使用MATLAB2013B版本运行,核心功能包括计算Lipschitz指数、绘制指数曲线、检测故障信号并标记异常区域。Lipschitz指数能够反映信号的局部动态行为,适用于机械振动分析等领域的故障诊断。
|
22天前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。
|
22天前
|
机器学习/深度学习 算法 5G
基于MIMO系统的SDR-AltMin混合预编码算法matlab性能仿真
基于MIMO系统的SDR-AltMin混合预编码算法通过结合半定松弛和交替最小化技术,优化大规模MIMO系统的预编码矩阵,提高信号质量。Matlab 2022a仿真结果显示,该算法能有效提升系统性能并降低计算复杂度。核心程序包括预编码和接收矩阵的设计,以及不同信噪比下的性能评估。
41 3

热门文章

最新文章