news 2026/6/18 11:39:47

PAPR 迭代降低算法仿真

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PAPR 迭代降低算法仿真

1) 算法在做什么

OFDM 时域信号峰值高,本质原因是大量子载波同相叠加。
“迭代降低”一般不是一步到位,而是:

  1. 限幅:把时域样值压到门限 A 以内(非线性,会抬升底噪/产生带外)
  2. 频域滤波:把限幅产生的“带外失真”扔掉(只保留子载波位置的频域分量)
  3. 迭代:重复 1→2,让带内失真慢慢“收敛”,PAPR 逐步下降

代价:每次限幅都会引入带内失真(EVM 类损伤),因此迭代不是越多越好,要在 PAPR 与 EVM/BER 间折衷。


2) 关键参数与建模假设

参数符号典型值
子载波总数N256
有效子载波N_usedN(或 N-保护 tone)
调制M16-QAM / QPSK
过采样率(时域)L4
限幅门限(幅度)A由目标 PAPR₀ 换算
迭代次数N_iter3~8
帧数(Monte Carlo)N_frame≥500(CCDF 才稳)

限幅门限与 PAPR 的关系

如果你希望“限幅门限对应某个目标 PAPR₀(dB)”:

A=σx10PAPR010A = \sigma_x \sqrt{10^{\frac{PAPR_0}{10}}}A=σx1010PAPR0

其中 (σx2=E[∣x(n)∣2]\sigma_x^2=E[|x(n)|^2]σx2=E[x(n)2])(用一段训练样本估计,或直接归一化平均功率为 1)。


3) 核心函数:迭代限幅 + 频域滤波(ICF)

这里我用频域把“非子载波位置置零”来模拟“只保留有用子载波”——等价于理想的子载波内滤波。

functionx_out=icf_ofdm(y,A,N_iter,Nfft,N_used,cp_len)% ICF_OFDM Iterative Clipping and Frequency-Domain Filtering% y : 时域 OFDM 符号 (Nfft+L*Nfft? 这里约定 y 长度为 Nfft)% A : 限幅门限 (幅度)% N_iter : 迭代次数% Nfft : FFT 点数% N_used : 有效子载波数(这里用简单中心映射示意)% cp_len : CP 长度(不影响限幅核,但你要统一接口就留着)x=y(:);% --- 子载波索引:简单取中心 N_used ---kc=floor((Nfft-N_used)/2)+1;idx_used=kc:(kc+N_used-1);forit=1:N_iter% 1) 限幅mag=abs(x);phase=exp(1j*angle(x));mask=(mag>A);x_c=x;x_c(mask)=A.*phase(mask);% 硬限幅(你可换软限幅)d=x_c-x;% 限幅失真% 2) 回频域,只保留子载波位置(滤掉带外)D=fft(d,Nfft);D_filter=zeros(Nfft,1);D_filter(idx_used)=D(idx_used);% 子载波内留着% 3) 重建时域x=x_c-ifft(D,Nfft);% 经典写法:x_new = x_c - ifft(带外)% 等价理解:只保留带内 => x = ifft(D_filter)% 可选:再做一个小保护(避免数值反弹)x(abs(x)>A)=A.*exp(1j*angle(x(abs(x)>A)));endx_out=x;end

如果你要更“射频味”,把频域滤波换成FIR/矩形窗(对应 sinc 时域)保留 DC/左右对称子载波即可;结构不变。


4) 完整仿真骨架:产生 OFDM → 迭代降低 → PAPR/CCDF

4.1 主脚本

clear;clc;close all;%% === 参数 ===Nfft=256;N_used=Nfft;% 这里先不用虚拟子载波,方便看清 PAPRM=16;% QAML=4;% 过采样倍数N_sym=1;% 每帧 OFDM 符号数(PAPR 通常不依赖多符号)cp_len=Nfft/8;% 迭代参数N_iter=5;PAPR0_dB=7;% 你想“对应的限幅门限”参考(不是保证值)N_frame=1000;% Monte-Carlo%% === 归一化:令 E[|x|^2]=1 ===% 16-QAM 平均能量 (格雷/单位平均功率归一化可自己定)const=qammod(0:M-1,M,...InputType="integer",UnitAveragePower=true);% const = (2*(randi([0 1],N,1)-0.5) + 1j*(2*(randi([0 1],N,1)-0.5))) / sqrt(2); % QPSK 例子PAPR_vec_raw=nan(N_frame,1);PAPR_vec_icf=nan(N_frame,1);rng(42);forf=1:N_frame%% 1) 随机数据b=randi([0M-1],N_used*N_sym,1);Xf=qammod(b,M,InputType="integer",UnitAveragePower=true);%% 2) 映射到 FFT 位置(中心映射)kc=floor((Nfft-N_used)/2)+1;X=zeros(Nfft,1);X(kc:kc+N_used-1)=Xf;%% 3) IFFT → 过采样可在此做(最简:IFFT 后插值;更“标准”用 L*Nfft)x_raw=ifft(X,Nfft)*sqrt(Nfft);% 归一化看你习惯;下面我们用功率归一化% --- 功率归一化使得 E[|x|^2]=1 ---x_raw=x_raw/sqrt(mean(abs(x_raw).^2));% 为省事:这里先不做 L>1 插值(PAPR 仍可比,但更严格的要插值)x=x_raw;%% 4) 原始 PAPRpower_inst=abs(x).^2;PAPR_raw(f)=10*log10(max(power_inst)/mean(power_inst));%% 5) 限幅门限A=sqrt(mean(power_inst))*sqrt(10^(PAPR0_dB/10));%% 6) ICFx_icf=icf_ofdm(x,A,N_iter,Nfft,N_used,cp_len);% 重新功率归一化(可选,便于公平比较)x_icf=x_icf/sqrt(mean(abs(x_icf).^2));power_inst2=abs(x_icf).^2;PAPR_icf(f)=10*log10(max(power_inst2)/mean(power_inst2));end%% === CCDF ===PAPR_db=0:0.1:12;ccdf_raw=arrayfun(@(t)mean(PAPR_raw>t),PAPR_db);ccdf_icf=arrayfun(@(t)mean(PAPR_icf>t),PAPR_db);figure;semilogy(PAPR_db,ccdf_raw,'k--','LineWidth',2);hold on;grid on;semilogy(PAPR_db,ccdf_icf,'r-','LineWidth',2);xlabel('PAPR_0 (dB)');ylabel('CCDF = Prob(PAPR>PAPR_0)');legend('Raw OFDM','ICF (iter='+string(N_iter)+')');title('OFDM PAPR 降低:迭代限幅+频域滤波');

参考代码 PAPR 迭代降低算法仿真www.youwenfan.com/contentcsv/81410.html

5) 3 个“仿真坑”

  1. PAPR 看起来偏低 / 没峰
    → 你很可能没做过采样。真 PAPR 需要用至少 (L\ge4) 的过采样(IFFT 插值或更长 IFFT)否则会漏掉峰。
    做法:用Nfft_up = L*Nfft,把频域填到更大网格再做 IFFT。

  2. 迭代后波形“反而更怪”
    → 常见原因:你限幅门限太低(A 太小)→ 强削波 → 带内 EVM 暴增;或者你滤波没正确“只保留子载波/带内”。先把N_iter=1跑通、看时域波形再往上加。

  3. CCDF 不稳(曲线毛毛躁躁)
    N_frame不够。PAPR 尾部是稀有事件,通常要几千帧才平滑(看你精度需求)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/18 11:30:56

Happy Oyster:面向工程可信的动态三维世界模型

1. 项目概述:这不是又一个“会动的3D模型”,而是一次空间智能范式的迁移“阿里发布世界模型产品 Happy Oyster,可生成动态三维环境,有哪些技术亮点?”——这句话里藏着三个被多数人忽略的关键词:世界模型、…

作者头像 李华
网站建设 2026/6/18 11:22:51

机器学习偏差与方差:模型泛化能力的双核心诊断法

1. 什么是偏差与方差——机器学习模型的“双生难题”你训练完一个模型,测试集上准确率98%,心里刚想庆祝,结果上线跑了一周,效果断崖式下跌。或者反过来,你在训练集上死磕到损失降到0.001,验证集却卡在0.4不…

作者头像 李华
网站建设 2026/6/18 11:22:44

浏览器本地存储的区别

1. Cookie4KB,随请求自动发给后端跨域不能共享可设过期,用于登录会话不安全,每次请求携带浪费带宽,容易被劫持只存在请求头中2. localStorage5MB,永久存储,清缓存才消失同源页面共享,不传给后端…

作者头像 李华
网站建设 2026/6/18 11:22:35

上下文老虎机实战:构建可监控、可回滚的实时决策流水线

1. 这不是另一个“强化学习入门”,而是一套能立刻跑通的实时决策流水线你有没有遇到过这样的场景:凌晨两点,运营同事发来消息,“首页推荐点击率掉到1.8%了,比昨天低0.7个点,用户好像不爱看了”;…

作者头像 李华
网站建设 2026/6/18 11:22:23

计算机毕业设计之融合多模态信息的电商商品推荐系统

本系统旨在设计并实现一个融合多模态信息的电商商品推荐系统,综合运用了Django后端开发框架、多模态融合技术以及Vue前端展示技术。系统分为用户功能模块和管理员功能模块,用户模块包括系统首页、商品信息、商品数据、公告信息、商品信息推荐和个人中心&…

作者头像 李华