(19)MATLAB使用Nakagami 分布对象生成Nakagami-m分布

文章目录


前言

MATLAB在R2013a版本中开始引入Nakagami分布对象,可以用来生成Nakagami随机变量。下面给出一个使用实例,用于生成服从Nakagami 分布的随机变量。


一、生成Nakagami分布随机变量的MATLAB代码

1.仿真代码

代码如下:

c 复制代码
clc
close all
clear all
%% 使用MATLAB函数makedist生成Nakagami分布
% Nakagami 分布的参数
m = 1;                                  % 形状参数
Omega = 2;                              % 尺度参数

% 使用 makedist 创建 Nakagami 分布对象
NakagamiDist = makedist('Nakagami', 'm', m, 'Omega', Omega);

% 生成随机变量
N = 10000;                              % 随机变量的数量
X = random(NakagamiDist, N, 1);         % 生成 N 个随机样本
figure(1)
histogram(X,nbins,'Normalization','pdf','DisplayStyle','bar');

%% nakagami分布的概率密度的理论值
% Nakagami分布的参数
m = 1;
Omega = 2;

% nakagami分布的概率密度的理论表达式
x = 0.01:0.01:3;
f = (2*m.^m./(gamma(m).*Omega^m)) .* x.^(2*m-1) .* exp(-m*x.^2./Omega);
figure()
plot(x,f,'LineWidth',1.5)
title('Nakagami分布的概率密度')
legend('概率密度函数的估计值','概率密度函数的理论值')

2.运行结果

二、传输信号经过衰落信道

与瑞利衰落和莱斯衰落一样,得到服从Nakagami分布的随机序列后,与传输信号相乘即可得到原信号的Nakagami衰落版本:

rx = tx .* X;


相关推荐
dlraba8021 小时前
机器学习-----K-means算法介绍
算法·机器学习·kmeans
WSSWWWSSW2 小时前
Numpy科学计算与数据分析:Numpy文件操作入门之数组数据的读取和保存
开发语言·python·数据挖掘·数据分析·numpy
芥子须弥Office2 小时前
从C++0基础到C++入门 (第二十五节:指针【所占内存空间】)
c语言·开发语言·c++·笔记
啊阿狸不会拉杆2 小时前
《算法导论》第 14 章 - 数据结构的扩张
数据结构·c++·算法·排序算法
Q741_1473 小时前
如何判断一个数是 2 的幂 / 3 的幂 / 4 的幂 / n 的幂 位运算 总结和思考 每日一题 C++的题解与思路
开发语言·c++·算法·leetcode·位运算·总结思考
小王爱学人工智能3 小时前
快速了解DBSCAN算法
算法·机器学习·支持向量机
半瓶啤酒一醉方休4 小时前
C# 查询电脑已安装所有软件并打印txt保存到桌面
开发语言·c#
钢铁男儿4 小时前
深入解析C#并行编程:从并行循环到异步编程模式
开发语言·c#
小沈同学呀4 小时前
阿里巴巴高级Java工程师面试算法真题解析:LRU Cache实现
java·算法·面试
我今晚不熬夜4 小时前
使用单调栈解决力扣第42题--接雨水
java·数据结构·算法·leetcode