Membuat Hamming Code menggunakan Matlab


Setelah kita sebelum nya membahas tentang sedikit langkah-langkah dalam pembuatan code hamming, sekarang kita mencoba untuk menggunakan matlab untuk visualisasi

untuk membandingkan hitungan manual kita pada post sebelum nya dengan matlab kita dapat menggunakan script sebagai berikut

clc, clear all
m = 4; n = 2^m-1; % Codeword length = 15
k = 11; % Message length

msg1 = [1 1 0 0 0 0 1 0]; % As a column vector

code1 = encode(msg1,n,k,'hamming/binary')

maka hasil yang kita dapatkan melalui command window sebagai berikut
code1 = [0 1 0 0 1 1 0 0 0 0 1 0 0 0 0]

sedangkan pada perhitungan manual sebelum nya kita mendapat hasil encode sebagai berikut: [ 1 1 0 0 0 0 0 1 0 0 1 0]

pada dasarnya kedua kode tesebut ada sama,
namun pada matlab tidak memakai urutan [D8 D7 D6 D5 C8 D4 D3 D2 C4 D1 C2 C1]

namun pada matlab urutannya menjadi [C1 C2 C3 C4 D8 D7 D6 D5 D4 D3 D2 D1]

 

 

Install Raspbian pada Raspberry menggunakan SSH dan VNC


Peralatan:
1. Raspberry
2. Kable Network
3. SDCard
4. USB Mini Power DC 5v
5. Laptop

Step 1, Download image file OS yang diinginkan, dalam hal ini saya menggunakan Raspbian, https://www.raspberrypi.org/downloads/

Step 2, writing OS pada SD card
– Masukan mini sdcard pada port laptop
– buka terminal run df -h,device akan terdetect, pada laptop saya tertulis /dev/sdb1
– run: sudo umount /dev/sdb1
– run: sudo dd bs=4M if=2015-09-24-raspbian-jessie.img of=/dev/sdb , sesuaikan dengan dimana folder .img didownload, dan sdb disesuaikan dengan yang terdetect di df -h. penting untuk tidak menulis nomor 1,2 atau lainnya setelah sdb
– setelah selesai run: sync

Step 3, modif cmdline.txt pada boot
– plug unlug sdcard, setelah itu akan terdeteksi partisi boot, masuk kedalam partisi tersebut
– open file cmdline.txt, dan tambahakan code ip=192.168.1.4. di tempat saya code full nya akan sebagai berikut
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait ip=192.168.1.4

Step 4, setting IP di laptop
– run: ifconfig diterminal, jika ip inet pada eth0 (atau nama lainnya untuk ethernet) masih kosong atau belum ada, setting ip tersebut
– run: sudo ifconfig eth0 192.168.1.251 netmask 255.255.255.0

Step 5,Power Up Raspberry & connect Network kabel antara laptop dan Raspberry
– Pastikan lampu led di raspberry nyala
– run: ping -t 60 192.168.1.4, jika sudah reply, berarti koneksi berhasil
64 bytes from 192.168.1.4: icmp_seq=1 ttl=64 time=0.353 ms

Step 6, Akses Raspberry via SSH
– run: sh pi@192.168.1.4,
– Are you sure you want to continue connecting? ketik yes
– setelah itu muncul pi@192.168.1.4’s password: raspberry (default password)
– setelah itu kita sudah masuk ke pi@raspberrypi

Step 7, konfigurasi Raspberrry via SSH
Screenshot from 2015-10-18 12:20:22

– Dari menu tersebut pilih “8 Advanced Options”, pilih “A0 Update”. ini akan mengupdate raspi-config tool ke versi terakhir
– Pada dasarnya raspberry image didesign untuk 2 GB, jika menggunakan lebih dari 2 GB, misal 8 GB, sisanya tidak menjadi root file partisi, oleh karena itu untuk mengaktifkannya pilih “1 Expand Filesystem”, partisi tersebut akan diaktifkan setelah reboot
– pilihan major lainnya adalah “8 Advanced Options”-> “A3 Memory split”, saya membuat 128 MB untuk GPU, namun anda bisa menyesuaikan dengan kebutuhan untuk GPU
– prinsipnya sudah selesai, namun kita bisa mengexplore lagi pada raspi-config tersebut

