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.