Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. clear all; close all;
  2.  
  3. N = 1000; phase = pi/4;
  4.  
  5. %dane z zadania 1
  6. fn = 2*10^6; %HZ
  7. v = 5000; %m/s
  8. c = 3*10^8; %m/s
  9. delay = 4;
  10.  
  11. x = randi([0 15],N,1); %losowanie randomowego sygnału
  12. msg = x;
  13. %msg = msg(1:end-2*delay);
  14.  
  15. %sekwencja treningowa
  16.  
  17. trainlength = 150;
  18.  
  19. %{
  20. head = ones(1,trainlength);
  21. x = x';
  22. x = [head x];
  23.  
  24.  
  25. msg = msg';
  26. msg = [head msg]
  27. %}
  28.  
  29. %txSig = pskmod(x,4,phase); %sygnal zmodulowany po stronie nadawczej
  30. %txSig = qammod(x,16,phase);
  31. txSig = qammod(msg, 16, phase);
  32.  
  33. scatterplot(txSig); title('Sygnal wyslany');
  34.  
  35. %przepuszczamy przez kanal
  36.  
  37. SNR = 30;
  38.  
  39. ts = 1*10^(-6); %impuls
  40. fD = (v*fn)/c; %czestotliwosc Dopplera
  41.  
  42.  
  43. RAY = rayleighchan(ts,fD);
  44.  
  45. tux = stdchan(ts, fD, '3gppTUx');
  46.  
  47. %rxTux =
  48.  
  49.  
  50. %rxSig = filter(RAY,txSig); %nadawczy sfiltrowany Rayleighem
  51. rxSig = filter(tux,txSig);
  52.  
  53.  
  54. %% compesate channel delay
  55.  
  56.  
  57. x_com = msg(1:end-2*delay);
  58. filtered_msg = rxSig((2*delay+1):end);
  59.  
  60. %% Corection
  61.  
  62. %%%%%%%
  63.  
  64. rxSig = awgn(rxSig,SNR); %zaszumiamy
  65. filtered_msg = awgn(filtered_msg, SNR);
  66.  
  67. %eq1 = lineareq(1, rls(0.99)); %tworzy obiekt, ktory moze byc eq, mamy rls
  68. %yd = equalize(eq1,rxSig,txSig(1:trainlength));
  69.  
  70. eq1 = lineareq(1, rls(0.99));
  71. yd = equalize(eq1, x_com, filtered_msg(1:trainlength));
  72.  
  73. scatterplot(yd); title('filtered');
  74.  
  75. %scatterplot(rxSig); title('Sygnal odebrany bez korekcji');
  76. %scatterplot(yd); title('Sygnal odebrany z korekcją');
  77.  
  78.  
  79. %dem = pskdemod(rxSig,4,phase);
  80. %dem2 = pskdemod(yd,4,phase);
  81.  
  82. %dem = qamdemod(rxSig,16,phase);
  83. dem = qamdemod(yd,16,phase);
  84. %dem2 = qamdemod(yd,16,phase);
  85.  
  86. %msg = msg((2*delay+1):end);
  87.  
  88. [xd, BER] = biterr(x_com,dem);
  89. disp(BER);
  90. %[xxd,BER2]= biterr(x,dem2);
  91. %disp(BER2);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement