Oqpsk Multipath
Oqpsk Multipath
N=13;NSYM=1000;sigma=5;gain=1;
Tx_data = zeros(1,NSYM);
v = zeros(1,NSYM);
y = zeros(1,NSYM);
xu = zeros(1,NSYM);
rx = zeros(1,NSYM);
f = zeros(1,5);
b = zeros(1,N);
alfa = zeros(5,8);
a = zeros(N,N);
Rx = zeros(1,NSYM);
SNR = zeros(1,20);
BER = zeros(1,20);
for i=1:5
amplit(i)=amplit(i)/8;
end
for k = 1:NSYM
if mod(k, 2) == 1
else
end
end
for g=1:40
g
svk=0;snk=0;hata=0;
for kl=1:1000
for i=1:5
for j=1:8
alfa(i,j)=2*pi*rand();
end
end
for i=1:5
f(i)=0;
for j=1:8
f(i)=f(i)+complex(amplit(i)*cos(alfa(i,j)),amplit(i)*sin(alfa(i,j)));
end
end
d(1)=conj(f(5))*f(1);
d(2)=conj(f(5))*f(2)+conj(f(4))*f(1);
d(3)=conj(f(5))*f(3)+conj(f(4))*f(2)+conj(f(3))*f(1);
d(4)=conj(f(5))*f(4)+conj(f(4))*f(3)+conj(f(3))*f(2)+conj(f(2))*f(1);
d(5)=conj(f(5))*f(5)+conj(f(4))*f(4)+conj(f(3))*f(3)+conj(f(2))*f(2)+conj(f(1))*f(1);
d(6)=conj(f(4))*f(5)+conj(f(3))*f(4)+conj(f(2))*f(3)+conj(f(1))*f(2);
d(7)=conj(f(3))*f(5)+conj(f(2))*f(4)+conj(f(1))*f(3);
d(8)=conj(f(2))*f(5)+conj(f(1))*f(4);
d(9)=conj(f(1))*f(5);
% for i=1:N
% for j=1:N
% a(i,j)=0;
% end
% b(i)=0;
% end
for i=1:5
a(1,i)=d(6-i);
end
for i=1:6
a(2,i)=d(7-i);
end
for i=1:7
a(3,i)=d(8-i);
end
for i=1:8
a(4,i)=d(9-i);
end
for i=1:9
a(5,i)=d(10-i);
end
for i=2:9
a(6,i)=d(11-i);
end
for i=3:9
a(7,i)=d(12-i);
end
for i=4:9
a(8,i)=d(13-i);
end
for i=5:9
a(9,i)=d(14-i);
end
for i=6:9
a(10,i)=d(15-i);
end
for i=7:9
a(11,i)=d(16-i);
end
for i=8:9
a(12,i)=d(17-i);
end
for i=9:9
a(13,i)=d(18-i);
end
a(10,10)=1;a(11,11)=1;a(12,12)=1;a(13,13)=1;b(9)=1;
c=(a^-1)*b';
for i=1:10
Tx_data(i)=0;
xu(i)=0;
v(i)=0;
y(i)=0;
rx(i)=0;
end
for n=0:NSYM-9
k=n+9;
v(k)=0;
for i=1:5
v(k)=v(k)+f(i)*Tx_data(k-i+1);
end
R=sqrt(-2*sigma*log(rand))/(sqrt(2))^g;
U=2*pi*rand();
nu=complex((R*cos(U)),(R*sin(U)));
svk=svk+v(k)*conj(v(k));
snk=snk+nu*conj(nu);
v(k)=v(k)+nu;
y(k)=0;
for i=1:5
y(k)=y(k)+conj(f(6-i))*v(k-i+1);
end
xu(k)=0;
for i=1:9
xu(k)=xu(k)+c(i)*y(k-i+1);
end
for i=10:N
xu(k)=xu(k)+c(i)*xu(k-i+9);
end
rx(k)=complex(1,1);
end
rx(k)=complex(1,-1);
end
rx(k)=complex(-1,1);
end
rx(k)=complex(-1,-1);
end
if (n > 12 )
% hata=hata+((abs(Tx_data(k-12)-rx(k)))^2)/4;
if mod(k, 2) == 1
else
end
end
end
end
SNR(g)=10*log10(svk/snk);
BER(g)=hata/(2*kl*(NSYM-8));
svk=0.;snk=0.;hata=0.;
end
semilogy(SNR,BER);grid;
nu değeri silinince çıkan grafik