Professional Documents
Culture Documents
Department
Of
School of Electrical Sciences
The Summer Internship Project entitled MULTI user MIMO by Amit Kumar
for the purpose of Internship Certificate.
Signature
______________
DECLARATION
I am aware of the Institutes policy on plagiarism and I certify that this piece of
work is my own with all sources fully acknowledged.
______________
Acknowledgment
Myself AMIT KUMAR summer intern of Multiuser MIMO is over
whelmed in all humbleness and gratefulness to acknowledge my
sincere thanks to all those who have helped me to put my ideas and
assigned work, well above the level of simplicity and into
something concrete.
ABSTRACT
The channel modelling is an important part of mobile radio
communication. The channel simulators help us to study how
real world mobile communication systems behave in
effective and efficient manner.
In this project I have discussed in detail about MIMO
channel, MIMO channel modelling and I have implemented
MIMO concept on optical fibre.
My first part of project is mainly focused on modelling of
MIMO channel, where statistical properties of a MIMO
channel is discussed mainly using one ring geometrical
model and PAS models. In one ring geometrical model
isotropic scattering condition is assumed [4], high accuracy
of the simulation model is demonstrated by comparing its
statistical properties with those of the underlying reference
model.
Since in MIMO system signal propagates over multipath so
at the receiver side delayed version of same signal is
received therefore study of spatial correlation between
signals is very important. In fact, a mathematical analysis
for spatial correlation requires a distribution of PAS for the
real environments channel [2] as indoor, outdoor, microcell,
macro cell. Therefore, various PAS models are discussed and
their results are simulated using MATLAB.
In the second part of this project MIMO channel
implemented on optical fibre using wavelength division
multiplexing technique and to increase Q value of output
signal at 180km distance, equalizer is used .Here back
propagation algorithm is used to realise equalizer.
INTRODUCTION
MIMO is sending and receiving multiple signals
simultaneously by using array of antennas at both
transmitter and receiver sides.22MIMO means system
can support 2 channel and 2 antennas it have. By using
spatial diversity technique MIMO systems increase data
rate in limited available bandwidth as well increases
channel capacity.
MIMO system typically consists of M T transmit and M R
receive antennas by using same channel, every antenna
receives not only direct component intended for it but
also indirect component intended for other antennas.
The direct component from antenna 1 to antenna 1 is
specifi ed with h 1 1 and indirect connection from antenna
1 to 2 is defi ned as cross component h 2 1 .
The fi gure below shows the fundamental concept of
MIMO system [1].
CHANNEL MODELLING
Modelling a channel is calculating all physical processing which
are affecting a signal from transmitter to the receiver. Initially some
basic faded channel modelling is described later on MIMO channel
modelling is studied.
Mainly, most of the channel model simulators are implemented
based on the sum-of-sinusoids principle which is first introduced by
Rice and then developed later. Starting from the idea that each
signal can be expressed under sum-of-sinusoids, we assumed that
any model type is able to be implemented following the sum-ofsinusoids principle. In mobile channel modelling, we begin from
fundamental channel models which are Rayleigh and Rice models.
Thus, these two latter are the result of the sum of two Gaussian
processes. Here, the Gaussian process is structured as follow: for
reference model N is infinite. [6]
5.
Simulation of
sample function
Fixed parameters
E{.}
1.
Reference model
Infinite complexity
Ni (
)
Infinite no of samples
E{.}
Time
avarage
<.>
2.
Stochastic SOS
simulation model
3.
Deterministic SOS
simulation model
Ni 10)
Finite complexity
(
Infinite no of samples
Finite complexity
Ni 10)
(
One sample function
Where;
b s : Antenna element spacing at base station
m s : Antenna element spacing at mobile station
b s : Multi-element antenna tilt angle at base station
m s : Multi-element antenna tilt angle at mobile station
v : Angle of motion
n b s : Angle of departure at base station
n m s : Angle of arrival at mobile station
D: The distance between the base station and the mobile station
R: Radius of the ring of scatters around the mobile station
If the number of scatterers N approaches to then discrete AOA
nms becomes continuous random variables with a given
distribution p(ms),e.g. The uniform distribution, the Von Mises
distribution, the Laplacian distribution.
Since at base station and at mobile station 2 element antenna is used
therefore channel matrix can be given as [1]
H(t)=[h i j (t)]=
h 11(t) h 12(t)
h21( t) h 22(t)
The matrix elements are the channel gains for every antenna
element at the base station towards every antenna element at the
mobile station and mathematically they can be written as [1]
h 1 1 (t) =
h 1 2 (t) =
1
lim
N
N
1
lim
N
N
a b e
n 1
N
n n
j ( 2 f nt n )
j ( 2 f nt n )
a
b
e
n n
n 1
h 2 1 (t) =
h 2 2 (t) =
1
lim
N
N
1
lim
N
N
a b
n 1
n n
e j ( 2 f nt n )
an bn e j (2 fnt n )
n 1
lim
1
N
a
n 1
2
n
bn2 e j 2 f n
a n2 ( BS )bn2 ( MS )e j 2f n p ( MS )d MS
PAS model
PAS is an important factor in determining the spatial correlation
between antenna elements.
For different channel environment there are various PAS model [2]1. n t h power of cosine pas model- here PAS is expressed in n t h power
of cosine function,2.uniform PAS model is useful in rich scattering
environment such as indoor , 3. The Truncated Laplacian PAS model
is commonly employed for macro cell or microcell environments.
MATLAB CODE & SIMULATION RESULTS
1. PERFORMANCE EVALUATIONIn this section, we assess the accuracy of the proposed stochastic
simulation model by comparing its statistical properties with those
of the reference model.
1. Comparison of time ACF
The transmit correlation function of the reference model and the
corresponding correlation function of the stochastic simulation
model are presented in first simulation result. Notice that the
presented results not only confirm the theory but they visualize as
well that the approximation
Time ACF (simulation) Time ACF (reference) is excellent in the
range of 0 to tau (max) = 0.08
MATLAB code:
1. Comparison of Time ACF of reference model and simulation model
N=25;
f_max=91;
k=10;
phi_0=pi/ (2*N);
alphav=pi/12;
tau=linspace(0,0.1,200);
phiMS=linspace(-pi,pi,100);
von_mises=exp(k*cos(phiMS-phi_0))/(2*pi*besseli(0,k));
ACF_reference= zeros(200);
ACF_simulation= zeros(200);
phi=zeros(N,1);
for n=1:N
phi(n)=(1/N)*2*pi*n-0.5*pi/N;
end
for k=1:length(tau)
ACF_reference(k)=trapz(phiMS,exp(-sqrt(1)*2*pi*f_max*cos(phiMS-.alphav).*tau(k)).*von_mises);
ACF_simulation(k)=sum(exp(-sqrt(-1).*2.*pi.*f_max.*cos(phi-
alphav).*tau(k)))/length(phi);
end
plot(tau,ACF_reference, 'r',tau,ACF_simulation,'--')
legend ('ACF reference','ACF simulation')
ylabel('time autocorrelation function' )
xlabel('time seperation')
2.2D SPACE CCF of reference model
N=25;
k=10;
mu_0=pi/(2*N);
f_max=91;
t=1;
tau=linspace(0,N/182,30);
mu_0=pi/(2*N);
phiBS_max=pi/90;
alphaBS=pi/2;
alphaMS=pi/2;
deltaBS=linspace(0,30,30);
deltaMS=linspace(0,3,30);
phiMS=linspace(-pi,pi,25);
phi_NMS=zeros(N,1);
von_mises=exp(k*cos(alphaMS-mu_0))/(2*pi*besseli(0,k));
CCF_reference=zeros(length(deltaBS),length(deltaMS));
for n=1:N
phi_NMS(n)=(1/N)*2*pi*n-0.5*pi/N;
end
for q=1:length(deltaBS)
for g=1:length(deltaMS)
a=exp(sqrt(-1).*pi.*deltaBS(q).*(cos(alphaBS)
+phiBS_max.*sin(alphaBS).*sin(phi_NMS)));
b=exp(sqrt(-1).*pi.*deltaMS(g).*cos(phi_NMS-alphaMS));
CCF_reference(q,g)=trapz(phiMS,a.^2.*b.^2.*von_mises);
end
end
surf(real(CCF_reference));
set(gca,'YDir','reverse');
title('2D space CCF OF reference model' )
ylabel('deltaMS/lambda')
xlabel('deltaBS/lambda')
zlabel('2D space CCF')
deltaBS=linspace(0,25,30);
deltaMS=linspace(0,3,30);
phiMS=linspace(-pi,pi,25);
phi_NMS=zeros(N,1);
von_mises=exp(k*cos(alphaMS-mu_0))/(2*pi*besseli(0,k));
for n=1:N
phi_NMS(n)=(1/N)*2*pi*n-0.5*pi/N;
end
CCF_simulation=zeros(length(deltaBS),length(deltaMS));
for q=1:length(deltaBS)
for g=1:length(deltaMS)
aa=exp(sqrt(-1).*pi.*deltaBS(q).*(cos(alphaBS)
+phiBS_max.*sin(alphaBS).*sin(phi_NMS)));
bb=exp(sqrt(-1).*pi.*deltaMS(g).*cos(phi_NMS-alphaMS));
CCF_simulation(q,g)=sum(aa.^2.*bb.^2)/length(phi_NMS);
end
end
surf(real(CCF_simulation));
set(gca,'YDir','reverse');
title('2D space CCF OF simulation model')
ylabel('deltaMS/lambda')
xlabel('deltaBS/lambda')
zlabel('2D space CCF')
4.Simulation of mimo channels :channel capacity
N=200;
SNR=10^(17/10);
alphaBS=pi/2;
alphaMS=pi/2;
f_max=91;
alphaV=pi/12;
phiBS_max=pi/90;
tau=linspace(0,0.5,200);
theta= 0 + (2*pi-0).*rand(length(tau),1);
phi_MS=zeros(N,1);
a=zeros(N,1);
b=zeros(N,1);
f=zeros(N,1);
h11=zeros(length(tau),1);
h12=zeros(length(tau),1);
h21=zeros(length(tau),1);
h22=zeros(length(tau),1);
X(n)=zeros(length(N),1);
Y(n)=zeros(length(N),1);
Z(n)=zeros(length(N),1);
V(n)=zeros(length(N),1);
cap11=zeros(N,1);
for n=1:N
phi_MS(n)=(1/N)*2*pi*n-0.5*pi/N;
end
for n=1:N
a(n)=exp(sqrt(-1)*pi*0.5*(cos(alphaBS)
+phiBS_max*sin(alphaBS)*sin(phi_MS(n))));
b(n)=exp(sqrt(-1)*pi*0.5*cos(phi_MS(n)-alphaMS));
f(n)=f_max*cos(phi_MS(n)-alphaV);
end
for n=1:N
X(n)=a(n).*b(n);
Y(n)=a(n)'.*b(n);
Z(n)=a(n).*b(n)';
V(n)=a(n)'.*b(n)';
end
for t=1:length(tau)
h11(t)=sum(X*exp(sqrt(-1)*(2*pi.*f*t+theta)))/sqrt(N);
h12(t)=sum(Y*exp(sqrt(-1)*(2*pi.*f*t+theta)))/sqrt(N);
h21(t)=sum(Z*exp(sqrt(-1)*(2*pi.*f*t+theta)))/sqrt(N);
h22(t)=sum(V*exp(sqrt(-1)*(2*pi.*f*t+theta)))/sqrt(N);
end
I=eye(2);
H=[h11 h12;h21 h22];
for i=1:N
cap11(i)=log(det(I+SNR/2*(H(i)')*(H(i))))/(2*log(2));
end
plot(tau,cap11)
PAS MODELS
5.N-th power cosine function PAS model
phi=linspace(-100,100,100);
n1=2;n2=4;n3=8;
f1 = @(x) (cos(x)).^n1;
Q1 = integral(f1,-pi/2,pi/2);
f2 = @(x) (cos(x)).^n2;
Q2 = integral(f2,-pi/2,pi/2);
f3 = @(x) (cos(x)).^n3;
Q3= integral(f3,-pi/2,pi/2);
Y=degtorad(phi);
m1=((cos(Y)).^n1)./Q3;
m2=((cos(Y)).^n2)./Q3;
m3=((cos(Y)).^n3)./Q3;
plot(phi,m1,phi,m2,'--',phi,m3,':')
legend('n=2','n=4','n=8')
title('nth power of cosine function for pas model')
ylabel('power azimuth spectrum');
xlabel('phi')
6.UNIFORM PAS model
PAS
phi=linspace(-200 ,200,100);
y1= degtorad(10);
y2= degtorad(30);
q1=1/(2*sqrt(3)*y1);
pas1=q1*rectangularPulse(-25,25,phi);
q2=1/(2*sqrt(3)*y2);
pas2=q2*rectangularPulse(-50,50,phi);
plot(phi,pas1,phi,pas2,'--')
grid on
legend('as=10','as=30')
title('Uniform PAS, AoA=0[degree]')
xlabel('phi [degree]')
ylabel('P(phi)')
7.UNIFORM PAS model
spatial correlation coefficient
x=linspace(0,6,250);
phi_0=degtorad(0);
as1=degtorad(10);
as2=degtorad(30);
Q1=1/(2*sqrt(3)*as1);
Q2=1/(2*sqrt(3)*as2);
delta_phi1=sqrt(3)*as1;
delta_phi2=sqrt(3)*as2;
sum1=zeros(1,250);
sum2=zeros(1,250);
for m=1:250
sum1=sum1+
(besselj(2*m,2*pi*x))*(cos(2*m*phi_0))*(sin(2*m*delta_phi1)/(2*m));
end
for m=1:250
sum2=sum2+
(besselj(2*m,2*pi*x))*(cos(2*m*phi_0))*(sin(2*m*delta_phi2)/(2*m));
end
Rxx1=besselj(0,2*pi*x)+4*Q1.*sum1;
Rxx2=besselj(0,2*pi*x)+4*Q2.*sum2;
plot(x,abs(Rxx1),x,abs(Rxx2),'--')
grid on
legend('AS=10(degree)','AS=30(degree)')
title('Uniform PAS model- spatial correlation coeff.')
xlabel('d/lambda')
ylabel('|Rxx|')
8.Trucated Gaussian PAS
PAS
deltaphi=180;
phi1=linspace(-200,200,400);
phi=degtorad(phi1)
phi_0=degtorad(0);
sigma1=degtorad(30);
p1=
((1/erf(deltaphi/(sqrt(2)*sigma1)))/(sqrt(2*pi)*sigma1))*exp(-(phiphi_0).^2/(2*sigma1.^2));
sigma2=degtorad(10);
p2=
((1/erf(deltaphi/(sqrt(2)*sigma2)))/(sqrt(2*pi)*sigma2))*exp(-(phiphi_0).^2/(2*sigma2.^2));
plot(phi1,p2,phi1,p1,'--')
legend('AS=10[DEGREE]','AS=30[degree]')
xlabel('phi(degree)');
ylabel('power azimuth spectral')
title('Truncated gaussian PAS')
9.Trucated Gaussian PAS model
clf
x=linspace(0,6,250);
delta_phi=pi;
phi_0=degtorad(0);
sum1=zeros(1,250);
sum2=zeros(1,250);
sigma1=degtorad(10);
sigma2=degtorad(30);
q1=1/erf(pi/(sqrt(2)*sigma1));
q2=1/erf(pi/(sqrt(2)*sigma2));
for m=1:250
sum1=sum1+
(besselj(2*m,2*pi.*x)).*(exp(2*sigma1^2*m.^2))*(cos(2*m*phi_0))*(erf(pi/
(sigma1*sqrt(2)))-erf(-pi/(sigma1*sqrt(2))));
end
rxx1=(besselj(0,2*pi.*x))+(q1.*sum1);
for m=1:250
sum2=sum2+
(besselj(2*m,2*pi.*x)).*(exp(2*sigma2^2*m.^2))*(cos(2*m*phi_0))*(erf(pi/
(sigma2*sqrt(2)))-erf(-pi/(sigma2*sqrt(2))));
end
rxx2=(besselj(0,2*pi.*x))+(q2.*sum2);
plot(x,abs(rxx1),x,abs(rxx2),'--')
grid on
legend('AS=10(degree)','AS=30(degree)')
title('Truncated Gaussian PAS model spatial correlation coeff.')
xlabel('d/lambda')
ylabel('|Rxx|')
10.truncated laplacian model
pas
deltaphi=degtorad(180);
phi1=linspace(-200,200,400);
phi=degtorad(phi1);
phi_0=degtorad(0);
sigma1=degtorad(10);
p1=((1/(1-exp(-sqrt(2)*deltaphi/sigma1)))/(sqrt(2)*sigma1))*(exp((sqrt(2)*abs(phi-phi_0))/sigma1));
sigma2=degtorad(30);
p2=((1/(1-exp(-sqrt(2)*deltaphi/sigma2)))/(sqrt(2)*sigma2))*(exp((sqrt(2)*abs(phi-phi_0))/sigma2));
plot(phi1,p1,phi1,p2,'--')
grid on
legend('AS=10[DEGREE]','AS=30[degree]')
xlabel('phi(degree)');
ylabel('power azimuth spectral')
title('Truncated laplacian PAS')
ylabel('|Rxx|')
SIMULATION RESULTS OF MATLAB
1.comparision of Time ACF of reference model and simulation model
2
BACK PROPAGATION ALGORITHM:
In simple terms back propagation is like learning from mistakes.
Here, for some given inputs, we know (label) the desired/expected
output .
Initially all the edge weights are randomly assigned. For every input
in the training dataset, the ANN is activated and its output is
observed. This output is compared with the desired output that we
already know, and the error is "propagated" back to the previous
layer. This error is noted and the weights are "adjusted"
accordingly. This process is repeated until the output error is below
a predetermined threshold.
1. First apply the inputs to the network and work out the output
remember this initial output could be anything, as the initial weights
were random numbers.
2. Next work out the error for neuron B. The error is What you want
What you actually get, in other words: ErrorB = OutputB (1OutputB)(TargetB OutputB) The Output(1-Output) term is
necessary in the equation because of the Sigmoid Function if we
were only using a threshold neuron it would just be (Target
Output).
3. Change the weight. Let W + AB be the new (trained) weight and
WAB be the initial weight. W + AB = WAB + (ErrorB x OutputA)
Notice that it is the output of the connecting neuron (neuron A) we
use (not B). We update all the weights in the output layer in this
way.
4. Calculate the Errors for the hidden layer neurons. Unlike the
output layer we cant calculate these directly (because we dont
have a Target), so we Back Propagate them from the output layer
(hence the name of the algorithm). This is done by taking the Errors
from the output neurons and running them back through the weights
to get the hidden layer errors. For example if neuron A is connected
as shown to B and C then we take the errors from B and C to
generate an error for A. ErrorA = Output A (1 - Output A)(ErrorB
WAB + ErrorC WAC) Again, the factor Output (1 - Output ) is
present because of the sigmoid squashing function.
5. Having obtained the Error for the hidden layer neurons now
proceed as in stage 3 to change the hidden layer weights. By
repeating this method we can train a network of any number of
layers .since threshold error should be as low as possible therefore
in my code I have taken threshold error as 0.07;
MATLAB code used in SINGLE CHANNEL and for first four cases.
OutputPort1=InputPort1;
inp=InputPort1.Sa mpled.Signal;
target=InputPort2.Sa mpled.Signal;
inp=10*inp;
target=10*target;
inp1=real(inp);
inp2=i mag(inp);
targ1=real(target);
targ2=i ma g(target);
len=length(inp1);
for i=1:len
if targ1(i)<0
sign1(i)=-1;
else
sign1(i)=+1;
end
end
for i=1:len
if targ2(i)<0
sign2(i)=-1;
else
sign2(i)=+1;
end
end
inp1=abs(inp1);
inp2=abs(inp2);
targ1=abs(targ1);
targ2=abs(targ2);
finout=zeros(1,len);
finout1=zeros(1,len);
eta=0.98;
wij=[0 0 0];
wjk=[0 0 0];
bias=[0.051 0.052 0.053];
c=1;
coun=1;
for i=1:len
while c
if inp1(i)~=targ1(i)
%output calculation
inpij=(inp1(i)*wij)+bias;
for l=1:3
outj(l)=(1/(1+exp(-inpij(l))));
end
inpjk=outj*wjk';
outk=(1/(1+exp(-inpjk)));
%error calculation
ek=targ1(i)-outk;
delk=outk*(1-outk)*(outk-targ1(i));
for l=1:3
delj(l)=outj(l)*(1-outj(l))*delk*wjk(l);
end
%weight updation
for l=1:3
delwjk(l)=(-eta)*delk*outj(l);
wjk(l)=wjk(l)+delwjk(l);
end
for l=1:3
delwij(l)=(-eta)*delj(l)*inp1(i);
wij(l)=wij(l)+delwij(l);
end
for l=1:3
delbias(l)=(-eta)*delj(l);
bias(l)=bias(l)+delbias(l);
end
coun=coun+1;
ek=abs(ek);
if coun==5000
wij=[1.5 2.5 3.5];wjk=[1.55 2.55 3.55]; bias=[1.1 1.2 1.3];
end
if coun==50000;
wij=[10.5 11.5 12.5];wjk=[15.55 20.55 25.55];bias=[5.1 5.2 5.3];
end
%displa y(ek);
if ek>=0 && ek<=0.0040 || coun>=1000000
c=0; finout(i)=outk;
end
else
c=0;
finout(i)=targ1(i);
%displa y(finout);
end
end
coun=1;
c=1;
end
wij=[0 0 0];wjk=[0 0 0];bias=[0.051 0.052 0.053];
c=1;
coun=1;
for i=1:len
while c
if inp2(i)~=targ2(i)
%output calculation
inpij=inp2(i)*wij;
for l=1:3
outj(l)=(1/(1+exp(-inpij(l))));
end
inpjk=outj*wjk';
outk=(1/(1+exp(-inpjk)));
%error calculation
ek=targ2(i)-outk;
delk=outk*(1-outk)*(outk-targ2(i));
for l=1:3
delj(l)=outj(l)*(1-outj(l))*delk*wjk(l);
end
%weight updation
for l=1:3
delwjk(l)=(-eta)*delk*outj(l);
wjk(l)=wjk(l)+delwjk(l);
end
for l=1:3
delwij(l)=(-eta)*delj(l)*inp2(i);
wij(l)=wij(l)+delwij(l);
end
for l=1:3
delbias(l)=(-eta)*delj(l);
bias(l)=bias(l)+delbias(l);
end
coun=coun+1;
ek=abs(ek);
if coun==5000
wij=[1.5 2.5 3.5];
wjk=[1.55 2.55 3.55];
bias=[1.1 1.2 1.3];
end
if coun==50000;
wij=[10.5 11.5 12.5];wjk=[10.55 11.55 12.55]; bias=[5.1 5.2 5.3];
end
if ek>=0 && ek<=0.004 || coun>=1000000
c=0;
finout1(i)=outk;
end
else
c=0;
finout1(i)=targ1(i);
%displa y(finout1);
end
end
coun=1;
c=1;
end
finout=finout.*sign1;
finout1=finout1.*sign2;finout1=(0+1i)*finout1;
finout=finout+finout1;finout=0.1*finout;
OutputPort1.Sa mpled.Signal=finout;
Simulation Results
CASE1: single channel with & without equalizer for fiber length 180km.
LAYOUT DIAGRAM
CASE2: MIMO without equalizer & without amplifier for 180km length of
fiber
LAYOUT
F=193.1THz
193.2 THz
193.3 THz
193.4
THz
193.1 THz
193.2 THz
193.3 THz
193.4 THz
CASE4: MIMO
amplification
with
equalizer
and
amplifier
with
inline
193.1 THz
193.2 THz
193.3 THz
193.4 THz
end
if f==193.2
for i=1:len2
if targ7(i)<0
sign3(i)=-1;
else
sign3(i)=+1;
end
end
for i=1:len2
if targ8(i)<0
sign4(i)=-1;
else
sign4(i)=+1;
end
end
end
if f ==193.3
for i=1:len3
if targ9(i)<0
sign5(i)=-1;
else
sign5(i)=+1;
end
end
for i=1:len3
if targ10(i)<0
sign6(i)=-1;
else
sign6(i)=+1;
end
end
end
if f==193.4
for i=1:len4
if targ11(i)<0
sign7(i)=-1;
else
sign7(i)=+1;
end
end
for i=1:len4
if targ12(i)<0
sign8(i)=-1;
else
sign8(i)=+1;
end
end
end
inp5=abs(inp5);inp6=abs(inp6);inp7=abs(inp7);inp8=abs(inp8);inp9=abs(inp9);inp10=abs(inp10);
inp11=abs(inp11);inp12=abs(inp12);targ5=abs(targ5);targ6=abs(targ6);targ7=abs(targ7);
targ8=abs(targ8);targ9=abs(targ9);targ10=abs(targ10);targ11=abs(targ11);targ12=abs(targ12);
finout=zeros(1,len1);finout1=zeros(1,len1);finout2=zeros(1,len2);finout3=zeros(1,len2);
finout4=zeros(1,len3);finout5=zeros(1,len3);finout6=zeros(1,len4);finout7=zeros(1,len4);
eta=0.98;wij=[0 0 0];wjk=[0 0 0];bias=[0.051 0.052 0.053];c=1;coun=1;
if f==193.1
for i=1:len1
while c
if inp5(i)~=targ5(i)
inpij=(inp5(i)*wij)+bias;
for l=1:3
outj(l)=(1/(1+exp(-inpij(l))));
end
inpjk=outj*wjk'; outk=(1/(1+exp(-inpjk))); ek=targ5(i)-outk;delk=outk*(1-outk)*(outk-targ5(i));
for l=1:3
delj(l)=outj(l)*(1-outj(l))*delk*wjk(l);
end
for l=1:3
delwjk(l)=(-eta)*delk*outj(l);wjk(l)=wjk(l)+delwjk(l);
end
for l=1:3
delwij(l)=(-eta)*delj(l)*inp5(i); wij(l)=wij(l)+delwij(l);
end
for l=1:3
delbias(l)=(-eta)*delj(l);bias(l)=bias(l)+delbias(l);
end
coun=coun+1; ek=abs(ek);
if coun==5000
wij=[1.5 2.5 3.5]; wjk=[1.55 2.55 3.55];bias=[1.1 1.2 1.3];
end
if coun==50000;
wij=[10.5 11.5 12.5]; wjk=[15.55 20.55 25.55];bias=[5.1 5.2 5.3];
end
if ek>=0 && ek<=0.0040 || coun>=1000000
c=0;finout(i)=outk;
end
else
c=0;finout(i)=targ5(i);
end
end
coun=1; c=1;
end
wij=[0 0 0];wjk=[0 0 0];bias=[0.051 0.052 0.053];c=1;coun=1;
for i=1:len1
while c
if inp6(i)~=targ6(i)
inpij=inp6(i)*wij;
for l=1:3
outj(l)=(1/(1+exp(-inpij(l))));
end
inpjk=outj*wjk; outk=(1/(1+exp(-inpjk)));
ek=targ6(i)-outk;delk=outk*(1-outk)*(outk-targ6(i));
for l=1:3
delj(l)=outj(l)*(1-outj(l))*delk*wjk(l);
end
for l=1:3
delwjk(l)=(-eta)*delk*outj(l);wjk(l)=wjk(l)+delwjk(l);
end
for l=1:3
delwij(l)=(-eta)*delj(l)*inp6(i); wij(l)=wij(l)+delwij(l);
end
for l=1:3
delbias(l)=(-eta)*delj(l);bias(l)=bias(l)+delbias(l);
end
coun=coun+1;ek=abs(ek);
if coun==5000
wij=[1.5 2.5 3.5]; wjk=[1.55 2.55 3.55];bias=[1.1 1.2 1.3];
end
if coun==50000;
wij=[10.5 11.5 12.5];wjk=[10.55 11.55 12.55];
delj(l)=outj(l)*(1-outj(l))*delk*wjk(l);
end
for l=1:3
delwjk(l)=(-eta)*delk*outj(l);wjk(l)=wjk(l)+delwjk(l);
end
for l=1:3
delwij(l)=(-eta)*delj(l)*inp8(i);wij(l)=wij(l)+delwij(l);
end
for l=1:3
delbias(l)=(-eta)*delj(l); bias(l)=bias(l)+delbias(l);
end
coun=coun+1; ek=abs(ek);
if coun==5000
wij=[1.5 2.5 3.5]; wjk=[1.55 2.55 3.55];bias=[1.1 1.2 1.3]
end
if coun==50000;
wij=[10.5 11.5 12.5];wjk=[10.55 11.55 12.55];bias=[5.1 5.2 5.3];
end
if ek>=0 && ek<=0.004 || coun>=1000000
c=0;finout3(i)=outk;
end
else
c=0;
finout3(i)=targ8(i);
end
end
coun=1; c=1;
end
end
if f==193.3
for i=1:len3
while c
if inp9(i)~=targ9(i)
inpij=(inp9(i)*wij)+bias;
for l=1:3
outj(l)=(1/(1+exp(-inpij(l))));
end
inpjk=outj*wjk'; outk=(1/(1+exp(-inpjk))); ek=targ9(i)-outk; delk=outk*(1-outk)*(outk-targ9(i));
for l=1:3
delj(l)=outj(l)*(1-outj(l))*delk*wjk(l);
end
for l=1:3
delwjk(l)=(-eta)*delk*outj(l); wjk(l)=wjk(l)+delwjk(l);
end
for l=1:3
delwij(l)=(-eta)*delj(l)*inp9(i);
wij(l)=wij(l)+delwij(l);
end
for l=1:3
delbias(l)=(-eta)*delj(l); bias(l)=bias(l)+delbias(l);
end
coun=coun+1; ek=abs(ek);
if coun==5000
wij=[1.5 2.5 3.5];wjk=[1.55 2.55 3.55];bias=[1.1 1.2 1.3];
end
if coun==50000;
wij=[10.5 11.5 12.5];wjk=[15.55 20.55 25.55]; bias=[5.1 5.2 5.3];
end
if ek>=0 && ek<=0.0040 || coun>=1000000
c=0;finout4(i)=outk;
end
else
c=0;
finout4(i)=targ9(i);
end
end
coun=1;
c=1;
end
wij=[0 0 0];
wjk=[0 0 0];
bias=[0.051 0.052 0.053];
c=1;
coun=1;
for i=1:len3
while c
if inp10(i)~=targ10(i)
inpij=inp10(i)*wij;
for l=1:3
outj(l)=(1/(1+exp(-inpij(l))));
end
inpjk=outj*wjk'; outk=(1/(1+exp(-inpjk)));ek=targ10(i)-outk;delk=outk*(1-outk)*(outk-targ10(i));
for l=1:3
delj(l)=outj(l)*(1-outj(l))*delk*wjk(l);
end
for l=1:3
delwjk(l)=(-eta)*delk*outj(l); wjk(l)=wjk(l)+delwjk(l);
end
for l=1:3
delwij(l)=(-eta)*delj(l)*inp10(i);wij(l)=wij(l)+delwij(l);
end
for l=1:3
delbias(l)=(-eta)*delj(l);bias(l)=bias(l)+delbias(l);
end
coun=coun+1; ek=abs(ek);
if coun==5000
wij=[1.5 2.5 3.5]; wjk=[1.55 2.55 3.55];bias=[1.1 1.2 1.3];
end
if coun==50000;
wij=[10.5 11.5 12.5]; wjk=[10.55 11.55 12.55];bias=[5.1 5.2 5.3];
end
if ek>=0 && ek<=0.004 || coun>=1000000
c=0;finout5(i)=outk;
end
else
c=0; finout5(i)=targ10(i);
end
end
coun=1; c=1;
end
end
if f==193.4
for i=1:len4
while c
if inp11(i)~=targ11(i)
inpij=(inp11(i)*wij)+bias;
for l=1:3
outj(l)=(1/(1+exp(-inpij(l))));
end
inpjk=outj*wjk'; outk=(1/(1+exp(-inpjk)));ek=targ11(i)-outk;delk=outk*(1-outk)*(outk-targ11(i));
for l=1:3
delj(l)=outj(l)*(1-outj(l))*delk*wjk(l);
end
for l=1:3
delwjk(l)=(-eta)*delk*outj(l);wjk(l)=wjk(l)+delwjk(l);
end
for l=1:3
delwij(l)=(-eta)*delj(l)*inp11(i); wij(l)=wij(l)+delwij(l);
end
for l=1:3
delbias(l)=(-eta)*delj(l); bias(l)=bias(l)+delbias(l);
end
coun=coun+1; ek=abs(ek);
if coun==5000
wij=[1.5 2.5 3.5]; wjk=[1.55 2.55 3.55]; bias=[1.1 1.2 1.3];
end
if coun==50000;
wij=[10.5 11.5 12.5]; wjk=[15.55 20.55 25.55];bias=[5.1 5.2 5.3];
end;
if ek>=0 && ek<=0.0040 || coun>=1000000
c=0;finout6(i)=outk;
end
else
c=0; finout6(i)=targ11(i);
end
end
coun=1;c=1;
end
wij=[0 0 0];wjk=[0 0 0];bias=[0.051 0.052 0.053];
c=1;coun=1;
for i=1:len4
while c
if inp12(i)~=targ12(i)
inpij=inp12(i)*wij;
for l=1:3
outj(l)=(1/(1+exp(-inpij(l))));
end
inpjk=outj*wjk';outk=(1/(1+exp(-inpjk)));ek=targ12(i)-outk; delk=outk*(1-outk)*(outk-targ12(i));
for l=1:3
delj(l)=outj(l)*(1-outj(l))*delk*wjk(l);
end
for l=1:3
delwjk(l)=(-eta)*delk*outj(l);wjk(l)=wjk(l)+delwjk(l);
end
for l=1:3
delwij(l)=(-eta)*delj(l)*inp12(i);wij(l)=wij(l)+delwij(l);
end
for l=1:3
delbias(l)=(-eta)*delj(l); bias(l)=bias(l)+delbias(l);
end
coun=coun+1;
ek=abs(ek);
if coun==5000
wij=[1.5 2.5 3.5]; wjk=[1.55 2.55 3.55];bias=[1.1 1.2 1.3];
end
if coun==50000;
wij=[10.5 11.5 12.5]; wjk=[10.55 11.55 12.55]; bias=[5.1 5.2 5.3];
end
if ek>=0 && ek<=0.004 || coun>=1000000
c=0; finout7(i)=outk;
else
else
c=0;finout7(i)=targ12(i);
end
end
coun=1; c=1;
end
end
finout=finout.*sign1;finout1=finout1.*sign2;finout2=finout.*sign3;finout3=finout1.*sign4;
finout4=finout.*sign5;finout5=finout1.*sign6;finout6=finout.*sign7;finout7=finout1.*sign8;
finout1=(0+1i)*finout1;finout3=(0+1i)*finout3;finout5=(0+1i)*finout5;finout7=(0+1i)*finout7;
finout=finout+finout1;finout2=finout2+finout3;finout4=finout4+finout5;finout6=finout6+finout7;
finout=0.1*finout;finout2=0.1*finout2;finout4=0.1*finout4;finout6=0.1*finout6;
OutputPort1.Sampled.Signal=finout;
OutputPort2.Sampled.Signal=finout2
;OutputPort3.Sampled.Signal=finout4;OutputPort4.Sampled.Signal=finout6;
th
case since all four frequency components are available
For the 5
simultaneously MATLAB COMPONENT is unable to differentiate between all
4 frequencies components. In my code I have assigned four different block of
codes to corresponding four frequencies .
CONCLUSION
First of all I have studied MIMO channel modelling and simulated statistical
results of various MIMO channel models using MATLAB.I studied
test
scheme is better because here in place 4 EDFA amplifiers only one amplifier is
used makes it economic and Q factor for four outputs is 84, 55.58, 48.51, 63.1
makes output bit error rate low.
REFERENCES