Coding & Decoding Huffman With Matlab

Embed Size (px)

Citation preview

Presented by :

Rizky Dwi Putra Utri Despita Winda Dimas Putri Pratiwi

Huffman Coding sesuai dg simbol-simbol yg Proses coding: mentransmisikan codewordy

akan dikirim, mis ABAAD 101111001 y Untuk decode message, konversi tabel harus diketahui penerima dp dibangun Huffman tree0011011 DAB A B C D E 1 011 010 001 000

y Masalah: pengirim (encoder) dan penerima (decoder) harus

menggunakan coding (Huffman tree) yang sama

Huffman coding/decodingy GUI (Graphical User Interface)

Huffman Codingb=get(handles.edit1,'string'); pnjg=length(b); t=0; g(1)='_'; for i=1:pnjg j=1; while b(i)~=b(j) j=j+1; end if j>=i t=t+1; g(t)=b(i); end end le=length(g); s=zeros(1,le); %jumlah tiap kata .. for i=1:le for j=1:pnjg if g(i)==b(j) s(i)=s(i)+1; end end end %tung L for i=1:le L(i)=(s(i)/pnjg); end % urut urut=L; sort(urut); for i=1:pnjg for j=1:le if b(i)==g(j) a(i)=j; end end end for i=1:le kom(i)=i; end sig = repmat([a],1,1);% Data to encode symbols = [kom]; % Distinct data symbols appearing in sig p = [L]; % Probability of each data symbol dict = huffmandict(symbols,p); % Create the dictionary. hcode = huffmanenco(sig,dict); % Encode the data. set(handles.edit2,'String',num2str (hcode));

Huffman Decodingb=get(handles.edit1,'string'); pnjg=length(b); t=0; g(1)='_'; for i=1:pnjg j=1; while b(i)~=b(j) j=j+1; end if j>=i t=t+1; g(t)=b(i); end end le=length(g); s=zeros(1,le); %jumlah tiap kata .. for i=1:le for j=1:pnjg if g(i)==b(j) s(i)=s(i)+1; end end end %tung L for i=1:le L(i)=(s(i)/pnjg); end % urut urut=L; sort(urut); for i=1:pnjg for j=1:le if b(i)==g(j) a(i)=j; end end end for i=1:le kom(i)=i; end sig = repmat([a],1,1);% Data to encode symbols = [kom]; % Distinct data symbols appearing in sig p = [L]; % Probability of each data symbol dict = huffmandict(symbols,p); % Create the dictionary. hcode = huffmanenco(sig,dict); % Encode the data. dhsig = huffmandeco(hcode,dict); % Decode the code. Hdecod(1)=' '; for i=1:pnjg Hdecod(i)=g(dhsig(1,i)); i=i+1; end set(handles.edit8,'String',Hdecod);