MATLAB | 对随机信号进行统计分析,绘制频次直方图、频率分布图,与理论概率密度进行比较

本文主要是介绍MATLAB | 对随机信号进行统计分析,绘制频次直方图、频率分布图,与理论概率密度进行比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、问题描述

对于一个随机信号,我们可以通过统计手段,得到其的频次分布图(直方图),并由此计算出它的频率分布图。当观察次数区域无穷大时,频率分布图近似于概率密度函数。
下面我们以稳定分布的随机变量为例,来对其进行分析,分析其频次直方图、频率分布图,并与理论概率密度进行比较。

二、解决思路

(1)生成随机变量。使用makedist()函数创建一个概率分布对象,在此基础上,使用random()函数生成随机变量。
(2)绘制直方图。histogram()函数被使用来绘制频次分布图。
(3)将直方图的频次分布转换为频率分布图。频次除以观测次数得到区间频率,再除以区间长度即可得到频率分布图。
(4)使用pdf()函数绘制理论的概率密度函数。

三、实验代码

close all;clc;clear all;%% 参数设置SigLength = 5e7; % 信号长度% 稳定分布噪声参数
alpha = 1.5;
beta = 0;
gamma = 1;
miu = 0;%% 信号生成pd1 = makedist('Stable','alpha',alpha,'beta',beta,'gam',gamma,'delta',miu); % 产生对称α稳定分布
noise = random(pd1,[SigLength,1]); % 依据对象生成随机变量% noise2 = random('Stable',alpha,beta,gamma,miu,[SigLength,1]); % 方法二%% 统计直方图h1 = histogram(noise); % 作出直方图,其中BinEdges是横坐标,Values是出现次数(频数)
title('频次直方图');
xlim([-10,10]);
% hold on;nbins = h1.NumBins; % 获取直方图的分组数
x1 = zeros(nbins,1); % 将histogram估计的结果转换为频率图(将频次图转换为频率图)
for ii = 1:nbinsx1(ii,1) = transpose(0.5*(h1.BinEdges(ii) + h1.BinEdges(ii+1))); % 取区间中点
end
IntervalLength = h1.BinEdges(nbins) - h1.BinEdges(1); % 数据区间总长度
IntervalPerLength = IntervalLength/nbins; % 每个区间长度
z1 = transpose(h1.Values/SigLength/IntervalPerLength); % 重点,这是由频次直方图画概率密度的近似%% 计算理论PDFpdf1 = pdf(pd1,x1);%% 作图figure;
plot(noise);
title('噪声');figure;
plot(x1,pdf1);
title('理论的PDF');
xlim([-10,10]);figure;
plot(x1,z1,'o');hold on;
plot(x1,pdf1);hold on;
xlim([-10,10]);
legend('直方图估计','理论的PDF');

四、实验结果

这篇关于MATLAB | 对随机信号进行统计分析,绘制频次直方图、频率分布图,与理论概率密度进行比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/227808

相关文章

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图

如何使用Spring boot的@Transactional进行事务管理

《如何使用Springboot的@Transactional进行事务管理》这篇文章介绍了SpringBoot中使用@Transactional注解进行声明式事务管理的详细信息,包括基本用法、核心配置... 目录一、前置条件二、基本用法1. 在方法上添加注解2. 在类上添加注解三、核心配置参数1. 传播行为(

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.