Advertisement
akocius

huffman

Nov 1st, 2021
1,106
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. %% Hafmano kodavimas
  2. clear all
  3. clc
  4. load('Temperature.mat');
  5. tempOrig = Temperature;
  6.  
  7. tempValues = [];
  8.  
  9. %Sudaromas visų esamų temp. verčių masyvas (be pasikartojimų)
  10. for i = 1:length(tempOrig)
  11.     valueExist = 0;
  12.     for j = 1:length(tempValues)
  13.         if tempValues(j) == tempOrig(i)
  14.             valueExist = 1;
  15.         end
  16.     end
  17.  
  18.     if valueExist == 0
  19.         tempValues(end + 1) = tempOrig(i);
  20.     end
  21. end
  22.  
  23. valuesProbability = [];
  24.  
  25. %Nustatoma kiekvienos vertės atsiradimo tikimybė
  26. for i = 1:length(tempValues)
  27.     repeatCount = 0;
  28.    
  29.     %Tam tikros vertės pasikartojimų skaičius
  30.     for j = 1:length(tempOrig)
  31.         if tempValues(i) == tempOrig(j)
  32.             repeatCount = repeatCount + 1;
  33.         end
  34.     end
  35.    
  36.     %Pasikartojimo tikimybė
  37.     valuesProbability(i) = repeatCount / length(tempOrig);
  38. end
  39.  
  40.  
  41. %Haffmano žodynas
  42. dict = huffmandict(tempValues, valuesProbability);
  43.  
  44.  
  45. %Haffmano būdu užkoduota temp. verčių seka
  46. tempEncoded = huffmanenco(tempOrig, dict);
  47.  
  48. sizeOrig = length(dec2bin(max(tempOrig))) * length(tempOrig)
  49.  
  50. sizeEncoded = length(tempEncoded)
Advertisement
RAW Paste Data Copied
Advertisement