Advertisement
Guest User

Untitled

a guest
May 21st, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.86 KB | None | 0 0
  1. n = 100;
  2. data=rand(1,n)<=0.5;
  3. sigA = 0.1;
  4. sigPhi = 0.1;
  5.  
  6. figure (1)
  7. axis([-2 2 -2 2]) % Wyznaczenie limitu osi
  8. hold on;
  9. title('Wykres 16QAM dla wspolrzednych biegunowych, amplitudy i fazy')
  10. xlabel('A*cos[phi]')
  11. ylabel('Y*sin[phi]')
  12.  
  13. n=length(data);
  14. A=ones(1,n)+normrnd(0,sigA,1,n) % Tworzenie macierzy z szumem
  15. phi=zeros(1,n);
  16. f=70; % czestotliwosc
  17. t=0:1/f:n-1/f;
  18. y=zeros(1,length(t));%
  19. hold on;
  20. for i=1:n % Poczatek petli glownej w ktorej ustawiamy faze+szum i dane sinusa
  21.  
  22. if(data(i)==0 && data(i+1)==0 && data(i+2)==0 && data(i+3)==0)
  23. phi(i)=pi/4+normrnd(0,sigPhi);
  24. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  25. plot(A(i)*cos(phi(i)),A(i)*sin(phi(i)),'bo') %blue circles
  26.  
  27. elseif(data(i)==0 && data(i+1)==0 && data(i+2)==0 && data(i+3)==1)
  28. phi(i)=3*pi/4+normrnd(0,sigPhi);
  29. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  30. plot(A(i)*cos(phi(i)),A(i)*sin(phi(i)),'ro') %red circles
  31.  
  32. elseif(data(i)==0 && data(i+1)==0 && data(i+2)==1 && data(i+3)==0)
  33. phi(i)=5*pi/4+normrnd(0,sigPhi);
  34. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  35. plot(A(i)*cos(phi(i)),A(i)*sin(phi(i)),'go') %green circles
  36.  
  37. elseif(data(i)==0 && data(i+1)==0 && data(i+2)==1 && data(i+3)==1)
  38. phi(i)=7*pi/4+normrnd(0,sigPhi);
  39. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  40. plot(A(i)*cos(phi(i)),A(i)*sin(phi(i)),'yo') %yellow circles
  41.  
  42. elseif(data(i)==0 && data(i+1)==1 && data(i+2)==0 && data(i+3)==0)
  43. phi(i)=pi/4+normrnd(0,sigPhi);
  44. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  45. plot(2*A(i)*cos(phi(i)),A(i)*sin(phi(i)),'y+') %blue circles
  46.  
  47. elseif(data(i)==0 && data(i+1)==1 && data(i+2)==0 && data(i+3)==1)
  48. phi(i)=3*pi/4+normrnd(0,sigPhi);
  49. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  50. plot(2*A(i)*cos(phi(i)),A(i)*sin(phi(i)),'g+') %red circles
  51.  
  52. elseif(data(i)==0 && data(i+1)==1 && data(i+2)==1 && data(i+3)==0)
  53. phi(i)=5*pi/4+normrnd(0,sigPhi);
  54. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  55. plot(2*A(i)*cos(phi(i)),A(i)*sin(phi(i)),'b+') %green circles
  56.  
  57. elseif(data(i)==0 && data(i+1)==1 && data(i+2)==1 && data(i+3)==1)
  58. phi(i)=7*pi/4+normrnd(0,sigPhi);
  59. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  60. plot(2*A(i)*cos(phi(i)),A(i)*sin(phi(i)),'r+') %yellow circles
  61.  
  62. elseif(data(i)==1 && data(i+1)==0 && data(i+2)==0 && data(i+3)==0)
  63. phi(i)=pi/4+normrnd(0,sigPhi);
  64. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  65. plot(A(i)*cos(phi(i)),2*A(i)*sin(phi(i)),'rx') %blue circles
  66.  
  67. elseif(data(i)==1 && data(i+1)==0 && data(i+2)==0 && data(i+3)==1)
  68. phi(i)=3*pi/4+normrnd(0,sigPhi);
  69. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  70. plot(A(i)*cos(phi(i)),2*A(i)*sin(phi(i)),'bx') %red circles
  71.  
  72. elseif(data(i)==1 && data(i+1)==0 && data(i+2)==1 && data(i+3)==0)
  73. phi(i)=5*pi/4+normrnd(0,sigPhi);
  74. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  75. plot(A(i)*cos(phi(i)),2*A(i)*sin(phi(i)),'yx') %green circles
  76.  
  77. elseif(data(i)==1 && data(i+1)==0 && data(i+2)==1 && data(i+3)==1)
  78. phi(i)=7*pi/4+normrnd(0,sigPhi);
  79. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  80. plot(A(i)*cos(phi(i)),2*A(i)*sin(phi(i)),'gx') %yellow circles
  81.  
  82. elseif(data(i)==1 && data(i+1)==1 && data(i+2)==0 && data(i+3)==0)
  83. phi(i)=pi/4+normrnd(0,sigPhi);
  84. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  85. plot(2*A(i)*cos(phi(i)),2*A(i)*sin(phi(i)),'gs') %blue circles
  86.  
  87. elseif(data(i)==1 && data(i+1)==1 && data(i+2)==0 && data(i+3)==1)
  88. phi(i)=3*pi/4+normrnd(0,sigPhi);
  89. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  90. plot(2*A(i)*cos(phi(i)),2*A(i)*sin(phi(i)),'rs') %red circles
  91.  
  92. elseif(data(i)==1 && data(i+1)==1 && data(i+2)==1 && data(i+3)==0)
  93. phi(i)=5*pi/4+normrnd(0,sigPhi);
  94. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  95. plot(2*A(i)*cos(phi(i)),2*A(i)*sin(phi(i)),'ys') %green circles
  96.  
  97. elseif(data(i)==1 && data(i+1)==1 && data(i+2)==1 && data(i+3)==1)
  98. phi(i)=7*pi/4+normrnd(0,sigPhi);
  99. y(1,70*(i-1)+1:70*i)=A(i)*cos(2*pi*t(1,70*(i-1)+1:70*i));
  100. plot(2*A(i)*cos(phi(i)),2*A(i)*sin(phi(i)),'bs') %yellow circles
  101. end
  102.  
  103. end
  104.  
  105. %amp=[0:0.05:5]; %badamy amplitude i faze dla wszystkich mozliwosci od 0 d0 5 co 0.05
  106. %faza=[0:0.05:5];
  107. %bity=1000;
  108. %[AMP,FAZA]=meshgrid(amp, faza);
  109. %BER=zeros(length(amp), length(faza);
  110. %for i=1:length(amp)
  111. %for j=1:length(faza)
  112. %BER(i,j)=PSK(bity,amp(i), faza(j));
  113. %kazdy element BER wytwarzamy sprawdzajac cala
  114. %funkcje PSK dla podanych amplitudy i fazy
  115. %end
  116. %endmesh(AMP,FAZA,BER)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement