matlab cdf,Matlab 简单计算PDF和CDF | 学步园

通信的魅力就是在于随机性中蕴含的确定性,这也就是为什么你随便拿出一本通信方面的教材,前面几章都会大篇幅的讲解随机过程,随机过程也是研究生必须深入了解的一门课,特别是对于信号处理以及通信专业的学生。

在实际工作中,通常会得到很多随机的数,我们要分析它们的分布,最常见的就是用PDF和CDF来描述了。好了,还是举出一个具体例子吧。

0_1328598509rrTf.gif

那么实际中我们要验证是不是符合这样的分布,首先看代码再解释:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Author: ZXY

% Email: zxy_ee@163.com

% Version: 1.0

% Date: 2012-2-07

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

close all;

clear all;

N = 100000;

x = randn(1,N);

y = randn(1,N);

r = sqrt(0.5*(x.^2 + y.^2));%每个分量的方差为0.5

step = 0.1;range = 0:step:3;

h = hist(r,range);

pr_approx_pdf = h/(step*sum(h));

pr_theory = (range/0.5).*exp(-range.^2);%0.5即为方差

figure(1)

plot(range,pr_approx_pdf,'ro',range,pr_theory,'gs-');hold on

plot(range,raylpdf(range,sqrt(0.5)),'bd')%用matlab自带函数同样能生成理论曲线。

xlabel('z'),ylabel('PDF'),title('The PDF of Rayleigh distribution')

legend('pr\_approx\_pdf','pr\_theory','pr\_theory\_matlab')

grid;

pr_approx_cdf = cumsum(h)/(sum(h));

figure(2)

plot(range,raylcdf(range,sqrt(0.5))),hold on

plot(range,pr_approx_cdf,'rs','LineWidth',2)

xlabel('z'),ylabel('CDF'),title('The CDF of Rayleigh distribution')

legend('pr\_theory\_matlab','pr\_approx\_cdf','Location','Best')

结果如图:

0_1328601976hQ1u.gif

0_1328601949HnR3.gif

简单解释:我们用到了hist()函数来求结果,其实hist就是直方图,小学都开始使用的计算概率的方法。hist结果是落入每个区间的个数,所以有如下的等式:

PDF = n/(n_total*step),表示了单位长度内的概率大小,而这就是概率密度!同样,在求CDF的过程中,我们要求的是Pr(x<=X)的概率,所以我们就用了累积加函数cumsum()来获得一个累积分布,然后在除以总个数,就得到了累积概率分布。

其实今天的写作冲动来源于一篇博文在讨论PAPR的时候,用到了CDF,我就萌生了写点东西来总结下。同时,我想说的是,Rayleigh分布对于信道建模的重要性我就不用多说,衰落信号的包络分布就是瑞利分布,原因我简单解释下(希望以后有时间展开讲):我们收到的信号是由很多条独立小径构成的,对于窄带信号,可以看成是乘性干扰,最后我们的信号是一个窄带随机过程,其同向分量与正交分量可以由中心极限定理得到是服从高斯分布的且相互独立,那么我们就可以根据例题的定理知道,它的包络服从瑞利分布。

PAPR的分布计算代码:

paprSymboldB = 10*log10(paprSymbol);

[n x] = hist(paprSymboldB,[0:0.5:15]);

plot(x,cumsum(n)/nSymbol,'LineWidth',4)

xlabel('papr, x dB')

ylabel('Probability, X <=x')

title('CDF plots of PAPR from an IEEE 802.11a Tx with BPSK modulation')

grid on

结果如下:

0_1328602817tQZW.gif

后记:由于CSDN博客不支持matlab代码,所以高亮有时很滑稽,建议大家直接view plain!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 1232. 缀点成线

在一个 XY 坐标系中有一些点&#xff0c;我们用数组 coordinates 来分别记录它们的坐标&#xff0c;其中 coordinates[i] [x, y] 表示横坐标为 x、纵坐标为 y 的点。 请你来判断&#xff0c;这些点是否在该坐标系中属于同一条直线上&#xff0c;是则返回 true&#xff0c;否则…

mysql常用操作(一)

【数据库设计的三大范式】1、第一范式&#xff08;1NF&#xff09;&#xff1a;数据表中的每一列&#xff0c;必须是不可拆分的最小单元。也就是确保每一列的原子性。 例如&#xff1a;userInfo:山东省烟台市 18865518189 应拆分成 userAds山东省烟台市 userTel188655181892、第…

pmp 成本估算准确高_如何更准确地估算JavaScript中文章的阅读时间

pmp 成本估算准确高by Pritish Vaidya通过Pritish Vaidya 准确估算JavaScript中篇文章的阅读时间 (Accurate estimation of read time for Medium articles in JavaScript) 介绍 (Introduction) Read Time Estimate is the estimation of the time taken by the reader to rea…

Android数据适配-ExpandableListView

Android中ListView的用法基本上学的时候都会使用&#xff0c;其中可以使用ArrayAdapter&#xff0c;SimpleAdapter&#xff0c;BaseAdapter去实现&#xff0c;这次主要使用的ExpandableListView展示一种两层的效果&#xff0c;ExpandableListView是android中可以实现下拉list的…

JavaWeb 命名规则

命名规范命名规范命名规范命名规范 本规范主要针对java开发制定的规范项目命名项目命名项目命名项目命名 项目创建&#xff0c;名称所有字母均小写&#xff0c;组合方式为&#xff1a;com.company.projectName.component.hiberarchy。1. projectName&#xff1a;项目名称2. com…

