0% found this document useful (0 votes)
5 views18 pages

Indoor VLC Channel Modeling Using MATLAB

The document presents a detailed model for indoor Visible Light Communication (VLC) using MATLAB, focusing on received power analysis and channel modeling. It includes parameters for the transmitter and receiver, noise analysis, and calculations for both Line of Sight (LoS) and Non-Line of Sight (NLoS) channel gains. Additionally, it covers SNR calculations and delay spread, providing a comprehensive framework for simulating VLC systems in indoor environments.

Uploaded by

kumarsachin6983
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views18 pages

Indoor VLC Channel Modeling Using MATLAB

The document presents a detailed model for indoor Visible Light Communication (VLC) using MATLAB, focusing on received power analysis and channel modeling. It includes parameters for the transmitter and receiver, noise analysis, and calculations for both Line of Sight (LoS) and Non-Line of Sight (NLoS) channel gains. Additionally, it covers SNR calculations and delay spread, providing a comprehensive framework for simulating VLC systems in indoor environments.

Uploaded by

kumarsachin6983
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Indoor VLC Channel Modeling using MATLAB

Received Power analysis

System Model

Room Dimensions
Cont.

Transmitter plane

Receiver plane

Source (LED) parameters

Receiver PD parameters

Noise parameters
LED parameters

% Distance between tx and rx ( Meter )


Height of LED = 1.48;
% Transmitter Semi-angle, angle of irradiance in half (Radian)
phi = (30*pi)/180;
% Speed of Light
c = 300E6;
% Time
t = 0:0.01:4;
[XT,YT]=meshgrid([-lx/4 lx/4],[-ly/4 ly/4]); % position of LED;
for one LED simulation located at the central of the room, use XT=0 and YT=0
Room Dimensions

% 3D Meshgrid X-axis and Y-axis %


radius = heightLED * tan(phi);
[X,Y] = meshgrid(-radius:.02:radius);
xydist = sqrt((X).^2 + (Y).^2);
hdist = sqrt(xydist.^2 + heightLED.^2);

%%%%%%%%%%%%%%%%% 2D Meshgrid L-axis %%%%%%%%%%%%%%%%%%%%%


