makispaiktis

Repetition Code stats for 1-run

Jan 14th, 2022
879
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. %% Close all figures, clear workspace and console
  2. close all;
  3. clear;
  4. clc;
  5.  
  6.  
  7.  
  8. %% Application - Repetition Code
  9. %% Create the stats
  10. counter_rounds = 0;
  11. target = 1;
  12. num_of_corrections = 0;
  13.  
  14. while counter_rounds < target
  15.    
  16.     counter_rounds = counter_rounds + 1;
  17.     disp("Counter " + num2str(counter_rounds));
  18.    
  19.     %% Simulating the Repetition
  20.     er = 0.1;
  21.     repeat = 3;
  22.     LEN = 10;
  23.     message = randi([0 1], 1, LEN)
  24.     x = zeros(1, repeat * LEN);
  25.     for i = 1:LEN
  26.         for j = 1:repeat
  27.             x(j + (i - 1)*repeat) = message(i);
  28.         end
  29.     end
  30.     % Example
  31.     % message = [1, 0, 1]
  32.     % x = [1,1,1, 0,0,0, 1,1,1]
  33.    
  34.     [y, err] = bsc(x,er);
  35.     message_guess = zeros(1, LEN);
  36.     % This is not a Hamming code, so it can correct many errors
  37.     for i = 1:LEN
  38.         bitstream = y((i-1)*repeat + 1 : i*repeat);
  39.         SUM = sum(bitstream);
  40.         if SUM > repeat / 2
  41.             bit_guess = 1;
  42.         elseif SUM < repeat / 2
  43.             bit_guess = 0  ;  
  44.         else
  45.             bit_guess = randi([0 1]);
  46.         end
  47.         message_guess(i) = bit_guess;
  48.     end
  49.     x
  50.     y
  51.     message_guess
  52.     % Mistakes
  53.     xy_mistakes = sum(abs(x - y));
  54.     message_mistakes = sum(abs(message - message_guess));
  55.     disp("x-y mistakes:    " + num2str(xy_mistakes));
  56.     disp("message mistakes:" + num2str(message_mistakes));
  57.    
  58. end
  59.  
  60.  
  61. %% Display overall stats
  62.  
  63.  
RAW Paste Data