Advertisement
martaczaska

s171632_5

Nov 22nd, 2020
1,007
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.52 KB | None | 0 0
  1. % 22.11.2020 r.
  2. % 171632 Marta Trzaska
  3. % Zad.5 Modelowanie odpowiedzi impulsowej kanału dla środowiska miejskiego
  4.  
  5. clc;
  6. format compact;
  7. %Szybkość próbkowania odpowiedzi impulsowej;
  8.     N = 25000000;
  9.     Ts = 1/N;
  10.    
  11. % 1. Generowanie tablicy odpowiedzi impulsowej kanału dla szybkości
  12. % próbkowania N i ozdzielenie prążków przypadających między momentami próbkowania na
  13. % dwa o określonych amplitudach
  14.  
  15.     opoznienie = [0 0.217 0.512 0.514 0.517 0.674 0.882 1.230 1.287 1.311 1.349 1.533 1.535 1.622 1.818 1.836 1.884 1.943 2.048 2.140];
  16.     %opoznienie w mikrosekundach
  17.     sr_ampl = [-5.7 -7.6 -10.1 -10.2 -10.2 -11.5 -13.4 -16.3 -16.9 -17.1 -17.4 -19 -19 -19.8 -21.5 -21.6 -22.1 -22.6 -23.5 -24.3];
  18.     %sr_ampl w dB
  19.     sr_ampl_lin = ones(1,20);
  20.     odp_impul = ones(1,20);
  21.    
  22.     for j = 1:20
  23.         sr_ampl_lin(j) = 10^(sr_ampl(j)/10);
  24.     end
  25.  
  26.     i = 1;
  27.     czas_max = opoznienie(20) * 10^(-6)
  28.    
  29.     for j= 0:Ts: czas_max + Ts
  30.         moment_probk(i) = j;
  31.         probki(i) = 0;
  32.         i = i + 1;
  33.     end
  34.    
  35.     probki(1) = sr_ampl_lin(1);
  36.     for k = 2 : 20
  37.         for l = 2 : (length(probki) - 1)
  38.             if(moment_probk(l) >= ( opoznienie(k)*10^(-6) - Ts))
  39.                 roznica = opoznienie(k) - moment_probk(l);
  40.                 probki(l) = probki(l) + sr_ampl_lin(k) * (roznica/Ts);
  41.                 probki(l+1) = probki(l+1) + sr_ampl_lin(k) * ((Ts- roznica)/Ts);
  42.                 break;
  43.             end
  44.         end
  45.     end
  46.    
  47.     rng default;
  48.     x = randn(1, length(probki));
  49.     y = randn(1, length(probki));
  50.    
  51.     for i = 1 : length(probki)
  52.         rayleigh = sqrt( x(i)^2 + y(i)^2 );
  53.         odp_impul(i) = probki(i) * rayleigh;
  54.     end
  55.  
  56.    
  57. % 3. %%%%%%%%%%%%%%%%%% WYKRESY %%%%%%%%%%%%%%%%%%
  58.  
  59.     f1=figure;
  60.     stem(opoznienie, sr_ampl_lin); %sekwencja bitów wygenerowanych
  61.     title("Względne śrendie amplitudy impulsów (skala liniowa)")
  62.     xlabel("t [µs]");
  63.     ylabel("Amplituda");
  64.     axis([0 2.3 0 0.3]);
  65.     %saveas(gcf, "sr_ampl_5.png")
  66.    
  67.     f2 = figure;
  68.     stem(moment_probk, probki); %sekwencja bitów wygenerowanych
  69.     title("Probki")
  70.     xlabel("t [µs]");
  71.     ylabel("Amplituda");
  72.     %axis([0 2.3 0 0.3]);
  73.     %saveas(gcf, "probki_5.png")
  74.    
  75.     f3 = figure;
  76.     stem(moment_probk, odp_impul); %sekwencja bitów wygenerowanych
  77.     title("Odpowiedź impulsowa kanału z uwzględnieniem rozkładu Rayleigha")
  78.     xlabel("t [µs]");
  79.     ylabel("Amplituda");
  80.     %axis([0 2.3 0 0.3]);
  81.     %saveas(gcf, "odp_impuls_5.png")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement