OFDM信号PARP的CCDF图

文章目录

    • 引言
    • 代码
    • 代码疑难解答
    • 参考文献

引言

本书主要参考了文献1,但实际上该书中符号和表述的错误非常多(只能说棒子是这样的);同时因为发表时间的关系,很多MATLAB代码进行了更新,原书提供的代码已经无法正常运行。我将修补后的代码给出,并且给出了疑难问题的理解。

代码

% plot_CCDF.m
% Plot the CCDF curves of Fig. 7.3.

clear all; clc; clf
N_OFDM = 2.^[6:10];  %N_OFDM代表OFDM中做IFFT点的数量
b=2; M=2^b; 
Nblk = 1e4; % Nblk Number of Blocks 
PARP_dB = [4:0.1:10]; 
N_PARP_dB = length(PARP_dB);

CCDF_formula=inline('1-((1-exp(-z.^2/(2*s2))).^N)','N','s2','z'); % Eq.(7.9) 构造一个内联函数对象

for n = 1:length(N_OFDM)    

    N=N_OFDM(n); 
    x = zeros(Nblk,N); 
    sqN=sqrt(N);

    for k = 1:Nblk
       X = mapper(b,N); % 生成 N 个 2^b QAM modulated symbols 
       x(k,:) = ifft(X,N)*sqN; % 确保IFFT变换后能量一致
       CFx(k) = PAPR(x(k,:)); % 计算信号的PAPR
    end

    % 通过锐利信道特性计算平均的σ^2的值
    sigma2 = mean(mean(abs(x)))^2/(pi/2);

    % 计算CCDF的理论值  the maximum of Zn is equivalent to the crest factor, sqrt(PAPR)
    CCDF_theoretical=CCDF_formula(N,sigma2,10.^(PARP_dB/20)); 

    for i = 1:N_PARP_dB
       CCDF_simulated(i) = sum(CFx>PARP_dB(i))/Nblk;
    end

    % 绘制对数图
    semilogy(PARP_dB,CCDF_theoretical,'k-');  hold on; grid on;
    semilogy(PARP_dB(1:3:end),CCDF_simulated(1:3:end),'k:*');
end

axis([PARP_dB([1 end]) 1e-2 1]);  % 确认坐标轴范围
title('OFDM system with N-point FFT');
xlabel('PAPR0[dB]'); ylabel('CCDF=Probability(PAPR>PAPR0)'); 
legend('Theoretical','Simulated');
function [modulated_symbols,Mod] = mapper(b,N)
% If N is given, it generates a block of N random 2^b-PSK/QAM modulated symbols.
% Otherwise, it generates a block of 2^b-PSK/QAM modulated symbols for [0:2^b-1].


M=2^b; % Modulation order or Alphabet (Symbol) size

% 生成一个相移键控 PSK 调制器对象
if b==1, Mod='BPSK'; A=1; mod_object=comm.PSKModulator('ModulationOrder', M);
elseif b==2, Mod='QPSK';  A=1;
    %QPSK 调制的信号星座图是一个单位圆的 4 个点,表示 0 度、90 度、180 度和 270 度的相位
    mod_object=comm.PSKModulator('ModulationOrder', M,'PhaseOffset',pi/4);
else
    % 生成一个 QAM 调制器对象
    Mod=[num2str(2^b) 'QAM']; Es=1; A=sqrt(3/2/(M-1)*Es);
    mod_object=comm.RectangularQAMModulator('ModulationOrder', M, 'SymbolMapping', 'Gray');
end

% 虽然这里是用了A来做功率归一化,实际上调制器函数本身就自带有归一化功能
if nargin==2 % generates a block of N random 2^b-PSK/QAM modulated symbols
    modulated_symbols = A*mod_object(randi([0 M-1], N, 1));
