Huffman n ShanonFano

7
Shannon Fano Code: clc; clear all //close all; m=input(‘Enter the no. of message ensembles : ‘); z=[]; h=0;l=0; disp(‘Enter the probabilities for shannon-fano coding in descending order’); for i=1:m printf(‘Ensemble %d\n’,i); p(i)=input(‘’); end //Finding each alpha values a(1)=0; for j=2:m; a(j)=a(j-1)+p(j-1); end printf(‘\n Alpha Matrix’); disp(a); //Finding each code length for i=1:m n(i)= ceil(-1*(log2(p(i)))); end printf(‘\n Code length matrix’); disp(n); //Computing each code for i=1:m int=a(i); for j=1:n(i) frac=int*2; c=floor(frac); frac=frac-c; z=[z c]; int=frac; end printf(‘Codeword %d’,i); disp(z); z=[]; end

description

Digital coding techniques

Transcript of Huffman n ShanonFano

Shannon Fano Code:

clc;clear all //close all; m=input(Enter the no. of message ensembles : );z=[];h=0;l=0;disp(Enter the probabilities for shannon-fano coding in descending order);for i=1:m printf(Ensemble %d\n,i); p(i)=input();end //Finding each alpha values a(1)=0;for j=2:m; a(j)=a(j-1)+p(j-1);endprintf(\n Alpha Matrix);disp(a); //Finding each code lengthfor i=1:m n(i)= ceil(-1*(log2(p(i))));endprintf(\n Code length matrix);disp(n); //Computing each codefor i=1:m int=a(i); for j=1:n(i) frac=int*2; c=floor(frac); frac=frac-c; z=[z c]; int=frac;endprintf(Codeword %d,i);disp(z);z=[];end //Computing Avg. Code Length & Entropyprintf(Avg. Code Length); for i=1:m x=p(i)*n(i); l=l+x; x=p(i)*log2(1/p(i)); h=h+x;enddisp(l);printf(Entropy);disp(h); //Computing Efficiencyprintf(Efficiency);disp(100*h/l);printf(Redundancy);disp(100-(100*h/l));

OutputEnter the no. of message ensembles : 7

Enter the probabilities for shannon-fano coding in descending order Ensemble 10.4Ensemble 20.2Ensemble 30.12Ensemble 40.08Ensemble 50.08Ensemble 60.08Ensemble 70.04

Alpha Matrix 0. 0.4 0.6 0.72 0.8 0.88 0.96

Code length matrix 2. 2. 3. 3. 3. 4. 4.

Codeword 1 0. 0. Codeword 2 0. 1. Codeword 3 1. 0. 0. Codeword 4 1. 0. 1. Codeword 5 1. 1. 0. Codeword 6 1. 1. 1. 0. Codeword 7 1. 1. 1. 1. Avg. Code Length 2.52 Entropy 2.4205038 Efficiency 96.0517381 Redundancy 3.948261905

Huffman Code:clcm=input("Enter the no. of message ensembles : ");h=0;l=0;disp("Enter the probabilities for Huffman coding in descending order");for i=1:m printf("Ensemble %d\n",i); p(i)=input(" ");enddisp("Enter the code word lengths for Huffman coding");for i=1:m printf("Codeword %d\n",i); n(i)=input('');end //Computing Avg. Code Length & Entropyprintf("Avg. Code Length");for i=1:m x=p(i)*n(i); l=l+x; x=p(i)*log2(1/p(i)); h=h+x;enddisp(l);printf("Entropy");disp(h); //Computing Efficiencyprintf("Efficiency");disp(100*h/l)Output:Enter the no. of message ensembles : 7 Enter the probabilities for Huffman coding in descending order Ensemble 1 0.4Ensemble 2 0.2Ensemble 3 0.12Ensemble 4 0.08Ensemble 5 0.08Ensemble 6 0.08Ensemble 7 0.04 Enter the code word lengths for Huffman coding Codeword 11Codeword 23Codeword 33Codeword 44Codeword 54Codeword 64Codeword 74Avg. Code Length 2.48 Entropy 2.4205038 Efficiency 97.600961