基于OFDM通信系统的PAPR抑制算法matlab仿真,对比OFDMA,LFDMA,IFDMA三种不同调制方式

Posted 51matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于OFDM通信系统的PAPR抑制算法matlab仿真,对比OFDMA,LFDMA,IFDMA三种不同调制方式相关的知识,希望对你有一定的参考价值。

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

2.算法涉及理论知识概要

        正交频分复用(orthogonal frequency-division multiplexing, OFDM) 技术是一种多载波数字调制技术,它具有抗多径能力强,频谱利用率高等优点,与其他技术结合在一起应用到第四代移动通信中。但OFDM 技术的缺点是对定时同步误差和频率偏差非常敏感。定时偏差会造成相位的旋转,而频率偏移会使OFDM 各子载波间正交性遭到破坏,系统性能急剧恶化。因此准确地时频同步对提升OFDM 系统的整体性能起到非常关键的作用。

 

        正交频分复用(OFDM)技术的概念最早出现于20世纪50年代中期。当时由于使用模拟滤波器实现的系统,复杂度较高,因此一直没有真真正正发展起来。到了60年代,人们开始对多载波调制(MCM)技术进行了许多理论上的研究,形成了并行数据传输以及频分复用(FDM)的思想,这些思想使得OFDM技术最先在美国军用高频通信系统得到应用。WeinstemEbert1971年建议使用离散傅立叶逆变换(IDFT)以及离散傅立叶变换(DFT)来实现基带的调制和解调,这样就大大降低了多载波系统的复杂度。SaltzbergOFDM进行了性能分析,并得出以下结论:在OFDM中主要限制就是信道的干扰。为了对抗信道间干扰(ICI)和符号间干扰(ISI)PeledRuiz引入了循环前缀(CPCyclic Prefix)的概念,其中不是使用空的保护空间,而是使用OFDM码元的周期扩展,只要循环前缀大于信道的最大多径时延扩展,就可以有效地模拟实现周期卷积的信道。但是,使用CP的代价是要丧失部分信号能量,这些能量与CP的长度成正比,然而使用CP所获得的好处通常要远大于信号能量损失。正交频分复用(OFDM)是一种特殊的多载波调制方式,它的基本思想是将高速传输的数据流通过串/并变换,变成在若干个正交的窄带子信道上并行传输的低速数据流。OFDM技术将传送的数据信息分散到各个子载波上,从而大大增加了每个符号的持续时间,使得符号周期大于多径时延,因此可以减轻由无线信道的多径时延扩展所产生的时间弥散性对系统所造成的影响。并且还可以在OFDM符号之间插入保护间隔,令保护间隔大于无线信道的最大时延扩展,这样就可以最大限度地消除由于多径而带来的符号间干扰(ISI)。而且一般都采用循环前缀作为保护间隔,从而可以避免由多径而带来的信道间干扰(ICI)。OFDM技术利用信号的时频正交性,允许子信道频谱有部分重叠,使得频谱利用率提高近一倍,因而具有非常高的频谱利用率。

 

     OFDM系统框图如图所示。

 

 

 

PAPR抑制

 

         峰值平均功率比(PAPRPeak to Average Power Ratio),简称峰均比(PAPR)MIMO-OFDM系统能够提供更大的覆盖范围、更好的传输质量、更高的数据速率和频谱效率。然而,由于OFDM 符号是由多个独立经过调制的子载波信号叠加而成的,当各个子载波相位相同或者相近时,叠加信号便会受到相同初始相位信号的调制,从而产生较大的瞬时功率峰值,由此进一步带来较高的峰值平均功率比(PAPRPeak to Average Power Ratio),简称峰均比(PAPR)。由于一般的功率放大器的动态范围都是有限的,所以峰均比较大的MIMO-OFDM信号极易进入功率放大器的非线性区域,导致信号产生非线性失真,造成明显的频谱扩展干扰以及带内信号畸变,导致整个系统性能严重下降。高峰均比已成为MIMO-OFDM 的一个主要技术阻碍。

 

OFDMA

 

        OFDMA,全称为Orthogonal Frequency Division Multiple Access,是指正交频分多址 。

OFDMAOFDM技术的演进,将OFDMFDMA技术结合。在利用OFDM对信道进行副载波化后,在部分子载波上加载传输数据的传输技术。OFDM是一种调制方式;OFDMA是一种多址接入技术,用户通过OFDMA共享频带资源,接入系统。OFDMA又分为子信道(SubchannelOFDMA和跳频OFDMA

 

 

3.MATLAB核心程序

 

clc;
clear;
close all;
warning off;
addpath(genpath(pwd)); 
N   = 256; 
Nd  = 64; 
VV  = [4 6 8 10]; 
snrs = 0:0.5:12; 
dBcs = snrs+(snrs(2)-snrs(1))/2;
Nblk = 5000; 
for i=1:length(VV);
    i
    b = VV(i); 
    M = 2^b;
 
    %OFDMA
    CCDF_OFDMa = PAPR_func(\'OF\',N,b,N,dBcs,Nblk);  
    %LFDMA
    CCDF_LFDMa = PAPR_func(\'LF\',Nd,b,N,dBcs,Nblk); 
    %IFDMA
    CCDF_IFDMa = PAPR_func(\'IF\',Nd,b,N,dBcs,Nblk); 
 
    subplot(2,2,i)
    semilogy(snrs,CCDF_OFDMa,\'b-o\', snrs,CCDF_LFDMa,\'m-<\', snrs,CCDF_IFDMa,\'r-*\')
 
    legend(\'OFDMA\',\'LFDMA\',\'IFDMA\')
    axis([snrs([1 end]) 1e-3 1]); 
    grid on;
    title([num2str(M) \'-QAM\']);
    xlabel([\'PAPR_0[dB]\']);
    ylabel(\'Pr(PAPR>PAPR_0)\'); 
end

 

  

 

现代通信基于matlab OFDM通信系统仿真含Matlab源码 1005期

一、简介

在这里插入图片描述

二、源代码

%本程序用于OFDM基本原理的仿真,数据采用QPSK调制
clear all;
close all;
clc;
SubCarryN=128;%子载波数
fftLen=128;%FFT长度为128
SymbN=6;%一帧中OFDM符号个数
GuardLen=32;%保护时隙的长度
SNR=50;%信噪比取值,dB为单位 

SignalLen=SubCarryN*SymbN*2;%输入比特序列长度=子载波数x每载波符号数x每符号比特数
Signal=round(rand(1,SignalLen));%输出待调制的二进制比特流

for i=1:SubCarryN
    for j=1:SymbN*2
       ParaBitSig(i,j)=Signal(i*j);%串并转换为行数SubCarryN,列数2*SymbN        
    end
end
%进行QPSK数据调制,将数据分为两个通道
for j=1:SymbN
    ich(:,j)=ParaBitSig(:,2*j-1);%同相分量
    qch(:,j)=ParaBitSig(:,2*j);%正交分量
end
kmod=1./sqrt(2);
ich0=ich.*2-1;
qch0=qch.*2-1;
ich1=ich0.*kmod;
qch1=qch0.*kmod;
x=ich1+qch1.*sqrt(-1);%产生复信号

y=ifft(x);%通过傅里叶反变换,将频域数据转换为时域数据
ich2=real(y);%I信道取变换后的实部
qch2=imag(y);%Q信道取变换后的虚部

%插入保护间隔
ich3=[ich2(fftLen-GuardLen+1:fftLen,:);ich2];
qch3=[qch2(fftLen-GuardLen+1:fftLen,:);qch2];

%并串转换
ich4=reshape(ich3,1,(fftLen+GuardLen)*SymbN);
qch4=reshape(qch3,1,(fftLen+GuardLen)*SymbN);
%形成复数发射数据
TrData=ich4+qch4.*sqrt(-1);
%接收机部分
%加入高斯白噪声
ReData=awgn(TrData,SNR,\'measured\');
%接收端
%移去保护时隙
idata=real(ReData);
qdata=imag(ReData);
idata1=reshape(idata,fftLen+GuardLen,SymbN);
qdata1=reshape(qdata,fftLen+GuardLen,SymbN);
idata2=idata1(GuardLen+1:GuardLen+fftLen,:);
qdata2=qdata1(GuardLen+1:GuardLen+fftLen,:);

%FFT
Rex=idata2+qdata2*sqrt(-1);
ry=fft(Rex);
%QPSK解调
ReIChan=real(ry);
ReQChan=imag(ry);
ReIChan1=ReIChan/kmod;
ReQChan1=ReQChan/kmod;
ReIChan0=(ReIChan1+1)/2;
ReQChan0=(ReQChan1+1)/2;
%QPSK逆映射
for j=1:SymbN
    RePara(:,2*j-1)=ReIChan0(:,j);
    RePara(:,2*j)=ReQChan0(:,j);
end
ReSig=reshape(RePara\',1,SubCarryN*SymbN*2);
%符号抽样判决
Resig=ReSig>0.5;
%画图

三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、备注

2014a
完整代码或代写加1564658423

以上是关于基于OFDM通信系统的PAPR抑制算法matlab仿真,对比OFDMA,LFDMA,IFDMA三种不同调制方式的主要内容,如果未能解决你的问题,请参考以下文章

基于参数化最小互熵(Parametric Minimum Cross Entropy,PMCE)算法的PAPR抑制matlab仿真

PAPR抑制算法对IPTS,OPTS,CE,PMCE等常见的PAPR抑制算法进行仿真分析

OFDM通信基于matlab深度学习OFDM系统信号检测含Matlab源码 2023期

现代通信基于matlab OFDM通信系统仿真含Matlab源码 1005期

现代通信基于OFDM通信系统仿真matlab源码

误码率仿真基于matlab多径信道下OFDM通信系统误码率仿真含Matlab源码 2078期