else
    modulated_symbols = A*mod_object([0:M-1]');
end
function [PAPR_dB, AvgP_dB, PeakP_dB] = PAPR(x)
% PAPR_dB  : PAPR[dB]
% AvgP_dB  : Average power[dB]
% PeakP_dB : Maximum power[dB]

%MIMO-OFDM Wireless Communications with MATLAB㈢   Yong Soo Cho, Jaekwon Kim, Won Young Yang and Chung G. Kang
%2010 John Wiley & Sons (Asia) Pte Ltd

Nx=length(x); xI=real(x); xQ=imag(x);
Power = xI.*xI + xQ.*xQ;
PeakP = max(Power); PeakP_dB = 10*log10(PeakP);
AvgP = sum(Power)/Nx; AvgP_dB = 10*log10(AvgP);
PAPR_dB = 10*log10(PeakP/AvgP);

代码疑难解答

  1. 为什么要使用 x(k,:) = ifft(X,N)*sqN; 这个IFFT公式

这是为了是变换前后时域和频率域的能量保持一致。

  1. σ 2 \sigma^2 σ2 这个式子是如何计算,这个计算是必须的吗?

根据锐利分布的公式,平均值 E ( X ) = σ π / 2 E(X)=\sigma\sqrt{\pi/2} E(X)=σπ/2 。详细推导可以参考概率分布的教科书。但实际上, σ 2 \sigma^2 σ2 根据默认的设置应该是 σ 2 = 0.5 \sigma^2=0.5 σ2=0.5。因为我们对输入功率在mapper 函数中就进行了归一化处理。sigma2 = mean(mean(abs(x)))^2/(pi/2); 这一行代码实际上是没有必要的。下图是设置 σ 2 = 0.5 \sigma^2=0.5 σ2=0.5 后仿真结果图。
在这里插入图片描述

  1. 为什么横坐标要改成PARP0[dB],而不是原本的z[dB]

实际上,这主要取决于代码。原书本中的图是明显错误的。

参考文献

  1. MIMO-OFDM无线通信技术及MATLAB实现
  2. 初识OFDM(八):OFDM中的PAPR计算和通频带仿真

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/874212.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】UDP TCP介绍

UDP & TCP介绍 UDP报文格式报文内容介绍端口号报文长度校验和载荷 TCP报文格式初步了解TCP机制确认应答超时重传连接管理滑动窗口流量控制拥塞控制紧急传输数据推送延时应答捎带应答面向字节流异常处理心跳机制 UDP 和 TCP 的区别 UDP 报文格式 对于网络协议, 本质上就是…

STM32+ESP8266+MQTT协议连接阿里云实现温湿度上传

前期步骤: ESP8266下载固件→连接阿里云-CSDN博客 keil文件:大家可以直接下载,也可以在后台私信我获取 《STM32ESP8266MQTT协议连接阿里云实现温湿度上传》 keil文件源码 一、代码修改部分 1、mqtt.h文件中的修改 2、wifi.h文件中的修改 3、main.…

国庆出行要准备什么?这款骨传导耳机你一定不能错过!

在准备国庆假期的旅行计划时,大家可能正在考虑如何让旅途更加充实有趣,同时也注重个人健康和舒适度。选择一款适合旅行的耳机,不仅是对音乐品味的追求,更是对旅途品质的提升。 今天,我想给大家推荐一款我个人非常喜欢的…

局域网一套键鼠控制两台电脑(台式机和笔记本)

服务端(有键盘和鼠标的电脑作为服务端) 下载软件 分享文件:BarrierSetup-2.3.3.exe 链接:https://pan.xunlei.com/s/VO66rAZkzxTxVm-0QRCJ33mMA1?pwd4jde# 配置服务端 一, 二, 客户端屏幕名称一定要和…

物联网之PWM呼吸灯、脉冲、LEDC

MENU 前言原理硬件电路设计软件程序设计analogWrite()函数实现呼吸灯效果LEDC输出PWM信号 前言 学习制作呼吸灯,通过LED灯的亮度变化来验证PWM不同电压的输出。呼吸灯是指灯光在单片机的控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸。 原理 脉冲宽…

网络学习-eNSP配置单交换机VLAN

VLAN 隔离广播域增加安全提高带宽利用降低数据传递延迟 实验1-设置单交换机VLAN #VLAN 1 表示默认VLAN&#xff0c;默认所有主机在VLAN1 <Huawei>system-view Enter system view, return user view with CtrlZ. [Huawei]undo info-center enable Info: Information cen…

CSP-CCF★★★201812-2小明放学★★★

目录 一、问题描述 二、解答 &#xff08;1&#xff09;注意&#xff1a; &#xff08;2&#xff09;80分版&#xff1a; &#xff08;3&#xff09;100分版&#xff1a; 三、总结 一、问题描述 二、解答 &#xff08;1&#xff09;注意&#xff1a; 题目的n小于等于10的…

html+css网页设计 旅游 雪花旅行社5个页面

htmlcss网页设计 旅游 雪花旅行社5个页面 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#…

828华为云征文|docker部署ollama搭建属于自己的大模型

1.介绍 1.1 什么是华为云Flexus X实例 最近华为云828 B2B企业节正在举办&#xff0c;Flexus X实例的促销也非常给力&#xff0c;大家可以去看看。特别是对算力性能有要求&#xff0c;同时对自建MySQL、Redis、Nginx性能有要求的小伙伴&#xff0c;千万不要错过。 Flexus云服务…

区块链媒体:区块链媒体套餐倾心推广解析!

塞翁失马&#xff0c;区块链媒体套餐&#xff0c;两者看似毫不相干&#xff0c;实际上却反映了区块链技术的广泛运用和媒体领域的创新模式。本文将带你深入了解这一新兴领域的背后故事&#xff0c;并分析区块链媒体套餐推广的关键因素。 塞翁失马的寓意 塞翁失马是中国古代的一…

BFS迷宫最小路径问题

给定一个迷宫&#xff0c;0表示空地可以走&#xff0c;1表示墙壁不能穿越&#xff1b;在迷宫中可以向&#xff08;上下左右&#xff09;四个方向行进&#xff1b; 找到从左上角到右下角的最短路径&#xff0c;并计算最短路径的长度。 迷宫示例如下&#xff1a; 算法步骤&…

云计算之网络

目录 一、VPC&#xff1a;云网络的基石 1.1 VPC产品介绍 1.2 vswitch交换机 1.3 vrouter路由器 1.4 产品架构 1.5 常见问题解答及处理 1.5.1 VPC内如何查询某个IP归属? 1.5.2 网络ACL阻断导致ECS访问CLB不通 1.5.3 EIP秒级突发/分布式限速丢包 1.5.4 NAT网关的流量监…

解决“msvcr120.dll”缺失的问题:全面指南,快速修复msvcr120.dll错误

在使用多种软件或游戏时&#xff0c;Windows 用户经常会遇到“msvcr120.dll文件缺失”或“文件损坏”的错误提示。这个问题可能会阻碍应用程序的启动和运行&#xff0c;给用户带来诸多不便。本文将深入探讨msvcr120.dll文件的功能、它为何频繁出现问题&#xff0c;以及用户应如…

18、Gemini-Pentest-v1

难度 中 &#xff08;个人认为是高&#xff09; 目标 root权限 一个flag 靶机启动环境为VMware kali 192.168.152.56 靶机 192.168.152.64 信息收集 突破点大概就是web端了 web测试 访问主页直接就是目录遍历 不过进去后是一个正常的网页 简单的试了几个弱口令无果继续信息…

第七届“泰迪杯”数据分析技能赛 赛前指导安排

竞赛时间安排 报名起始时间&#xff1a; 2024年9月3日-11月7日 赛前指导时间&#xff1a; 2024年9月10日-11月7日 A 题竞赛时间&#xff1a; 2024年11月9日 8:00-20:00 &#xff08;* 8:00:00开放赛题及数据&#xff09; B 题竞赛时间&#xff1a; 2024年11月10日…

【免费分享】25秋招提前批25秋招信息表

秋招&#xff0c;即秋季校园招聘&#xff0c;通常是指每年秋季&#xff08;大约从9月到11月&#xff09;企业在各大高校举办的招聘活动。这是许多公司为了吸引优秀应届毕业生而进行的招聘活动&#xff0c;也是许多学生毕业后进入职场的重要途径。以下是秋招的一些关键点&#x…

将esp32-s3-eye做为USB网络摄像头(UVC设备)

官方网址&#xff1a;usb_webcam 支持UVC同步、批量传输模型只支持MJPEG传输格式支持板上LCD动画esp32-s3-eye&#xff08;IDF v5.0或更高版本&#xff09; 硬件要求 官方默认的USB WebCam config就是乐鑫带摄像头OV2604的esp32-s3-eye&#xff0c;其他的开发板可以参考官方网…

多环境jdk安装,CentOS,统信UOS,Ubuntu,KylinOS,windows

文章目录 1.CentOS1.1yum安装1.2压缩包安装 本文档只是为了留档方便以后工作运维&#xff0c;或者给同事分享文档内容比较简陋命令也不是特别全&#xff0c;不适合小白观看&#xff0c;如有不懂可以私信&#xff0c;上班期间都是在得 1.CentOS 1.1yum安装 yum install -y jav…

Linux 安装神州通用数据库 ShenTong7.0.8_342.92_linux64

Linux 安装神州通用数据库 ShenTong7.0.8_342.92_linux64 1、准备工作2、安装数据库3、启停数据库4、后续步骤 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Linux环境下安装神州通用数据库&#xff08;ShenTong&#xff09;是一个相对直…

家庭用超声波清洗机哪个品牌好用?好用的眼镜清洗机推荐

在我们的日常生活中&#xff0c;像眼镜、项链和耳环这些频繁使用的个人物品&#xff0c;经常面临灰尘积聚和细缝中难以触及的污渍问题。超声波清洗机凭借其深入微细缝隙的清洁能力&#xff0c;成为了解决这一难题的理想工具&#xff0c;确保了这些珍贵小物的彻底清新。不过现在…