– Setelah reboot, jika kita akan connect akan via ssh kembali seperti langkah diatas
– setelah masuk kembali kita bisa melakukan perintah sudo apt-get update dan sudo apt-get upgrade

Step 8, remote desktop menggunakan VNC
– install VNC di RPi, pastikan kita sudah di masuk kedalam RPi via SSH, “sudo apt-get install tightvncserver”
– run “tightvncserver” isi username dan password sesuai dengan keingininan
– run “vncserver :1 -geometry 1280×720 -depth 24”.

– run di terminal baru “sudo apt-get install xtightvncviewer ”
– run “xtightvncviewer &”

-selesai-

Contoh membuat Hamming Code (Step by Step)


misalkan kita mempunyai data biner message = 1 1 0 0 0 0 1 0, buat kode hamming nya!

Step 1:
Temukan jumlah cek bit (k) yang diperlukan

2^k – 1 >= m + k

dimana m adalah panjang message dan k adalah panjang cek bit

misal kita ambil k = 2, maka

2^2 – 1 >= 2 + 8, maka 3 >= 10 (pernyataan tersebut salah, maka k tidak tepat)

k = 3
2^3 – 1 >= 3 + 8, maka 7 >= 11 (pernyataan tersebut salah, maka k tidak tepat)

k = 4
2^4 -1 >= 4 + 8, maka 15=> 12 (peryataan benar, k = 4)

Step 2
Tentukan posisi bit (data dan check) serta kombinasikan check bit dan data bit

buat tabel angka beserta representasi bit dari angka tersebut sepanjang m + k = 12

Urutan Bit 12 11 10 9 8 7 6 5 4 3 2 1
Rep Bit 1100 1011 1010 1001 1000 0111 0110 0101 1000 0011 0010 0001

setelah itu tentukan posisi cek bit dan data bit, tempatkan check bit pada deretan representasi bilangan biner (pada angka 1,2,8,dst), dan tempatkan data ditempat sisanya, perhatikan ekspansi dari tabel diatas sebagai berikut:

Urutan Bit 12 11 10 9 8 7 6 5 4 3 2 1
Rep Bit 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001
D8 D7 D6 D5 C8 D4 D3 D2 C4 D1 C2 C1

Step 2 Cari nilai C1, C2, C4, C8 dengan formula sebagai berikut

C1=D1D2D4D5D7 (perhatikan posisi pertama dari LSB representasi bit 1 pada rep bit)
C2=D1D3D4D6D7 (perhatikan posisi kedua dari LSB representasi bit 1 pada rep bit)
C4=D2D3D4D8 (perhatikan posisi ketiga dari LSB representasi bit 1 pada rep bit)
C8=D5D6D7D8 (perhatikan posisi keempat dari LSB representasi bit 1 pada rep bit)

⊕ = Operasi XOR

Kita mempunyai message = [1 1 0 0 0 0 1 0] ==> [D8 D7 D6 D5 D4 D3 D2 D1]

Urutan Bit 12 11 10 9 8 7 6 5 4 3 2 1
Rep Bit 1100 1011 1010 1001 1000 0111 0110 0101 1000 0011 0010 0001
D8 D7 D6 D5 C8 D4 D3 D2 C4 D1 C2 C1
1 1 0 0 ? 0 0 1 ? 0 ? ?

C1 = 0⊕1⊕0⊕0⊕1 = 0
C2 = 0⊕0⊕0⊕0⊕1 = 1
C3 = 1⊕0⊕0⊕1 = 0
C4 = 0⊕0⊕1⊕1 = 0

Urutan Bit 12 11 10 9 8 7 6 5 4 3 2 1
Rep Bit 1100 1011 1010 1001 1000 0111 0110 0101 1000 0011 0010 0001
D8 D7 D6 D5 C8 D4 D3 D2 C4 D1 C2 C1
Code Word 1 1 0 0 0 0 0 1 0 0 1 0

maka kode yang akan kita kirim atau simpan sebagai berikut: [ 1 1 0 0 0 0 0 1 0 0 1 0]