L = -radius:.05:radius;
hdist_2d = sqrt(L.^2 + heightLED.^2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Prec LoS

% Power emitted by LED (W)


PLED = 0.1596;
% FOV (field of view) of detector in half (Radian)
psi_c = (30*pi)/180;
% Detector area, ARX (or photodiode active area) (Meter^2)
ARX = 7.8E-7;
%bandwith of vlc%
BW_vlc = 10E6;
% Photodetect Concentrator refractive index %
n_conc = 1.46;
% Gain of lens %
Tf = 10.0;
Prec NLoS

% Room Size and reflectivity % (Meter)

L = 5;

W = 5;

H = 3;

n_floor = 0.15;

n_wall = 0.7;

n_ceiling = 0.8;
Noise parameters for SNR

% Noise-bandwidth factor %
I2 = 0.562;
% Data rate (Bit per second)
Rb = 115200;
% Ambient light power (Ampere) %
Iamb = 7E-8;
% Photodiode responsivity (A/W )%
R = 0.55;
% Electron charge (C)
q = 1.60E-19;
% Amplifier bandwidth (Hz)%
Ba = 4.5E6;
% Amplifier noise density (Ampere/Hz^0.5)%
Iamf = 5e-12 ;
LoS channel gain

% For Prx_los %
m = -log(2)/log(cos(phi));
% Order of Lambertian emission %
Ro = ((m+1)/(2*pi))*cos(phi)^m;
% Lambertian radiant intensity %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
HLOS = (ARX./hdist.^2).*cos( (incidence*pi) /180)*Ro;
% Channel transfer function %
Prx_los = PLED * HLOS*R^2;
%Received power of LOS ( Watt )%
NLOS Channel gain (Lambertian)

%%%%%%%%%%%%%%%calculation for wall 1%%%%%%%%%%%%%%%%%%


for ii=1:Nx
for jj=1:Ny
RP=[x(ii) y(jj) lz/2];
% receiver position vector
h1(ii,jj)=0;
% reflection from North face
for kk=1:Ny
for ll=1:Nz
WP1=[lx/2 y(kk) z(ll)];
Cont.

% point of incidence in wall


D1=sqrt(dot(TP1-WP1,TP1-WP1));
% distance from transmitter to WP1
cos_phi=abs(WP1(3)-TP1(3))/D1;
cos_alpha=abs(TP1(1)-WP1(1))/D1;
D2=sqrt(dot(WP1-RP,WP1-RP));
% distance from WP1 to receiver
cos_beta=abs(WP1(1)-RP(1))/D2;
cos_psi=abs(WP1(3)-RP(3))/D2;
if abs(acosd(cos_psi))<=FOV
h1(ii,jj)=h1(ii,jj)+(m+1)*Adet*rho*dA*...
cos_phi^m*cos_alpha*cos_beta*cos_psi/(2*pi^2*D1^2*D2^2);
end
%%
NLoS Channel gain (Diffused)

% 3. For Prx_diff %
Aroom = L * W * 2 + L * H * 2 + W * H * 2; % Whole room surface area %
Floor_area = L * W;
Wall1_area = L * H * 4;
Wall2_area = W * H * 2;
Ceiling_area = L * W;
% Surface's areas (Meter^2)%
rho = (1 / Aroom) * (Floor_area * n_floor +Wall1_area * n_wall +
Ceiling_area * n_ceiling ); % Average relectivity %
I1 = PLED / Aroom * rho; % Optical intensity ( Watt/Meter^2 )%
I_total = I1 / ( 1 - rho ); % Total optical intensity %
% Received power of diffusion (Watt)%
Prx_diff = (PLED / ( Aroom ) * rho / ( 1 - rho ) * ARX)*R^2;
Total Received power
% 4. For Prx_total %

g = n_conc^2 / (sin(psi_c)^2); % PD Concentrator Gain %


% Received total power (W) %
Prx_total = ( Prx_los + Prx_diff )*Tf * g;
% With len %
Prx_total_nolen = ( Prx_los + Prx_diff ) * g;
% Without len %
Prx_diff_total = Prx_diff *Tf*g;
% Total received by diffusion %
SNR calculation

% 5. For SNR %

Bn = I2 * Rb; % Noise-bandwidth (Sec^-1)%


Pamb = Iamb / R; % Ambient light power (W) %
% Shot-noise variance ( Ampere^2 )%
omega_shot = 2 * q * R * (Prx_total + Pamb) * Bn;
% Amplifier noise variance ( Ampere^2 )%
omega_amplifier = Iamf^2 * Ba;
%Thermal noise variance
omega_thermal = (8*pi*295*112E-8*1E-3*.562*1E6*1.38E-23)+((16*pi^2*1.38E-23*295*1.5*(112E-
8)^2*1E-8*.56281E12)/.03);
% Total noise variance ( Ampere^2 )%
omega_total = omega_amplifier + omega_shot+omega_thermal;
% SNR %
SNR = (( R * Prx_total )^2)./ omega_total;
Channel gain as a function of PD’s position

4/11/2024 IIITD 14
Received Power
Cont.
Delay Spread

delta_t=1/2;
% time resolution in ns, use in the form of 1/2ˆm
t_vector=0:25/delta_t; % time vector in ns
h_vector=zeros(1,length(t_vector));
% receiver position vector
t_vector=t_vector*delta_t;
mean_delay(ii,jj)=sum((h_vector).^2.*t_vector)/sum(h_vector.^2);
Drms(ii,jj)=sqrt(sum((t_vector-
mean_delay(ii,jj)).^2.*h_vector.^2)/sum(h_vector.^2));
Cont.

You might also like