martaczaska

s171632_3

Nov 8th, 2020 (edited)
950
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.17 KB | None | 0 0
  1. % 8.11.2020 r.
  2. % 171632 Marta Trzaska
  3. % Zad.3 Modelowanie interferencji międzysymbolowych
  4.  
  5. %Przyjęte wartości: N = 20, a = 0.2, b = 0.15
  6.     %N = 20;
  7.     N = 9; % dla sekwencji bitów z tylko jednym elementem równym 1
  8.     a = 0.2;
  9.     b = 0.15;
  10.  
  11. % 1. Generowanie sekwencji N bitów 0/1
  12.     rng default;
  13.     wejsciowy=randi([0,1],[1, N]);
  14.     %wejsciowy=[0,0,0,0,1,0,0,0,0]; % dla N = 9
  15.  
  16. % 2. Modelowanie filtru generującego interferencje międzysymbolowe
  17.     isi = zeros(1,N);
  18.    
  19.     for i = 1:N
  20.         if i == 1
  21.             isi(i) = 0 + wejsciowy(i) + b*wejsciowy(i+1);
  22.         elseif i == N
  23.             isi(i) = a*wejsciowy(i-1) + wejsciowy(i) + 0;
  24.         else
  25.             isi(i) = a*wejsciowy(i-1) + wejsciowy(i) + b*wejsciowy(i+1);
  26.         end
  27.     end
  28.    
  29. % 3. Obliczenie współczynników do filtru minimalizującego ISI        
  30.     X = [0 1 0 0 0;
  31.          0 0 1 0 0;
  32.          0 0 0 1 0];
  33.    
  34.     for i=1:3
  35.         y_minus1(i) = a*X(i,1) + X(i,2) + b*X(i,3)      % a*x_-2 + x_-1 + b*x_0
  36.         y0(i) = a*X(i,2) + X(i,3) + b*X(i,4)            % a*x_-1 + x_0 + b*x_1
  37.         y_plus1(i) = a*X(i,3) + X(i,4) + b*X(i,5)       % a*x_0 + x_1 + b*x_2
  38.     end
  39.    
  40.     Z=[y_minus1(1) y0(1) y_plus1(1);
  41.        y_minus1(2) y0(2) y_plus1(2);
  42.        y_minus1(3) y0(3) y_plus1(3);]
  43.     W = [0; 1; 0];
  44.  
  45.     parametry= linsolve(Z, W);
  46.     k = parametry(1)
  47.     l = parametry(2)
  48.     m = parametry(3)
  49.    
  50. % 4. Filtracja interferencji międzysymbolowych
  51.     wyjsciowy = zeros(1,N);
  52.    
  53.     for i = 1:N
  54.         if i == 1
  55.             wyjsciowy(i) = k*0 + l*isi(i) + m*isi(i+1);
  56.         elseif i == N
  57.             wyjsciowy(i) = k*isi(i-1) + l*isi(i) + m*0;
  58.         else
  59.             wyjsciowy(i) = k*isi(i-1) + l*isi(i) + m*isi(i+1);
  60.         end
  61.     end
  62.  
  63. % -- GENEROWANIE WYKRESÓW--
  64.  
  65. grid on;
  66. %x=[0:19];
  67. x=[0:8];
  68.  
  69. stem(x, wejsciowy); %sekwencja bitów wygenerowanych
  70. saveas(gcf, "wejsciowy_3.png")
  71.  
  72. f2=figure;
  73. stem(x, isi); %sekwencja bitów z interferencjami międzysymbolowymi
  74. saveas(gcf, "isi_3.png")
  75.  
  76. f3=figure;
  77. stem(x, wyjsciowy); %sekwencja bitów nas wyjściu korektora interferencji międzysymbolowych
  78. saveas(gcf, "wyjsciowy_3.png")
  79.  
Advertisement
Add Comment
Please, Sign In to add comment