基于OFDM通信系统的PAPR抑制算法matlab仿真,对比IPTS,OPTS,CEPTS三种算法

简介: 基于OFDM通信系统的PAPR抑制算法matlab仿真,对比IPTS,OPTS,CEPTS三种算法

1.算法运行效果图预览
1f262b9823d60a6e82ebc8ad4bcd1de5_82780907_202401031331140643492818_Expires=1704260474&Signature=xWQX6aivOKz6r3CjS41Ni%2FJrwaw%3D&domain=8.png

2.算法运行软件版本
matlab2022a

3.算法理论概述
基于OFDM通信系统的PAPR抑制算法是降低OFDM信号峰均比(Peak-to-Average Power Ratio,PAPR)的技术,以提高通信系统的性能和稳定性。其中,IPTS(选择性映射迭代削峰)、OPTS(优化的PTS)和CEPTS(压缩扩展变换选择性映射)是三种常见的PAPR抑制算法。下面将详细介绍这三种算法的原理和数学公式。

3.1、IPTS算法
IPTS算法是一种基于选择性映射迭代削峰的方法,通过迭代削峰和选择性映射,降低OFDM信号的PAPR。具体步骤如下:

对OFDM信号进行IFFT变换,得到时域信号。
对时域信号进行削峰处理,将峰值超过一定阈值的信号进行削减。
对削减后的信号进行IFFT变换,得到新的频域信号。
通过选择性映射,选择PAPR最低的频域信号作为输出信号。
3.2、OPTS算法
OPTS算法是一种基于优化的PTS方法,通过将OFDM信号分成多个子块,对每个子块进行相位旋转和幅度调整,以降低PAPR。具体步骤如下:

将OFDM信号分成多个子块。
对每个子块进行相位旋转和幅度调整,使得子块的PAPR最低。
将调整后的子块重新组合成完整的OFDM信号。
3.3、CEPTS算法
CEPTS算法是一种基于压缩扩展变换选择性映射的方法,通过对OFDM信号进行压缩扩展变换和选择性映射,降低PAPR。具体步骤如下:

对OFDM信号进行压缩扩展变换,得到多个变换后的信号。
对每个变换后的信号进行PAPR计算,选择PAPR最低的信号作为输出信号。
将选择的信号进行逆变换,得到最终的OFDM信号。
综上所述,IPTS、OPTS和CEPTS算法都是通过不同的方式对OFDM信号进行处理,以降低PAPR,提高通信系统的性能和稳定性。具体选择哪种算法需要根据实际应用场景和性能需求来决定。

4.部分核心程序
```for k=1:Nframes
if mod(k,10) == 0
k/10
end
%产生数据源
QPSK_Ind = floor(length(Map_qpsk)rand(1,Nfft)) + 1;
%调制,这里为了研究PAPR性能,所以不加入编码模块和交织模块
Qpsk_mod = Map_qpsk(QPSK_Ind(1,:));
%进行IFFT变换
Dat_Ifft = ifft(Qpsk_mod,[],2);
%计算功率和PAPR
Signal_Power = abs(Dat_Ifft.^2);
Peak_Power = max(Signal_Power,[],2);
Mean_Power = mean(Signal_Power,2);
PAPRo(k) = 10
log10(Peak_Power./Mean_Power);
%随机分块
QPSK_Ind = randperm(Nfft);
A = zeros(Npts,Nfft);
for v=1:Npts
A(v,QPSK_Ind(v:Npts:Nfft)) = Qpsk_mod(QPSK_Ind(v:Npts:Nfft));
end
a = ifft(A,[],2);
%限幅
Tho = mean2(abs(a));
[rr,cc] = size(a);
for i = 1:rr
for j = 1:cc
if abs(a(i,j)) > Tho
a(i,j) = Tho(real(a(i,j)) + ijimag(a(i,j)))/abs(a(i,j));
end
end
end
%PCME算法
P0 = 0.5*ones(1,Npts);%初始概率为0.5
Ps = zeros(Iter,Npts);
P = zeros(Iter,Npts);
for iter = 1:Iter
%根据随机分布,产生一组序列c
....................................................................

    for j = 1:J
        Phase_Factor = repmat(1-2*c(j,:)',1,Nfft);  
        aa           = sum(a.*Phase_Factor);
        Signal_Power = abs(aa.^2);
        Peak_Power   = max(Signal_Power,[],2);
        Mean_Power   = mean(Signal_Power,2);
        F(j)         = 10*log10(Peak_Power./Mean_Power);
    end

    %对当前迭代产生的J个F进行增序排序
    [F2,IND]      = sort(F);
    %计算rj
    r(iter)   = sum(F2(1:ceil(Po*J)))/ceil(Po*J);
    IND2      = find(F <= r(iter));

    if isempty(IND2) == 1
       IND2 = 1;
    else
       IND2 = IND2;  
    end

    for pp = 1:Npts

        for s1 = 1:J
            I(pp,s1) = c(IND(s1),pp);
            tmp11s(s1) = I(pp,s1)*exp(-1*F2(s1)); 
            tmp12s(s1) = exp(-1*F2(s1)); 
        end
        P(iter,pp) =  sum(tmp11s)/sum(tmp12s);
    end        
    %更新概率P
    ......................................................
end
%根据PMCE计算得到的相位因子来计算PAPR值
aa                = sum(a.*repmat(sign((1-2*Ps(iter,:)))',1,Nfft));
Signal_Power      = abs(aa.^2);
Peak_Power_temp   = max(Signal_Power,[],2);
Mean_Power_temp   = mean(Signal_Power,2);
PAPR_temp(k)      = 10*log10(Peak_Power_temp./Mean_Power_temp);

end

```

相关文章
|
26天前
OFDM深入学习及MATLAB仿真(二)
OFDM深入学习及MATLAB仿真
23 1
|
7天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
2天前
|
机器学习/深度学习 算法 计算机视觉
m基于Yolov2深度学习网络的人体喝水行为视频检测系统matlab仿真,带GUI界面
MATLAB 2022a中使用YOLOv2算法对avi视频进行人体喝水行为检测,结果显示成功检测到目标。该算法基于全卷积网络,通过特征提取、锚框和损失函数优化实现。程序首先打乱并分割数据集,利用预训练的ResNet-50和YOLOv2网络结构进行训练,最后保存模型。
12 5
|
11天前
|
文字识别 算法 计算机视觉
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
15 0
|
14天前
|
机器学习/深度学习 算法
【MATLAB】GA_ELM神经网络时序预测算法
【MATLAB】GA_ELM神经网络时序预测算法
286 9
|
1月前
|
算法
m基于log-MPA检测算法的SCMA通信链路matlab误码率仿真
MATLAB 2022a仿真实现了稀疏码多址接入(SCMA)算法,该算法利用码本稀疏性实现多用户高效接入。每个用户从码本中选取码字发送,接收端采用Log-MPA算法进行多用户检测。由于MAP检测计算复杂度高,故采用Log-MPA降低复杂性。仿真展示了不同迭代次数(1, 5, 10, 30)对误码率(BER)的影响,通过比较各次迭代的BER曲线,研究算法性能与迭代次数的关系。
23 0
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到&quot;hand.txt&quot;文件。
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的视频手部检测算法matlab仿真
基于yolov2深度学习网络的视频手部检测算法matlab仿真
|
1月前
|
算法
【MATLAB】语音信号识别与处理:移动中位数滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:移动中位数滤波算法去噪及谱相减算法呈现频谱
23 2
|
1月前
|
算法
【MATLAB】语音信号识别与处理:卷积滑动平均滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:卷积滑动平均滤波算法去噪及谱相减算法呈现频谱
33 0