clear; close all; % Definition d'un alphabet ASCII avec les lettres A..Z, a..z, les chiffres 1..9 et la ponctuation : taille_alphabet = 128; codes_ASCII = transpose(0:taille_alphabet-1); % Vecteur (colonne) de codes ASCII alphabet = char(codes_ASCII); % Vecteur de caracteres ASCII % Texte a encoder : texte = 'Taratatatsointsoin'; % Affichage du texte : fprintf('Texte : %s\n',texte); % Frequences d'apparition des lettres dans le texte : frequences = calcul_frequences(texte,alphabet); % Selection des caracteres de frequences non nulles : [selection_frequences,selection_alphabet] = selection(frequences,alphabet); % Partitionnement de l'intervalle [0,1] : bornes = partitionnement(selection_frequences); % Codage arithmetique : [borne_inf,borne_sup] = codage_arithmetique(texte,selection_alphabet,bornes); % Choix (arbitraire) d'un nombre compris dans l'intervalle [borne_inf,borne_sup] pour encoder le texte : k = 1; while (floor(k*borne_inf)==floor(k*borne_sup)) k = 10*k; end texte_encode = floor(k*borne_sup)/k; fprintf('Texte encode : %.15f\n',texte_encode); % Decodage du texte encode : texte_decode = ''; texte_encode_courant = texte_encode; for i = 1:length(texte) c = find((texte_encode_courant>bornes(1,:))&(texte_encode_courant