文章目录
前言
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;