随机信号分析实验(副本).ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MATLAB的随机信号分析方法 随机信号分析的MATLAB函数 一、特征估计 * 一、蒙特卡罗模拟方法 系统模拟:它是通过对系统建立数学模型,模拟产生实际环境的信号和杂波,用计算机来模拟实际系统的运行过程。系统模拟可用于系统设计阶段的方案论证、分析系统的性能。或者可以对现有的复杂系统进行分析其综合性能。 系统模拟的关键是产生与实际环境相符合的观测数据或随机过程 蒙特卡洛方法: 也称为统计试验方法,它是采用统计的抽样理论来近似求解数学问题或物理问题,它即可以求解概率问题,也可以求解非概率问题,蒙特卡洛方法是系统模拟的重要方法。 用一个例子来说明蒙特卡洛的基本思想: 蒙特卡洛模拟的基本步骤 建立合适的概率模型 进行多次重复试验 对重复试验结果进行统计分析(估计频率、均值等)、分析精度 重复试验的次数称为蒙特卡洛仿真次数,试验次数越多,精度越高 蒙特卡洛方法可以求解复杂系统的计算问题,如雷达检测系统的检测概率 二、随机序列的产生 1、均匀随机数的产生 利用MATLAB函数 x=rand(m,n) x=rand(100,1) 2、任意分布随机数的产生 反函数法 变换法 (1)反函数法 定理:如果随机变量X具有连续分布函数FX(x),而r=是(0,1)上均匀分布的随机变量,则X=Fx-1(r) 由此等式,根据(0,1)随机序列可以产生服从分布fX(x)的随机序列xi 举例:指数分布随机数的产生 或 % 指数分布随机数的产生 N=200; r=rand(N,1); l=0.1; x=-log(r)/l; plot(x); 瑞利分布: % 产生瑞利分布随机数 N=500; sigma=1; r=rand(N,1); x=sigma*sqrt(-2*log(r)); subplot(2,1,1); plot(x); y=ksdensity(x) subplot(2,1,2); plot(y); 韦泊分布 雷达地杂波或海浪杂波服从该分布 % 产生韦泊分布随机数 N=500; b=1; a=1.2; r=rand(N,1); x=b*(-log(r)).^(1/a); subplot(2,1,1); plot(x); y=ksdensity(x) subplot(2,1,2); plot(y); (2) 变换法 N(m,?2)的正态随机数的产生 3 MATLAB的随机数生成函数 1) 独立同分布白噪声序列的产生 (1) (0,1)均匀分布的白噪声序列rand() 用法:x=rand(m,n) 功能:产生m?n的均匀分布随机数矩阵,例如,x=rand(100,1),产生一个100个样本的均匀分布白噪声列矢量。 (2) 正态分布白噪声序列randn() 用法:x=randn(m,n) 功能:产生m?n的标准正态分布随机数矩阵,例如,x=randn(100,1),产生一个100个样本的正态分布白噪声列矢量。如果要产生服从N(?,?2)分布的随机矢量,则可以通过标准正态随机矢量来产生, MATLAB的语句为: x=?+?.*randn(100,1)。 (3) 韦伯分布白噪声序列weibrnd() 用法:x=weibrnd(A,B,m,n); 功能:产生m?n的韦伯分布随机数矩阵,其中A、B是韦伯分布的两个参数。例如,x=weibrnd(1,1.5,100,1),产生一个100个样本的韦分布白噪声列矢量,韦伯分布参数a=1,b=1.5。 其他分布的随机数产生函数还有瑞利分布、伽玛分布、指数分布等,在此不一一列举。 4、相关正态随机矢量的产生 产生N维正态随机矢量,要求服从如下概率密度 其中K为协方差矩阵 是对称正定矩阵 基本方法是先产生零均值、单位方差,且各个分量相互独立的标准正态随机矢量U,然后做变换 X=AU+M 其中A由协方差矩阵K确定 A可以用矩阵分解函数得到 Chol() 5 相关正态随机序列的产生----已知相关函数 产生一个正态随机序列,要求相关函数满足 a1 产生公式 a=0.8; sigma=2; N=500; u=randn(N,1); x(1)=sigma*u(1)/sqrt(1-a^2); for i=2:N x(i)=a*x(i-1)+sigma*u(i); end plot(x); MATLAB程序 如果要产生任意形式的相关函数的相关正态随机序列 根据相关函数确定协方差矩阵 对协方差矩阵进行矩阵分解 产生N维标准正态随机矢量 做变换X=AU+M 在进行矩阵分解时可以利用MATLAB的Cholesky矩阵分解函数chol(),利用chol()函数可以直接得到A矩阵 对于各态历经过程,我们可以通过对随机序列的一条样本函数来获得该过程的统计特性

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档