多元概率密度_利用多元论把握事件概率

多元概率密度Humans have plenty of cognitive strengths, but one area that most of us struggle with is estimating, explaining and preparing for improbable events. This theme underpins two of Nassim Taleb’s major works: Fooled by Randomness and The Black Swa…

nginx php访问日志配置,nginx php-fpm 输出php错误日志的配置方法

由于nginx仅是一个web服务器&#xff0c;因此nginx的access日志只有对访问页面的记录&#xff0c;不会有php 的 error log信息。nginx把对php的请求发给php-fpm fastcgi进程来处理&#xff0c;默认的php-fpm只会输出php-fpm的错误信息&#xff0c;在php-fpm的errors log里也看不…

阿里的技术愿景_技术技能的另一面:领域知识和长期愿景

阿里的技术愿景by Sihui Huang黄思慧 技术技能的另一面&#xff1a;领域知识和长期愿景 (The other side of technical skill: domain knowledge and long-term vision) When we first start our careers as software engineers, we tend to focus on improving our coding sk…

leetcode 721. 账户合并(并查集)

给定一个列表 accounts&#xff0c;每个元素 accounts[i] 是一个字符串列表&#xff0c;其中第一个元素 accounts[i][0] 是 名称 (name)&#xff0c;其余元素是 emails 表示该账户的邮箱地址。 现在&#xff0c;我们想合并这些账户。如果两个账户都有一些共同的邮箱地址&#…

es6重点笔记:数值,函数和数组

本篇全是重点&#xff0c;捡常用的怼&#xff0c;数值的扩展比较少&#xff0c;所以和函数放一起&#xff1a; 一&#xff0c;数值 1&#xff0c;Number.EPSILON&#xff1a;用来检测浮点数的计算&#xff0c;如果误差小于这个&#xff0c;就无误 2&#xff0c;Math.trunc()&am…

SMSSMS垃圾邮件检测器的专业攻击

Note: The methodology behind the approach discussed in this post stems from a collaborative publication between myself and Irene Anthi.注意&#xff1a; 本文讨论的方法背后的方法来自 我本人和 Irene Anthi 之间 的 合作出版物 。 介绍 (INTRODUCTION) Spam SMS te…

php pdo 缓冲,PDO支持数据缓存_PHP教程

/*** 作者&#xff1a;初十* QQ&#xff1a;345610000*/class myPDO extends PDO{public $cache_Dir null; //缓存目录public $cache_expireTime 7200; //缓存时间&#xff0c;默认两小时//带缓存的查询public function cquery($sql){//缓存存放总目录if ($this->cache_Di…

mooc课程下载_如何使用十大商学院的免费课程制作MOOC“ MBA”

mooc课程下载by Laurie Pickard通过劳里皮卡德(Laurie Pickard) 如何使用十大商学院的免费课程制作MOOC“ MBA” (How to make a MOOC “MBA” using free courses from Top 10 business schools) Back when massive open online courses (MOOCs) were new, I started a proje…

leetcode 1584. 连接所有点的最小费用(并查集)

给你一个points 数组&#xff0c;表示 2D 平面上的一些点&#xff0c;其中 points[i] [xi, yi] 。 连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 &#xff1a;|xi - xj| |yi - yj| &#xff0c;其中 |val| 表示 val 的绝对值。 请你返回将所有点连接的最小…

Nagios学习实践系列

其实上篇Nagios学习实践系列——基本安装篇只是安装了Nagios基本组件&#xff0c;虽然能够打开主页&#xff0c;但是如果不配置相关配置文件文件&#xff0c;那么左边菜单很多页面都打不开&#xff0c;相当于只是一个空壳子。接下来&#xff0c;我们来学习研究一下Nagios的配置…

在Salesforce中处理Email的发送

在Salesforce中可以用自带的 Messaging 的 sendEmail 方法去处理Email的发送 请看如下一段简单代码&#xff1a; public boolean TextFormat {get;set;} public string EmailTo {get;set;} public string EmailCC {get;set;} public string EmailBCC {get;set;} public string …

kvm vnc的使用,鼠标漂移等

1.宿主机的vnc&#xff08;virtual Network Computing&#xff09;配置 安装rpm包 yum install tigervnc-server -y 为了防止干扰直接关闭防火墙和selinux /etc/init.d/iptables stop setenforce 0 配置vnc密码和启动vncserver服务 vncpasswd vncserver 2.客户机的vnc 在qemu…

php深浅拷贝,JavaScript 中的深浅拷贝

工作中经常会遇到需要复制 JavaScript 数据的时候&#xff0c;遇到 bug 时实在令人头疼&#xff1b;面试中也经常会被问到如何实现一个数据的深浅拷贝&#xff0c;但是你对其中的原理清晰吗&#xff1f;一起来看一下吧&#xff01;一、为什么会有深浅拷贝想要更加透彻的理解为什…

使用Python进行地理编码和反向地理编码

Geocoding is the process of taking input text, such as an address or the name of a place, and returning a latitude/longitude location. To put it simply, Geocoding is converting physical address to latitude and longitude.地理编码是获取输入文本(例如地址或地点…

java开发简历编写_如何通过几个简单的步骤编写出色的初级开发人员简历

java开发简历编写So you’ve seen your dream junior developer role advertised, and are thinking about applying. It’s time to write that Resume! Nothing better than sitting down to a blank piece of paper and not knowing how to start, right?因此&#xff0c;您…