0% found this document useful (0 votes)
13 views7 pages

Oqpsk Multipath

Uploaded by

Kübra Gökalp
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views7 pages

Oqpsk Multipath

Uploaded by

Kübra Gökalp
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

clearvars;clc;

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);

amplit=[0.227 0.460 0.688 0.460 0.227];

for i=1:5

amplit(i)=amplit(i)/8;

end

r1 = 2 * (randi([0, 1]) - 0.5);

r2 = 2 * (randi([0, 1]) - 0.5);

for k = 1:NSYM

if mod(k, 2) == 1

r2 = 2 * (randi([0, 1]) - 0.5);

else

r1 = 2 * (randi([0, 1]) - 0.5);

end

Tx_data(k) = complex(r1, r2);

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

if (real(xu(k)) > 0 && imag(xu(k)) > 0)

rx(k)=complex(1,1);

end

if (real(xu(k)) > 0 && imag(xu(k)) < 0)

rx(k)=complex(1,-1);

end

if (real(xu(k)) < 0 && imag(xu(k)) > 0)

rx(k)=complex(-1,1);

end

if (real(xu(k)) < 0 && imag(xu(k)) < 0)

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

hata = hata + sum(imag(Tx_data(k-12)) ~= imag(rx(k)));

else

hata = hata + sum(real(Tx_data(k-12)) ~= real(rx(k)));

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

You might also like