3. Réaliser une fonction de codage permettant d’initialiser une matrice code.
On rappelle que sous Matlab la notion de type n’existe pas. De même, quel que
soit le langage utilisé, il est difficile de créer et manipuler des mots de longueurs
variables. On se propose sous Matlab de manipuler une matrice d’entiers ou
chaque eij sera assimilé à un bit.
De façon à distinguer la notion de bit non alloué, il est nécessaire de choisir une
valeur entière correspondante à la valeur vide ‘9 par exemple’. Avant l’appel de
cette fonction on va donc allouer une matrice de hauteur correspondante au
nombre de symbole, et de profondeur suffisante.
Le prototype de la fonction de codage peut être le suivant :
codef codage (d, v1, v2, codei )
d est la densité de probabilité initiale
v1 et v2 représentent les deux vecteurs ensemble dans cette densité, obtenus
par la fonction de dichotomie.
codei est la matrice codage en cours de création
Exemple :
d = [ 0.3, 0.2, 0.15, 0.125, 0.1, 0.05, 0.05,0.025 ]
v1 = [ 0.15, 0.125, 0, 0, 0, 0, 0, 0 ]
v2 = [ 0.1, 0.05, 0.05, 0.025, 0, 0, 0, 0 ]
codei = 1 9 9 9 9 9 9
1 9 9 9 9 9 9
0 9 9 9 9 9 9
0 9 9 9 9 9 9
0 9 9 9 9 9 9
0 9 9 9 9 9 9
0 9 9 9 9 9 9
0 9 9 9 9 9 9
codef = 1 9 9 9 9 9 9
1 9 9 9 9 9 9
0 1 9 9 9 9 9
0 1 9 9 9 9 9
0 0 9 9 9 9 9
0 0 9 9 9 9 9
0 0 9 9 9 9 9
0 0 9 9 9 9 9