(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;


相关推荐
故事和你919 小时前
洛谷-数据结构1-1-线性表1
开发语言·数据结构·c++·算法·leetcode·动态规划·图论
脱氧核糖核酸__9 小时前
LeetCode热题100——53.最大子数组和(题解+答案+要点)
数据结构·c++·算法·leetcode
脱氧核糖核酸__10 小时前
LeetCode 热题100——42.接雨水(题目+题解+答案)
数据结构·c++·算法·leetcode
techdashen10 小时前
Rust项目公开征测:Cargo 构建目录新布局方案
开发语言·后端·rust
星空椰10 小时前
JavaScript 进阶基础:函数、作用域与常用技巧总结
开发语言·前端·javascript
忒可君10 小时前
C# winform 自制分页功能
android·开发语言·c#
Rust研习社10 小时前
Rust 智能指针 Cell 与 RefCell 的内部可变性
开发语言·后端·rust
王老师青少年编程10 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【线性扫描贪心】:数列分段 Section I
c++·算法·编程·贪心·csp·信奥赛·线性扫描贪心
王老师青少年编程10 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【线性扫描贪心】:分糖果
c++·算法·贪心算法·csp·信奥赛·线性扫描贪心·分糖果
_日拱一卒11 小时前
LeetCode:2两数相加
算法·leetcode·职场和发展