(18)MATLAB使用伽马(gamma)分布生成Nakagami-m分布的方法2


前言

MATLAB在R2013a版本中引入Nakagami分布对象,可以用来生成Nakagami随机变量。但是在更早的MATLAB版本中,并没有可以直接生成 Nakagami分布的随机变量的内置的函数。另外,为了深入理解Nakagami分布,有必要研究Nakagami分布的随机变量的生成方法。本文和上一篇文章将给出使用伽马分布生成Nakagami分布随机变量的两种方法。


一、使用伽马分布生成Nakagami分布随机变量的方法二

上一篇文章(17)MATLAB使用伽马(gamma)分布生成Nakagami-m分布的方法1给出了第一种方法。另外,也可以将两个伽马分布的随机变量平方并相加,得到 Nakagami 分布的随机变量。
和复高斯随机变量仿真瑞利衰落信道一样,这种方法可以很方便地生成复伽马分布的随机变量仿真Nakagami衰落信道。
下面给出使用方法二生成Nakagami分布随机变量的MATLAB代码。

二、MATLAB代码

使用伽马分布生成Nakagami分布随机变量的MATLAB代码如下:

clc
clear all
close all

%% 方法二:将两个伽马分布的随机变量平方并相加,得到 Nakagami 分布的随机变量
% Nakagami 分布的参数
m = 1;
Omega = 2;
nakagami_m = m;                                % Nakagami分布的形状参数
nakagami_Omega = Omega;                        % Nakagami分布的尺度参数

% 伽马分布的参数
gamma_shape = nakagami_m / 2;                  % 伽马分布的形状参数
gamma_scale = nakagami_Omega / 2;              % 伽马分布的尺度参数

% 生成伽马分布的随机变量
N = 10000;                                     % 随机变量的数量
X1 = gamrnd(gamma_shape, gamma_scale, N, 1);
X2 = gamrnd(gamma_shape, gamma_scale, N, 1);

% 将两个伽马分布的随机变量平方并相加,得到 Nakagami 分布的随机变量
X_nakagami = sqrt(X1.^2 + X2.^2);
figure()
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('概率密度函数的估计值','概率密度函数的理论值')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值