Free Space Optical communication channel model

19 views (last 30 days)
Ekata Niraula
Ekata Niraula on 11 Aug 2022
Edited: Umeshraja on 18 Nov 2024 at 7:38
How to develop a channel (like awgn) in matlab for free space gamma-gamma model. Or does matlab have any such inbuild channel?
  2 Comments
Edwin
Edwin on 30 Aug 2024
Using Gamma Gamma channel model formula It should be possible to create a function handle

Sign in to comment.

Answers (1)

Umeshraja
Umeshraja on 18 Nov 2024 at 7:37
Edited: Umeshraja on 18 Nov 2024 at 7:38
As per MATLAB R2024b documentation, there are no built-in function to model Gamma-Gamma(GG) channel. The GG Distribution is used in modelling atmospheric turbulence in free-space optical communication channels.
This distribution can be simulated as the product of two independent gamma-distributed random variables: one representing large-scale atmospheric effects and the other representing small-scale atmospheric effects.
You can use the gamrnd function to model the channel, as demonstrated in the code below
alpha = 4;
beta = 2;
num_samples = 10000;
x = linspace(0, 5, 1000);
% Generate samples
gamma1 = gamrnd(alpha, 1/alpha, [1, num_samples]);
gamma2 = gamrnd(beta, 1/beta, [1, num_samples]);
% Generate samples using the fact that Gamma-Gamma is a product of two Gamma RVs
samples = gamma1 .* gamma2;
% Calculate PDF (Refer to the attached research article)
pdf = 2*(alpha*beta)^((alpha+beta)/2) / (gamma(alpha)*gamma(beta)) .* ...
x.^(((alpha+beta)/2)-1) .* ...
besselk(alpha-beta, 2*sqrt(alpha*beta*x));
% PDF plot
subplot(2,1,1);
plot(x, pdf);
title('Probability Density Function');
xlabel('Intensity');
ylabel('PDF');
grid on;
% Histogram of samples
subplot(2,1,2);
histogram(samples, 50, 'Normalization', 'pdf');
hold on;
plot(x, pdf, 'r', 'LineWidth', 2);
title('Histogram of Samples vs PDF');
xlabel('Intensity');
ylabel('Frequency');
grid on;
For a deeper understanding of the mathematical derivations and statistical properties, you might want to refer to the following resource:
Al-Habash, Andrews, and Phillips, "Mathematical model for the irradiance probability density function of a laser beam propagating through turbulent media" (2001)
Additionally, you can refer the following MATLAB documentation on generating gamma random numbers
Hope it helps!

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!