Penginderaan Kompresif
-
Upload
chairul-huda -
Category
Documents
-
view
98 -
download
12
description
Transcript of Penginderaan Kompresif
Memahami Penginderaan Kompresif dengan MATLABTM
oleh Andriyan Suksmono
Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung 2008
2 Andriyan B. Suksmono
Memahami Penginderaan Kompresif dengan MATLABTM 3
Daftar Isi I. Konsep Dasar Penginderaan Kompresif
1.1 Prinsip Ketidakpastian dan Kompresi Data
1.2 Pencuplikan Sinyal
1.3 Aljabar Pengolahan Sinyal
1.4 Matriks Transformasi Uniter dan Ortogonal
1.5 Prinsip Ketidakpastian untuk Kawasan Waktu-Frekuensi Diskrit
1.6 Prinsip Ketidakpastian untuk Sebarang Kawasan Diskrit
II. Dekomposisi Sinyal dan Pencarian Basis Ideal
2.1 Basis Ortogonal dan Lengkap dari Sinyal
2.2 Representasi Sinyal dengan Kamus Basis
2.3 Batas Keunikan P0 dan P1
2.3.1 Batas Keunikan P0 dan P1 Elad-Bruckstein untuk Pasangan
Orto-basis
2.3.2 Batas Keunikan P0 dan P1 untuk Kamus Basis
2.3.2 Batas Keunikan P0 dan P1 untuk Kamus Basis
2.4 Pengolahan Sinyal dengan Pemrograman Matematika
2.4.1 Pemrograman Matematika dan Optimasi
2.4.2 Metode Basis Pursuit dengan Pemrograman Linier
III. Aplikasi Penginderaan Kompresif
3.1 Kamera Piksel-Tunggal
3.1.1 Pencuplikan kompresif kawasan spasial
3.1.2 Transformasi Haar untuk Pencuplikan Kompresif
3.1.3 Pencuplikan Kompresif Kawasan Frekuensi
3.2 Radar Pensintesa Frekuensi Berdasarkan Penginderaan Kompresif
3.2.1 Prinsip Kerja dan Geometri Pencitraan GPR
3.2.2 Teknik Sintesa Frekuensi untuk Radar
3.2.3. Pertimbangan Desain SFCW-GPR
3.2.4 Eksperimen SFCW-GPR Dengan VNA (Vector Network
Analyzer)
3.2.5 Radar SFCW-GPR Kompresif
Daftar Pustaka
4 Andriyan B. Suksmono
Memahami Penginderaan Kompresif dengan MATLABTM 5
I. Konsep Dasar Penginderaan Kompresif
1.1 Prinsip Ketidakpastian dan Kompresi Data
Siapapun yang pernah belajar Fisika Modern akan mengenal ketidakpastian
Hiesenberg atau HUP (Heisenberg Uncertainty Principle). Prinsip ini menyatakan
bahwa pengukuran posisi dan momentum suatu partikel tidak mungkin kedua-
duanya dibuat teliti atau presisi, atau
ΔpΔx ≥ h/4π (1.1)
HUP adalah konsekuensi langsung dari sifat dualitas gelombang-partikel.
Sebelum Teori Kuantum muncul, orang mengira bahwa ketetlitian pengukuran
posisi suatu partikel dan momentum (pada saat bersamaan) hanya akan
dibatasi oleh ketelitian alat ukur. Prinsip diatas bahkan menyatakan larangan
alam untuk mengetahui keduanya sekaligus secara teliti, secanggih apapun alat
ukur yang digunakan.
Selain relasi ketidakpastian momentum-posisi, HUP juga dapat dinyatakan
sebagai hubungan ketidakpastian antara energi ΔE dengan waktu Δt, yaitu
ΔEΔt ≥ h/4π (1.2)
Menurut Max Planck, suatu foton yang memiliki frekuensi f, akan memiliki
energi sebesar hf dimana h adalah konstanta Planck. Dengan demikian HUP
untuk energi-waktu akan setara dengan (hΔf) (Δt) ≥ h/4π atau Δ(2πf)(Δt) ≥ 1/2 .
Dengan menyebut 2πf sebagai frekuensi sudut ω, kita akan mendapatkan HUP
dalam bentuk lain, yaitu
Δω Δt ≥ ½ (1.3)
6 Andriyan B. Suksmono
Ketidaksamaan diatas dinamakan juga prinsip ketidakpastian Weyl-Heisenberg
(WHUP) yang berbunyi sbb:
sinyal atau fungsi (waktu) kontinyu tidak mungkin terlokalisasi dengan baik
dalam kawasan waktu dan frekuensi secara bersama-sama
Apakah arti dari WHUP dan apa bedanya dengan HUP? Jika HUP berbicara
mengenai partikel dan gelombang sebagai objek fisik, WHUP menyatakan sifat
umum dari prinsip ketidakpastian untuk diterapkan ke sebarang sinyal atau
fungsi kontinyu (dengan batasan-batasan tertentu). Dalam bahasa pengolahan
sinyal bisa ditafsirkan bahwa jika suatu sinyal s(t) terlokalisir dalam kawasan
waktu maka transform Fourier dari sinyal ini, F[s(t)] = S(ω), akan tersebar
dikawasan frekuensi dan demikian pula sebaliknya, suatu sinyal yang
terlokalisir dikawasan frekuensi akan memiliki transform Fourier yang tersebar
dikawasan waktu.
δ(t) |Δ(ω)|
Gb.1.1 Pasangan transform Fourier dari sinyal delta Dirac
Contoh dari sinyal kontinyu terlokalisir waktu adalah sinyal delta Dirac δ(t).
Transform Fourier dari sinyal ini, F[δ(t)] =Δ(t) akan tersebar keseluruh rentang
frekuensi ω. Gambar 1.1 memperlihatkan pasangan transformasi ini. Karena δ(t)
riil, maka haruslah Δ(ω) kompleks. Gambar ini hanya menunjukkan nilai
magnitude dari koefisien Fourier-nya, yaitu |Δ(ω)|, untuk memperlihatkan
sebaran komponen dominan dan terlihat disini bahwa semua komponen sama-
sama dominan-nya.
Fungsi delta dapat dilihat sebagai fungsi (distribusi) Gaussian dengan limit
variansi mendekati nol. Kita akan memakai fungsi Gaussian ini untuk
memperlihatkan bahwa implikasi tidak langsung dari WHUP adalah:
Memahami Penginderaan Kompresif dengan MATLABTM 7
sinyal kontinyu yang tersebar dalam kawasan waktu, akan terlokalisir pada
kawasan frekuensi dan begitu pula sebaliknya.
Pasangan Fourier dari fungsi Gaussian dengan mean μ=0 dan variansi σ2 dapat
dituliskan sebagai berikut
g(t) = (σ sqrt(2π))-1 exp(-t2/σ2) ↔ G(ω) ~ exp(-ω2/(1/σ)2) (1.4)
yakni, untuk g(t) fungsi Gaussian dengan variansi σ2 maka pasangan Fouriernya
mirip dengan fungsi Gaussian dengan variansi 1/σ2. Jika σ naik pada g(t) atau
fungsinya melebar, maka pasangan Fouriernya akan menyempit dan demikian
pula yang sebaliknya. Dengan demikian implikasi tak langsung dari WHUP
tersebut menjadi jelas khususnya untuk fungsi Gaussian. Fungsi-fungsi atau
sinyal-sinyal waktu-kontinyu yang lain juga akan memiliki sifat yang demikian.
Matlab Script berikut ini dapat dipakai untuk memperlihatkan peristiwa ini.
%--------------------------------------------------------------------------------
% Script Matlab untuk memperlihatkan prinsip ketidakpastian
%--------------------------------------------------------------------------------
clear; clc;
t=-5:0.1:5; w=t; %koordinat waktu dan frekuensi.
sigma1=1; sigma2=0.5; sigma3=0.25;
%Hitung Fungsi Gaussian
g1=normal_baku(sigma1,t);
g2=normal_baku(sigma2,t);
g3=normal_baku(sigma3,t);
%Hitung transform Fourier-nya
G1=F_normal_baku(sigma1,w);
G2=F_normal_baku(sigma2,w);
G3=F_normal_baku(sigma3,w);
figure(1);plot(t,g1,t,g2,t,g3);
8 Andriyan B. Suksmono
legend('sigma','0.5sigma','0.25sigma')
figure(2);plot(w,G1,w,G2,w,G3);
legend('sigma','0.5sigma','0.25sigma')
%-----------------------------------------------------
% Fungsi untuk menghitung fungsi Gaussian
%-----------------------------------------------------
function [g]= normal_baku(sigma,t)
g=(1/sqrt(2*pi*sigma*sigma))*exp(-t.*t/(sigma*sigma));
%--------------------------------------------------------------------------
% Fungsi untuk menghitung transform Fourier dari f. Gaussian
%--------------------------------------------------------------------------
function [G]= F_normal_baku(sigma,w)
G=exp(-w.*w*(sigma*sigma));
Keluaran dari program Matlab diatas diperlihatkan pada Gambar 1.2 dan
Gambar 1.3. Disini jelas terlihat penyempitan fungsi Gauss pada kawasan
waktu akan mengakibatkan pelebaran pada kawasan frekuensi.
-5 0 50
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6sigma0.5sigma0.25sigma
Gb.1.2 Fungsi Gaussian g(t) dng σ =1, 0.5, dan 0.25
Memahami Penginderaan Kompresif dengan MATLABTM 9
-5 0 50
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1sigma0.5sigma0.25sigma
Gb.1.3 Transform Fourier Fungsi Gaussian |G(ω)| dng σ =1, 0.5, dan 0.25
Sebelum diskusi berlanjut, akan terlebih dahulu disinggung sekilas mengenai
suatu teorema yang sangat penting dalam pengolahan sinyal, yaitu Teorema
Parseval. Teorema ini sebenarnya merupakan prinsip kekekalan energi sinyal,
yang menyatakan bahwa pengukuran energi dalam kawasan waktu (misalnya
dengan bantuan Osciloscope) dan pengukuran energi pada kawasan frekuensi
(misalnya dengan Spectrum Analyzer) akan memberikan hasil yang sama.
Teorema ini juga berimplikasi bahwa penghilangan komponen frekuensi tertentu
dari sinyal akan mendistorsi sinyal kawasan waktunya, sepadan dengan
magnitudo koefisien Fourier tersebut. Dengan demikian, hilangnya komponen
dengan magnitudo rendah tidak akan mengubah terlalu banyak bentuk sinyal
semula.
Untuk aplikasi pengolahan sinyal atau citra dijital, perhitungan dilakukan
terhadap data dijital yang tak lain adalah fungsi-fungsi diskrit. Fungsi ini
diperoleh dari fungsi kontinyu dengan melalui proses pencuplikan dan
kuantisasi yang dapat dilakukan dengan sebuah ADC (Analog to Digital
Converter).
10 Andriyan B. Suksmono
1.2 Pencuplikan Sinyal
Supaya dapat diolah oleh komputer (dijital) atau pengolah DSP (Digital Signal
Processing), sinyal-sinyal alami seperti suara atau gambar (citra) harus diubah
menjadi sinyal dijital. Proses pengolahan sinyal secara dijital dapat
digambarkan kedalam daigram blok berikut ini.
Terlebih dahulu pengolah ini menerima masukan sinyal listrik analog dari
transducer, yaitu sinyal s(t) yang disini digambarkan sebagai campuran dari
komponen xa(t) yang ingin berada pada rentang frekuensi yang akan diolah dan
x’a(t) yang tidak diinginkan. Tapis (filter) antialiasing akan menghapus x’a(t)
sehingga tinggal xa(t) yang mengandung semua informasi didalam pita frekuensi
yang dikehendaki atau akan diolah.Pada gamabar diperlihatkan sinyal menjadi
lebih ”halus” karena komponen frekuensi tinggi yang berada diluar pita kerja
sudah dihilangkan.
xa(t) +xa’(t) Anti-AliasingFilter S/H A/D
Digital Processor
D/AReconstruction
Filterya(t)
output
input
xa(t) xa(n)
x (n)
y(n)
y (t)
xa(t) +xa’(t) Anti-AliasingFilter S/H A/D
Digital Processor
D/AReconstruction
Filterya(t)
output
input
xa(t) xa(n)
x (n)
y(n)
y (t)
xa(t) +xa’(t) Anti-AliasingFilter S/H A/D
Digital Processor
D/AReconstruction
Filterya(t)
output
input
xa(t) xa(n)
x (n)
y(n)
y (t)
Gb.1.4 Blok dasar pengolahan sinyal secara dijital
Blok S/H (sampling anda hold) mengambil cuplikan sinyal (fungsi) kontinyu
dalam kawasan waktu secara periodik dan sinyal akan berubah xa(t) dari
menjadi sinyal diskrit xa(n), dimana n bilangan bulat, dengan amplitudo
kontinyu (analog). Karena register dari processor bekerja dengan kapasitas
Memahami Penginderaan Kompresif dengan MATLABTM 11
terbatas, sinyal ini harus terlebih dahulu diubah menjadi sinyal dijital dengan
perangkat A/D (analog to digital converter). Suatu kartu ADC biasanya juga
telah dilengkap dengan tapis antialiasing dan juga blok S/H. Keluaran dari A/D
adalah sinyal dijital x(n).
Pengolah dijital (DSP processor) selanjutnya memproses sinyal sesuai dengan
tujuan yang telah ditetapkan, misalnya melakukan penapisan. Blok ini akan
mengubah sinyal asal x(n) menjadi sinyal y(n) yang sudah terolah.
Supaya bisa disajikan kembali ke pengguna, sinyal dijital y(n) harus
dikembalikan menjadi sinyal analog melalui blok D/A (digital to analog
converter). Selanjutnya sebuah tapis rekonstruksi untuk menghilangkan cacat
akibat konversi dijital ke analog. Akhirnya diperoleh keluaran ya(t) yang siap
disajikan ke pengguna.
1.3 Aljabar Pengolahan Sinyal
Sinyal dijital dapat dianggap sebagai suatu deret waktu dan dapat dituliskan
sebagai suatu vektor kolom. Sebagai contoh, vektor s(n)=[2 3 7]T menyatakan
sinyal dijital sepanjang 3 cuplikan. Karena berbentuk vektor, manipulasi atau
pengolahan sinyal ini dapat dilakukan dengan operasi-operasi matriks atau
vektor, misalnya penjumlahan atau pengurangan, perkalian dengan skalar atau
matriks, dll.
Gb.1.5 Transformasi uniter sebagai perputaran koordinat
s(n)
y
x
z
j
i
k
S(k)
y
x
z
j i
k k’
i’
j’
z’
x’
y’
T
12 Andriyan B. Suksmono
Salah satu proses yang sangat penting didalam DSP adalah transformasi sinyal.
Pada dasarnya transformasi adalah mengubah suatu sinyal dari suatu kawasan
ke kawasan lain atau dari suatu representasi ke representasi yang lain. Secara
geometrik, transformasi sinyal pada hakekatnya adalah perubahan sistem
koordinat seperti diperlihatkan pada Gambar 1.5.
Pada gambar diperlihatkan sinyal semula s dalam koordinat (x, y, z) diubah
menjadi sinyal S dalam koordinat baru (x’, y’, z’) melalui transformasi T. Kita
bisa menganggap vektor basis dari koordinat asal adalah {i, j, k}={(1,0,0), (0,1,0),
(0,0,1)}, sedangkan vektor basis dari koordinat yang baru adalah {i’, j’, k’}.
Pada Aljabar Linier, transformasi dari vektor s menjadi vektor S dapat
dinyatakan sebagai perkalian antara vektor s dengan matriks transformasi T,
atau
S = Ts (1.5)
Ada sekelompok transformasi penting didalam pengolahan sinyal yang disebut
sebagai transformasi ortogonal. Semua vektor basis dalam transformasi ini
memiliki panjang satu satuan. Dengan demikian maka panjang atau magnitudo
sinyal (vektor) s tidak akan berubah oleh transformasi. Secara geometrik,
transformasi yang demikian akan berupa perputaran atau rotasi koordinat.
Sebagai contoh, rotasi terhadap sumbu z sebesar sudut θ dapat dinyatakan
sebagai matriks transformasi:
( ) ( )( ) ( )
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ −=
1000cossin0sincos
θθθθ
T (1.6)
Akibat rotasi terhadap sumbu-z sebesar 45 derajat atau π/4, maka sinyal s=[2
3 7]T pada contoh sebelumnya akan berubah menjadi:
( ) ( )( ) ( )
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ −==
0000.75355.37071.0
732
100045cos45sin045sin45cos
TsS
Memahami Penginderaan Kompresif dengan MATLABTM 13
Perhitungan diatas dapat dilakukan dengan Matlab sebagai berikut:
%** Transformasi sinyal **
s=[2 3 7]', % sinyal asli
% ** Definisikan matriks transformasi **
T=[cos(pi/4) -sin(pi/4) 0; sin(pi/4) cos(pi/4) 0; 0 0 1];
S=T*s, % sinyal hasil transformasi
Bentuk umum dari transformasi ortogonal disebut sebagai transformasi uniter,
dimana basis vektor memiliki magnitudo satu tetapi nilainya bisa kompleks.
Transformasi Fourier adalah contoh dari transformasi uniter. Matriks DFT dapat
diperoleh secara mudah dengan Matlab dengan melakukan operasi fft terhadap
suatu matriks satuan berukuran N×N.
% cara-1: kalikan sinyal dengan matriks DFT
s=[2 3 7]', % sinyal asli
N=length(s);
U=fft(eye(N,N))/sqrt(N); %bentuk matriks DFT 3x3
S1= U*s, % hasil transformasi Fourier
%cara-2: langsung dengan perintah fft
S2=fft(s)/sqrt(N), %sama dengan S1
Untuk kasus sinyal kita terdahulu, kita perlu membentuk matriks DFT
berukuran 3×3 yang kita sebut sebagai U. Hasil perkalian U dengan s akan
menghasilkan sinyal kawasan frekuensi yaitu S1 = S2.
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−+−+−−−=
iiiiU
87.05.087.05.0187.05.087.05.01
111
31
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−+−==
iiUsS T
0.273.10.273.1
93.6
Kita akan memakai hasil diatas untuk menunjukkan konsep-konsep penting
yang disinggung didepan. Yang pertama, suatu matriks U disebut uniter jika
perkalian matriks ini dengan transpose dari konjugasi kompleksnya
menghasilkan matriks satuan, atau U*T⋅U = I. Kedua, kita akan memeriksa
Teorema Parseval bahwa energi dikawasan waktu akan sama dengan energi
dikawasan frekuensi, atau s*T⋅s = S*T⋅S. Dan yang terakhir adalah sifat
14 Andriyan B. Suksmono
pengkompakan energi dengan memeriksa sebaran energi dikawasan frekuensi E
= S ⋅S*. Script Matlab berikut dapat ditambahkan pada script sebelumnya:
S=S1; % sama juga S=S2
% Cek sifat uniter, T. Parseval, dan sebaran
conj(transpose(U))*U %jika uniter akan hasilnya I berukuran NxN
E_waktu=sum(conj(transpose(s))*s), %Energi kawasan waktu
E_frekuensi=sum(conj(transpose(S))*S) , %Energi kawasan frekuensi
E_dist_frek = S.*conj(S), %sebaran energi
Akan diperoleh bahwa U benar-benar uniter karena hasil perkalian dengan
konjugasi transpose-nya menghasilkan matriks identitas berukuran NxN. Nilai
energi yang didapat adalah E_waktu=62 dan E_frekuensi=62, jadi keduanya
identik dan memenuhi Teorema Parseval. Hal yang juga menarik adalah sebaran
energi dikawasan frekuensi, yakni E_dist_frek=[48.0 7.0 7.0]T. Disini terlihat
bahwa sebagian energi hasil transformasi terkumpul pada sejumlah kecil
koefisien, dalam hal ini adalah koefisien yang pertama saja.
1.4 Matriks Transformasi Uniter dan Ortogonal
Disamping DFT, beberapa matriks ortogonal atau uniter memiliki sifat
pengkompakan energi. Disini akan ditinjau dua buah matriks ortogonal yang
sering dipakai untuk melakukan transformasi sinyal, yaitu matriks DCT dan
matriks Hadamard. Sinyal asal kita panjangkan menjadi empat cuplikan
menjadi s=[2 3 7 11]. Dengan demikian kita akan memilih matriks DCT dan
Hadamard yang ukurannya 4×4, masing-masing diberi notasi D dan H, yaitu:
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−−−−
−−=
27.065.065.027.050.050.050.050.065.027.027.065.0
50.050.050.050.0
D
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−−−−−−
=
111111111111
1111
21
2H
Memahami Penginderaan Kompresif dengan MATLABTM 15
Matriks DCT diatas dapat dibentuk dengan perintah Matlab dct(eye(4,4)),
sedangkan matriks Hadamard bisa dibentuk secara rekursif dengan perkalian
Kronecker matriks dasar-nya, yaitu H1:
⎟⎟⎠
⎞⎜⎜⎝
⎛−
=11
112
11H , ⎟⎟
⎠
⎞⎜⎜⎝
⎛−
=⊗=−−
−−−
11
1111 2
1nn
nnnn HH
HHHHH (1.7)
Script Matlab berikut ini dapat dipakai untuk mempelajari sifat-sifat penting
kedua transformasi ortogonal tersebut.
%Transformasi ortogonal: DCT dan Hadamard
s=[2 3 7 11]', % sinyal asli
N=length(s);
%bentuk matriks transformasi
D=dct(eye(N,N)); %bentuk matriks DCT 4x4
H2=[1 1 1 1; 1 -1 1 -1; 1 1 -1 -1; 1 -1 -1 1]/2;
S_dct= D*s, % hasil transformasi DCT
S_had= H2*s, % hasil transformasi Hadamard
E_asli= sum(transpose(s)*s), %energi sinyal asal
E_dct =sum(transpose(S_dct)*S_dct) , %Energi kawasan DCT
E_hadamard =sum(transpose(S_had)*S_had) ,
%Energi kawasan Hadamard
E_dist_dct = S_dct.*S_dct, %sebaran energi DCT
E_dist_had = S_had.*S_had, %sebaran energi Hadamard
%gambarkan sebaran energi
figure(1); bar(E_dist_dct); title('Sebaran energi di kawasan DCT');
figure(2); bar(E_dist_had); title('Sebaran energi di kawasan Hadamard');
Perhitungan dengan script diatas menegaskan kembali hukum konservasi
energi akibat Teorema Parseval, yaitu E_asli=E_dct=E_had = 183. Sifat
pengkompakan energi juga ditemukan dikedua transformasi ini, yakni, masing-
masing punya sebaran seperti pada Gb.1.6.
Kompresi data yang sederhana dapat dilakukan dengan cara memilih beberapa
koefisien dominan saja dan mengabaikan yang lain. Sebagai contoh, hasil
transformasi DCT untuk sinyal s adalah S=[11.5 -6.9 1.5 0.1]T. Jika dipilih dua
komponen dominan saja (yaitu kompresi duakalinya) dan mengisi komponen
16 Andriyan B. Suksmono
sisanya dengan nol, maka kita dapat pendekatan dari S , yaitu S_hat = [11.5 -
6.9 0 0]. Hasil transformasi balik sinyal ini (dengan perintah Matlab: D'*[11.5 -
6.9 0 0]' ) maka akan diperoleh nilai pendekatan dari sinyal asal sebesar
s_hat=[1.2 3.9 7.6 10.3]. Sebaliknya, jika dua komponen tak-dominan yang
dipilih, dengan kompresi yang sama akan diperoleh s_hat1= D'*[0 0 1.5
0.1]'=[0.8 -0.8 -0.7 0.7]T yang jauh lebih buruk dari sinyal aslinya.
1 2 3 40
20
40
60
80
100
120
140Sebaran energi di kawasan DCT
1 2 3 40
20
40
60
80
100
120
140Sebaran energi di kawasan Hadamard
Gb.1.6 Perbandngan sebaran energi dalam kawasan DCT dan kawasan
Hadamard
Ukuran persis dari baik-buruk pendekatan sinyal yang satu terhadap yang lain
dapat ditentukan dari jarak Euclidian kedua sinyal, yakni kurangkan kedua
sinyal komponen demi komponen, lalu kuadratkan setiap komponen dan
jumlahnya. Akar kuadrat dari hasil terakhir menunjukkan jarak yang kita cari.
Analisis untuk transformasi Hadamard sejalan dengan penjelasan ini, tinggal
menggantikan D dengan H2.
Pada sub bab sebelumnya, diperoleh hasil berupa implikasi tak-langsung dari
WHUP, yaitu sinyal yang tersebar dikawasan waktu akan terkumpul di kawasan
frekuensi dan begitu pula sebaliknya. Hasil ini telah ditunjukkan dengan
Matlab, dimana kita menghitung energi dari koefisien transformasi Fourier
diskrit. Lebih lanjut lagi, sifat ini dimiliki juga oleh transformasi ortogonal atau
uniter yang lainnya, misalnya DCT dan transformasi Hadamard. Sebuah teknik
kompresi data yang sederhana telah dijelaskan, yaitu dengan mengambil dua
dari komponen dominan koefisien transformasi DCT. Hasil inversi dari data
kawasan transformasi yang telah dikompresi dengan cara ini mirip dengan
sinyal aslinya, setidaknya jika dibandingkan dengan pilihan koefisien lainnya.
Memahami Penginderaan Kompresif dengan MATLABTM 17
Kompresi JPEG (lama) memakai DCT dan bukan transformasi Fourier karena
pertimbangan praktis. Menyimpan koefisien kompleks yang terdiri dari bagian
riil dan imajiner terlalu merepotkan dan kurang efisien. Lagipula, DCT adalah
hampiran yang cukup baik terhadap transformasi idel KLT (Karhunen-Love
Tranform) untuk sinyal Markov orde satu. Cara kerja kompresi JPEG mirip
dengan kompresi sederhana yang telah dijelaskan, dengan tambahan kompresi
tak-merugi entropy coding.
Pada “kompresi” DCT diatas, telah dipilih komponen yang dominan dan
letaknya bisa berubah bergantung pada sinyal masukannya, meskipun pada
JPEG letaknya komponen ini dan alokasi bit-nya telah ditentukan oleh
standard. Pemilihan yang mengikuti bentuk sinyal seperti ini disebut pemilihan
secara adaptif, pada umumnya hal ini sebisa mungkin dihindari. Lagipula,
kompresi dilakukan pada data dijital yang saat pengumpulan-nya (dipotret atau
direkam) menghasilkan sejumlah besar data untuk kemudian dibuang pada
saat kompresi. Teknik terbaru yang disebut Compressed Sensing/Compressive
Sampling (CS) menghindari ketidakefisienan ini. Disamping itu, CS juga tidak
memerlukan pencuplikan koefisien dominan secara adaptif karena bisa diambil
yang mana saja asalkan batas minumum terpenuhi. Yang terakhir, teori CS
memerlukan generalisasi dari hubungan waktu-frekuensi supaya prinsip
ketidakpastian berlaku.
1.5 Prinsip Ketidakpastian untuk Kawasan Waktu-Frekuensi Diskrit
Prinsip ketidakpastian Weyl-Heisenberg (WHUP) menyatakan bahwa sinyal
kontinyu tidak mungkin terlokalisir sekaligus pada kawasan waktu dan
frekuensi. Derajat lokalisasi suatu sinyal dinyatakan sebagai lebar/luas wilayah
dimana sinyal ini memiliki nilai yang tidak nol, atau daerah-dukung (RoS-region
of support) dari fungsi atau sinyal tersebut. Sebagai contoh, fungsi delta Dirac
δ(t) hanya memiliki nilai tak nol pada waktu t=0; dengan demikian RoS-nya
adalah satu. Sebaliknya, sinyal sinusoidal A.sin(ωt+φ) terbentang ke seluruh
kawasan waktu sehingga memiliki RoS di kawasan waktu yang tak berhingga.
18 Andriyan B. Suksmono
Pengertian RoS untuk sinyal (waktu-) diskrit mirip dengan penjelasan diatas,
yaitu daerah atau sekumpulan indeks waktu n dimana sinyal diskrit s(n)
bernilai tak nol. Sinyal diskrit s(n) sepanjang N cuplikan akan memiliki
transform Fourier
( ) ( )∑−
=
−⋅=
1
0
21 N
n
Nknj
ensN
kSπ
; k=0, 1, 2, … , N-1 (1.8)
Untuk sinyal ini, WHUP menyatakan bahwa penjumlahan RoS (dilambangkan
sebagai supp) sinyal dikawasan waktu dan RoS di kawasan frekuensi dibatasi
oleh suatu nilai tertentu, yakni:
|supp(s)| +|supp(S)| ≥ 2√N (1.9)
Nilai terkecil dari jumlah kedua RoS ini, yaitu 2√N, dicapai oleh fungsi Dirac
Comb yang support-nya bersifat invarian terhadap transformasi Fourier. Fungsi
ini dinyatakan sbb:
( )⎩⎨⎧ −==
=lainnya
NmNmnuntukns;0
1,...,1,0;;1 (1.10)
Gambar 1.7 memperlihatkan sinyal s(n) dan transform Fouriernya untuk kasus
N=16.
0 5 1 0 1 50
0 .2
0 .4
0 .6
0 .8
1
F re q u e n c y d o m a in a b s (D ira c C o m b )
F re q u e n c y
Mag
nitu
de
0 5 1 0 1 50
0 .2
0 .4
0 .6
0 .8
1
T im e -d o m a in D ira c C o m b
T im e
Am
plitu
de
DFT/IDFT
s(n) S(k)
|supp(s)| = 4 |supp(S)| = 4|supp(s)| + |supp(S)| = 8 = 2√N
0 5 1 0 1 50
0 .2
0 .4
0 .6
0 .8
1
F re q u e n c y d o m a in a b s (D ira c C o m b )
F re q u e n c y
Mag
nitu
de
0 5 1 0 1 50
0 .2
0 .4
0 .6
0 .8
1
T im e -d o m a in D ira c C o m b
T im e
Am
plitu
de
DFT/IDFT
s(n) S(k)
|supp(s)| = 4 |supp(S)| = 4|supp(s)| + |supp(S)| = 8 = 2√N
Gb.1.7 Fungsi ekstremal sisir Dirac memenuhi batas bawah prinsip
ketidakpastian
Memahami Penginderaan Kompresif dengan MATLABTM 19
Sifat ini menunjukkan bahwa batas bawah dari prinsip ketidapkastian bersifat
ketat (tight), dan telah dipenuhi oleh sebuah fungsi ekstremal berupa Dirac
comb. Kedua gambar sinyal diatas dapat dibuat dengan memanfaatkan script
Matlab berikut ini:
%--------------------------------------------------
% Sifat Invarian Sisir Dirac (Dirac Comb)
% terhadap Transformasi Fourier
%---------------------------------------------------
clear; clc;
N=16; s=zeros(N,1);
sqrt_N = round(sqrt(N));
maxIdx = floor(N/sqrt_N);
for m=1:maxIdx; s(m*sqrt_N) =1; end
figure(1);stem(s);title('Time-domain Dirac Comb');
xlabel('Time');ylabel('Amplitude');
%Dirac Comb in Frequency Domain
S=fft(s)/sqrt(N);
figure(2);stem(abs(S)); title('Frequency domain abs(Dirac Comb)')
xlabel('Frequency');ylabel('Magnitude');
1.6 Prinsip Ketidakpastian untuk Sebarang Kawasan Diskrit
Apakah prinsip ketidakpastian berlaku juga untuk pasangan kawasan selain
waktu-frekuensi? Seperti telah diuraikan pada tulisan sebelumnya, suatu sinyal
dapat dilihat dari berbagai kawasan melalui transformasi. Transformasi pada
dasarnya adalah perubahan basis dan operasi untuk sinyal diskrit dapat dilihat
sebagai perkalian antara vektor sinyal dengan matriks transformasi Φ.
20 Andriyan B. Suksmono
Gb.1.8 Diagram keterkaitan transformasi dalam GUP
Suatu matriks transformasi Φ akan berisi vektor-vektor basis lengkap yang
membentang ruang vektor. Ini berarti bahwa setiap sinyal dalam kawasan ini
dapat dilihat sebagai kombinasi linier dari vektor-vektor basis tersebut. Untuk
sepasang basis ortonormal (saling tegak-lurus dan panjangnya satu) Φ dan Ψ,
Elad dan Bruckstein memperkenalkan sebuah prinsip ketidakpastian yang
diperumum atau GUP (Generalized Uncertainty Principle):
( )ΨΦ≥Γ+Γ
,2
21 μ (1.11)
dimana:
( ) ψφμψφ
,max,, Ψ∈Φ∈
=ΨΦ (1.12)
Pada ekspresi diatas, Γ1 adalah support dari sinyal dalam basis (kawasan) Φ,
sedangkan, Γ2 adalah support dari sinyal dalam basis (kawasan) Ψ. Besaran
μ(Φ,Ψ) disebut koherensi (mutual coherence) antara kedua basis dan haruslah
memenuhi syarat
( ) 1,1 ≤ΨΦ≤ μN (1.13)
s(n) Ψ S(k) Φ s’(m)
μ(Φ,Ψ)
sinyal asli sinyal hasil transformasi
dengan Ψ
sinyal hasil transformasi
den an Φ koherensi
pasangan basis
g
Generalized Uncertainty Principle |supp(s)| + |supp(S)| ≥ 2/|μ(Φ,Ψ)|
Memahami Penginderaan Kompresif dengan MATLABTM 21
Koherensi menggambarkan tingkat keserupaan kedua basis: nilainya akan kecil
jika keduanya berbeda dan akan bernilai satu jika mereka identik.
Sebagai contoh, tinjau kasus WHUP kawasan diskrit yang merupakan kasus
khusus dari GUP. Sinyal s(n) berada pada kawasan waktu memiliki pasangan
S(k) pada kawasan frekuensi. Bisa dianggap bahwa s(n) memiliki basis berupa
matriks identitas I, sedangkan S(k) memiliki basis Fourier diskrit. Dengan
demikian bisa dianggap bahwa pasangan basis ini adalah
I=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
=Φ
1...00............0...100...01
(1.14)
( )( ) ⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
=Ψ
−−−
−
111
1
...1.........
...11...11
1
NNN
kn
N
WWW
WWN
, dimana Ni
eWπ2
−= (1.15)
Nilai maksimum dari perkalian skalar vektor basis |<φ,ψ>| akan tercapai untuk
sebarang pasangan vektor dan semuanya akan menghasilkan koherensi yang
bernilai sama dengan 1/√N akibat faktor normalisasi dari basis Fourier. Dengan
demikian GUP akan menjadi |Γ1|+|Γ1|≥2/√N atau |supp(s)|+|supp(S)|≥2/√N
seperti pada WHUP untuk kasus diskrit yang telah diuraikan sebelumnya.
Tingkat koherensi beberapa pasangan basis lain dapat dihitung dengan
menggunakan kode Matlab berikut ini.
%Hitung koherensi beberapa pasangan basis
N=4; %dimensi basis
I=eye(N,N); %basis identitas / waktu
DFT=fft(eye(N,N))/(sqrt(N)); %basis DFT
H2=[1 1 1 1; 1 -1 1 -1; 1 1 -1 -1; 1 -1 -1 1]/2;
mu1=mu_GUP(I,DFT); %koherensi waktu-frekuensi
disp(sprintf('Koherensi basis waktu-frekuensi %f\n',mu1));
mu2=mu_GUP(H2,DFT); %koherensi Hadamard-Fourier
disp(sprintf('Koherensi basis Hadamard-Fourier %f\n',mu2));
% === FUNGSI %====
22 Andriyan B. Suksmono
function [mu_value]= mu_GUP(PHI, PSI);
% fungsi untuk menghitung koherensi dua buah sistem basis
% untuk memperlihatkan Generalized Uncertainty Principle
% masukan: PHI, PSI dua buah matriks berdimensi sama
[M,N]=size(PHI);
G=PHI'*conj(PSI);
mu_value = sqrt(M)*max(max(abs(G)));
Seperti pada kompresi dengan matriks ortogonal, metoda CS (compressed
sensing) juga mengambil komponen dominan dari suatu sistem basis. Namun
demikian, basis yang dipakai bersifat overcomplete, dimana ada banyak sekali
kemungkinan memilih basis yang sesuai untuk menyatakan suatu sinyal. Oleh
karena itu perlu kendala tambahan agar solusi bisa ditemukan, yakni sinyal
yang direkonstruksi dianggap bersifat sparse. Metoda CS memerlukan dua buah
basis pada saat melakukan pencuplikan atau sensing, yaitu sparsity basis Ψ
dan projection basis Φ. Tingkat koherensi kedua basis menentukan batas
minimum banyaknya cuplikan untuk merekonstruksi suatu sinyal secara
eksak.
Memahami Penginderaan Kompresif dengan MATLABTM 23
II. Dekomposisi Sinyal dan Pencarian Basis Ideal
2.1 Basis Ortogonal dan Lengkap dari Sinyal
Pada pembahasan sebelumnya telah ditunjukkan cara memanfaatkan
transformasi ortogonal untuk melakukan kompresi sinyal. Secara intuitif dapat
difahami jika suatu sistem kompresi menghendaki terkumpulnya energi pada
kawasan transformasi hanya ke sejumlah kecil koefisien supaya tingkat
kompresi tinggi dengan kualitas hasil rekonstruksi yang terjaga. Namun
demikian hal ini tidak selalu bisa dilakukan karena setiap sistem basis hanya
cocok untuk seglongan sinyal-sinyal tertentu saja. Basis sinusoid dalam
transformasi Fourier atau DCT melakukan pengkompakan energi dengan baik
jika sinyal asalnya tersebar di kawasan waktu. Sebaliknya, sinyal yang
terlokalisir dalam kawasan ini akan baik jika dipakai basis impuls atau wavelet.
0 2 4 8 16 32 601
2
4
8
16
32
60Vektor basis impuls
0 10 20 30 40 50 60
2
4
8
16
32
60
Vektor basis DCT
Gb.2.1 Beberapa vektor basis impuls Gb.2.2 Beberapa vektor basis DCT
Gambar 2.1 dan 2.2 diatas memperlihatkan beberapa vektor basis dari sistem
basis impuls Φ dan sistem basis DCT Ψ, keduanya dilukiskan pada kawasan
waktu. Sifat lokalisasi sinyal terlihat dengan jelas dari kedua gambar, yakni
basis impuls terlokalisir sedangkan DCT tersebar. Program Marlab berikut
dapat dipakai untuk menampilkan vektor-vektor basis seperti diatas.
%-----------------------------------------------
% Sistem Basis Impuls dan DCT
24 Andriyan B. Suksmono
%-----------------------------------------------
N=64; %dimensi vektor basis
x=1:N; %buat sumbu x
PHI=eye(N,N); %Basis Impulse
PSI=dct(eye(N,N)); %Basis DCT
figure(1);plot(x,PHI(2,:),x,1+PHI(4,:),x,2+PHI(8,:),...
x,3+PHI(16,:),x,4+PHI(32,:),x,5+PHI(60,:));
title('Vektor basis impuls');
figure(2);plot(x,PSI(2,:),x,0.5+PSI(4,:),x,1+PSI(8,:), ...
x,1.5+PSI(16,:),x,2+PSI(32,:),x,2.5+PSI(60,:));
title('Vektor basis DCT');
Basis mana yang harus dipilih jika suatu sinyal merupakan campuran dari
komponen sinusoid dan impuls? Tinjau suatu sinyal s(n) yang terbentuk dari
sistem basis Φ berupa vektor basis ke-4 dan ke-32 dan dua buah lainnya dari
sistem basis Ψ, yaitu vektor basis ke-8 dan ke-60. Prinsip kompresi sederhana
yang sudah dijelaskan dapat dicobakan untuk setiap sistem basis, yaitu dengan
mengalikan matriks transformasi-nya dengan vektor s(n),
Proyeksi sinyal ke basis impuls: sS ⋅Φ=1 (2.1)
Proyeksi sinyal ke basis DCT: sS ⋅Ψ=2 (2.2)
Langkah berikutnya, ambil beberapa koefisien dengan energi (magnitudo)
terbesar. Tentu cara lain dapat dilakukan, misalnya tresholding dengan mencari
koefisien-koefisien yang energi/magnitudo-nya berada diatas ambang batas nilai
tertentu. Untuk indeks dari koefisien k∈K dari vektor basis terpilih,
rekonstruksi dilakukan dengan cara menjumlahkan vektor dari basis yang telah
diboboti, yaitu:
Rekonstruksi dng basis impuls: ( ) ( ) ( )∑∈
Φ=Kk
nkkSns ,ˆ 11 (2.3)
Rekonstruksi dng basis DCT: ( ) ( ) ( )∑∈
Ψ=Kk
nkkSns ,ˆ 22 (2.4)
Memahami Penginderaan Kompresif dengan MATLABTM 25
Kinerja dari rekonstruksi sinyal dilihat dari energi sinyal kesalahan (error) rata-
rata atau RMSE (Root Mean Square Error) masing-masing, yang dinyatakan
sebagai:
( )( )∑−
=
=1
0
21 N
n
neN
RMSE dimana ( ) ( ) ( )nsnsne ˆ−= (2.5)
Semakin kecil nilai ini, maka secara obyektif hasil rekonstruksi semakin baik.
Nilai RMSE yang besar menandakan terjadinya distorsi yang besar pada sinyal.
0 10 20 30 40 50 60-0.4
-0.2
0
0.2
0.4
0.6
0.8
1sinyal kombinasi impuls dan DCT
n
s(n)
Gb.2.3 Sinyal asal s(n)
Gambar 2.3 menunjukkan sinyal asal s(n) berupa gabungan dua sinusoid dan
dua sinyal impuls. Sinyal ini akan didekomposisi dengan basis impuls dan
kemudian dengan basis DCT. Hasil proyeksi dari sinyal ini ke kedua basis akan
menghasilkan koefisien yang dinyatakan sebagai vektor S1 dan S2. Untuk
mengamati sebaran energi, nilai mutlak S1 dan S2 diurutkan dan kemudian
dibuatkan kurvanya.
26 Andriyan B. Suksmono
0 10 20 30 40 50 600
0.2
0.4
0.6
0.8
1
1.2
1.4magnitudo koefisien terurut
index
|S|-t
erur
ut
proyeksi Impulsproyeksi DCT
Gb.2.4 Magnitudo koefisien terurut
Kedua kurva diberikan pada Gambar 2.4. Terlihat bahwa, meskipun beberapa
koefisien awal dominan, penurunan nilai energi koefisien lainnya tidak terlalu
tajam. Dengan demikian, pengambilan sejumlah kecil komponen dominan akan
tetap menghasilkan sinyal sisa yang cukup tinggi energinya yang
menggambarkan rekonstruksi sinyal yang kurang berhasil.
0 10 20 30 40 50 60-0.4
-0.2
0
0.2
0.4
0.6
0.8
1perbandingan hasil rekonstruksi
n
s(n)
aslirek. impulsrek. DCT
Gb.2.5 Perbandingan sinyal asli dng rekonstruksi
Memahami Penginderaan Kompresif dengan MATLABTM 27
0 10 20 30 40 50 60
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1sinyal kesalahan
n
e(n)
sinyal error impulsesinyal error DCT
Gb.2.6 Sinyal kesalahan e(n)
Gambar 2.5 memperlihatkan hasil rekonstruksi dengan menggunakan delapan
buah vektor basis. Kurva biru merupakan hasil dari basis impuls, sedangkan
kurva merah dari basis DCT. Perbandingan dengan sinyal asli yang dinyatakan
sebagai titik-titik berwarna hitam memperlihatkan beda yang cukup signifikan.
Perbedaan ini semakin jelas setelah sinyal kesalahan e1(n) dan e2(n)
diperlihatkan pada Gambar 2.6.
0 10 20 30 40 50 600
0.005
0.01
0.015
0.02
0.025kinerja RMSE pengkodean
jumlah koefisien
RM
S E
rror
ImpulseDCT
Gb.2.7 Kinerja RMSE
Kinerja rekonstruksi dapat dievaluasi dengan mengukur RMSE berbagai jumlah
vektor basis seperti yang diperlihatkan pada Gambar 7. Penurunan RMSE
28 Andriyan B. Suksmono
terjadi secara perlahan dan mencapai nol ketika seluruh N-buah vektor basis
diikutsertakan; yang artinya tidak ada kompresi. Program Matlab berikut dapat
dipergunakan untuk menunjukkan proses proyeksi dan rekonstruksi diatas.
% Pencarian basis
clear;%close all;clc;
N=64; %dimensi vektor basis
x=1:N; %buat sumbu x
PHI=eye(N,N); %Basis Impulse
PSI=dct(eye(N,N)); %Basis DCT
%bentuk sinyal dari basis DCT saja
s1=zeros(N,1);s1=zeros(N,1);
s1=(PHI(4,:)+PHI(32,:))';
s2=(PSI(8,:)+PSI(60,:))';
s=zeros(N,1); s=s1+s2;
figure(1);plot(x,s); title('sinyal kombinasi impuls dan DCT');
xlabel('n');ylabel('s(n)');
S1=PHI*s; S2=PSI*s; %cari koefisien
%urutkan koefisien dan ambil dua terbesar
[S1_oval,S1_oidx]= sort(abs(S1),'descend');
[S2_oval,S2_oidx]= sort(abs(S2),'descend');
% rekonstruksi sinyal
s_hat1=zeros(N,1); s_hat2=zeros(N,1);
for k=1:8; s_hat1=s_hat1+(S1(S1_oidx(k))*PHI(S1_oidx(k),:))'; end;
for k=1:8; s_hat2=s_hat2+(S2(S2_oidx(k))*PSI(S2_oidx(k),:))'; end;
%hitung kesalahan
e1=s-s_hat1;e_rms1=sqrt(e1'*e1)/N;disp(sprintf('rms error-Impulse %f',e_rms1));
e2=s-s_hat2;e_rms2=sqrt(e2'*e2)/N;disp(sprintf('rms error-DCT %f',e_rms2));
figure(2); plot(x,S1_oval,'r-', x,S2_oval,'b-'); title('magnitudo koefisien terurut');
xlabel('index');ylabel('|S|-terurut'); legend('proyeksi Impuls','proyeksi DCT');
figure(3);plot(x,s,'k.',x,s_hat1,'b:',x,s_hat2,'r-');title('perbandingan hasil rekonstruksi');
xlabel('n');ylabel('s(n)'); legend('asli','rek. impuls','rek. DCT');
figure(4);plot(x,e1,'r-',x,e2,'b--');title('sinyal kesalahan');
xlabel('n');ylabel('e(n)');
legend('sinyal error impulse','sinyal error DCT');
Memahami Penginderaan Kompresif dengan MATLABTM 29
%data error beberapa nilai k
x_e=[2 4 8 16 32 64]';
e_PHI=[2.18e-2 2.05e-2 1.78e-2 1.33e-2 5.94e-3 0.0]';
e_PSI=[2.16e-2 2.02e-2 1.77e-2 1.32e-2 6.28e-3 0.0]';
figure(5);plot(x_e,e_PHI,'r-',x_e,e_PSI,'b-'); title('kinerja RMSE pengkodean');
xlabel('jumlah koefisien');ylabel('RMS Error'); legend('Impulse','DCT');
Melihat hasil yang kurang baik dengan satu buah basis ortogonal saja, apakah
mungkin terjadi peningkatan kinerja jika dua atau lebih sistem basis
digabungkan? Memang cara inilah yang paling masuk akal, namun demikian
ada satu masalah besar yang sudah menanti. Gabungan kedua basis akan
menghasilkan suatu basis baru yang dimensinya menjadi 2NxN. Dilihat dari
sistem persamaan linier, permasalahan berubah menjadi lebih sulit karena
diharuskan mencari solusi dari N buah persamaan dengan 2N buah peubah
yang tak diketahui (Underdetermined Liniear Equations).
Tinjau suatu matriks transformasi A berukuran 2x2 yang bisa dianggap
menyatakan transformasi vektor pada bidang atau transformasi sinyal 2
cuplikan dari x=[x1 x2] T menjadi y=[y1 y2]T. Pencarian koefisien transformasi x(n)
yang tepat dari sinyal teramati y(n) dapat dinyatakan sebagai persamaan
matriks: Ax=y, atau
⎟⎟⎠
⎞⎜⎜⎝
⎛=⎟⎟
⎠
⎞⎜⎜⎝
⎛⎟⎟⎠
⎞⎜⎜⎝
⎛
2
1
2
1
2221
1211
yy
xx
aaaa
Bentuk sistem persamaan liniernya adalah
1212111 yxaxa =+
2222121 yxaxa =+
Karena yang takdiketahui ada dua {x1,x2} dan ada dua persamaan, jika matriks
A tak-singular tau memiliki inverse, maka sistem persamaan linier diatas dapat
dipecahkan dengan eliminasi Gauss atau mengalikan inverse A dengan vektor
[y1 y2 ]T dari kiri.
30 Andriyan B. Suksmono
Penggabungan sistem basis A dengan basis baru B menjadi D=[A;B] akan
membuat persamaan matriks diatas menjadi
⎟⎟⎠
⎞⎜⎜⎝
⎛=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⎟⎟⎠
⎞⎜⎜⎝
⎛
2
1
4
3
2
1
2221
1211
2221
1211
yy
xxxx
bbbb
aaaa
(2.6)
Atau dinyatakan sebagai sistem persamaan linier berikut:
1412311212111 yxbxbxaxa =+++ (2.7.a)
2422321222121 yxbxbxaxa =+++ (2.7.b)
Sistem persamaan linier diatas terdiri dari empat buah variabel, yaitu {x1, x2, x3,
x4} sedangkan hanya ada dua persamaan linier saja. Inilah yang disebut sebagai
sistem persamaan linier yang underdetermined dan pemecahannya tidak
mudah.
Untuk kasus sinyal, karena masing-masing sistem basis bersifat lengkap, akan
ada banyak sekali kombinasi yang muncul untuk menyatakan suatu vektor s(n).
Dapat ditunjukkan bahwa pencarian basis ke seluruh kemungkinan
memerlukan sumberdaya komputasi yang sangat besar karena termasuk
permasalahan kombinatorial.
2.2 Representasi Sinyal dengan Kamus Basis
Penggabungan berbagai basis ortogonal menjadi satu buah kamus-basis yang
lewat-lengkap (overcomplete) diharapkan dapat membuat dekomposisi sinyal
lebih efisien. Peningkatan kinerja kompresi dapat terjadi akibat dari dua hal: (1)
tingkat kompresi tinggi karena koefisien yang diambil hanya sedikit, dan (2)
sejumlah kecil koefisien tadi cukup untuk merekonstruksi sinyal secara baik.
Namun demikian pencarian vektor didalam basis overcomplete dengan kriteria
cacah koefisien terkecil memerlukan sumberdaya komputasi yang sangat besar.
Memahami Penginderaan Kompresif dengan MATLABTM 31
Melalui prinsip ketidakpastian, masalah ini dapat diubah menjadi optimisasi
konveks yang lebih mudah dipecahkan, asalkan sinyal bersifat sparse.
Tinjau gabungan M buah basis ortogonal Φ1, Φ2,..., ΦM yang masing-masing
berukuran N×N menjadi satu buah basis overcomplete Φ = Φ1∪Φ2∪...∪ΦM. Basis
baru Φ yang juga disebut sebagai dictionary (kamus basis), akan memiliki
dimensi N×(MN). Suatu sinyal s=[s1 s2 ... sN]T sepanjang N cuplikan dapat
dinyatakan dengan berbagai macam kombinasi linier vektor-vektor basis yang
ada didalam Φ, bahkan dari masing-masing sistem basis ortogonal Φm karena
bersifat lengkap, atau semua kombinasi yang mungkin dari Φm. Dengan
pertimbangan efisiensi yang dituntut oleh kinerja kompresi sinyal, haruslah
dipilih kombinasi berbentuk:
∑=γ
γγ ϕαs (2.8)
dimana ϕγ adalah vektor basis didalam Φ, sedangkan γ=(m,i) menyatakan bahwa
basis tersebut adalah vektor basis ke–i didalam sistem basis Φd. Syarat
kompresi efisien mengharuskan cacah αγ yang sekecil mungkin. Cacah dari αγ
dapat dituliskan secara ringkas sebagai
∑∀
=γ
γαα0
0 (2.9)
Sebagai ilustrasi arti norm ||α||0 , tinjau contoh perhitungan berikut ini.
Suatu dictionary Φ yang merupakan hasil penggabungan 2 buah basis
ortogonal memiliki dimensi 4×2, dimana
⎟⎟⎠
⎞⎜⎜⎝
⎛=Φ
1001
1 , ⎟⎟⎠
⎞⎜⎜⎝
⎛−
=Φ11
112
12 ; ⎟
⎟⎠
⎞⎜⎜⎝
⎛−
=Φ∪Φ=Φ2
12
12
12
1
21 1001
Tiga dari empat basis didalam Φ ini dapat dipakai untuk menyatakan
sebuah sinyal dua cuplikan, misalnya s=[-0.75/√2 (1-0.75/√2)]T. Sinyal
ini dapat terbentuk dari γ∈Γ={(1,2), (2,1), (2,2)}, masing-masing dengan
koefisien α(1,2) = 0.25, α(2,1) = -0.25, dan α(2,2) =- 0.5. Dengan demikian
|α(1,2)| = 0.25, |α(1,2)| = 0.25, dan |α(2,2)|=0.5, sehingga
32 Andriyan B. Suksmono
( ) ( ) ( ) 31115.025.025.0 0000
2,2
0
1,2
0
2,10=++=++=++= αααα
Terlihat bahwa norm ||α||0 hanya menghitung cacah (count) dari
koefisien terpilih, tidak peduli berapapun nilai dari |α| karena bilangan
positif yang dipangkatkan nol akan sama dengan satu.
Pencarian basis representasi sinyal s didalam Φ dengan cacah terkecil disebut
sebagai masalah (P0) yang dapat dinyatakan sebagai optimisasi berikut:
(P0): 0min α , s.t. (2.10) ∑=
γγγ ϕαs
Mengingat ada sejumlah tak-berhingga solusi dari sistem persamaan linier yang
underdetermined, apakah nilai minimum ini dapat ditemukan? Untuk pasangan
basis waktu-frekuensi, Donoho memberikan batasan supaya pencarian
menemukan solusi yang unik dengan menggunakan prinsip ketidakpastian
sebagai berikut.
Teorema 1. Jika s(n) adalah sinyal waktu diskrit sepanjang N cuplikan yang
memiliki Nt buah support (koefisien tak-nol), sedangkan S(k) adalah transform
Fourier sinyal tersebut yang memiliki Nw buah support, maka NtNω ≥N atau
Nt + Nω ≥ 2√N (2.11)
Jika cuplikan yang bernilai tak-nol (support) dari sinyal di kedua wilayah kurang
dari setengah batas prinsip ketidakpastian diatas, maka P0 akan memiliki solusi
yang unik.
Teorema 2. Tinjau sinyal s(n) yang tersusun atas himpunan T dari vektor basis
kawasan waktu dan himpunan Ω basis dari kawasan frekuensi. Jika
|T| + |Ω| ≤ √N (2.12)
maka P0 akan memiliki solusi yang unik. Sementara itu akan ada sinyal s(n) lain
sedemikian hingga |T| + |Ω| = √N dan P0 akan memiliki solusi yang tidak unik.
Memahami Penginderaan Kompresif dengan MATLABTM 33
Pada teorema diatas, notasi |.| menyatakan kardinalitas atau banyaknya
anggota himpunan. Donoho memberikan pembuktian dari teorema diatas
dengan meninjau kasus fungsi ekstremal sisir Dirac (Dirac comb) yang telah
dijelaskan sebelumnya. Untuk N bilangan kuadrat sempurna (perfect square),
misalnya 4, 9, 16, ... dst, sisir Dirac memiliki support sebesar √N di kawasan
waktu maupun kawasan frekuensi. Ini berarti bahwa sebuah sisir Dirac dapat
dinyatakan sebagai √N buah vektor basis impuls atau √N buah basis Fourier,
sehingga representasinya didalam basis gabungan impuls-Fourier tidaklah unik.
Akibatnya solusi dari P0 juga tidak unik. Sebaliknya, jika jumlah support-nya
kurang dari K=√N, maka akan hanya ada satu buah solusi saja, sehingga solusi
P0 akan bersifat unik.
Meskipun solusinya unik, memecahkan masalah P0 bukanlah hal yang mudah.
Untuk mengatasi hal ini, Chen dan Donoho mengajukan teknik Basis Pursuit,
yaitu dengan menggantikan P0 dengan optimisasi P1 sebagai berikut:
(P1): 1min α , s.t. (2.13) ∑=
γγγ ϕαs
Keberadaan solusi P1 memerlukan batasan support sinyal didalam Φ yang lebih
kecil lagi, yaitu kurang dari setengah batas P0. Untuk basis waktu-frekuensi,
ketentuan ini dinyatakan dalam teorema berikut.
Teorema 3. Untuk sinyal s seperti pada Teorema 2, jika
|T| + |Ω| ≤ (1/2)√N (2.14)
Maka solusi dari P1 adalah unik, yang juga merupakan solusi unik untuk P0.
Sementara itu, ada sinyal yang jika |T| + |Ω| = √N dimana P1 memiliki solusi
yang tidak unik.
Sinyal dengan support dibawah batas ketentuan P1 ini disebut sebagai sinyal
sparse karena dapat dibentuk hanya dari sejumlah kecil vektor basis didalam Φ.
Secara singkat dapat disebutkan sebuah hasil penting berikut ini:
34 Andriyan B. Suksmono
jika sinyal s bersifat sparse dalam kawasan waktu-frekuensi, maka
dekomposisinya bersifat unik, dan algoritma basis pursuit atau P1 akan dapat
menemukannya.
Bagaimana dengan pasangan basis selain waktu-frekuensi? Pada tulisan
sebelumnya dikatakan bahwa prinsip ketidakpastian dikawasan lain telah
diperumum oleh Elad dan Bruckstein dengan melibatkan koherensi antara
sistem basis Φ1 dan Φ2, yaitu μ(Φ1,Φ2), yang secara konsisten akan kembali
menjadi WHUP jika kedua basis adalah pasangan waktu-frekuensi. Dasar
pemikiran ini dipakai oleh Elad-Bruckstein maupun Donoho-Huo untuk
menghasilkan teorema keunikan dari solusi P1 berikut.
Teorema 4. Andaikan Φ1 dan Φ2 adalah dua basis ortonormal dengan koherensi
μ(Φ1,Φ2) dan andaikan Φ=Φ1∪Φ2 adalah gabungan kedua basis. Jika suatu sinyal
waktu diskrit s dapat dinyatakan sebagai s=Φα dengan α memenuhi syarat
||α||0 <(1/2){1+(μ(Φ,Ψ))-1} (2.15)
maka α adalah solusi unik dari (P1) dan juga merupakan solusi unik dari (P0).
Dalam bahasa yang non-teknis, teorema ini mengatakan bahwa suatu sinyal s
yang terbentuk dari kombinasi linier vektor-vektor basis didalam kamus-basis Φ
dapat ditemukan vektor basis penyusunnya dengan memecahkan masalah
optimisasi (P1), asalkan jumlah vektor basis penyusun sinyal ini kurang dari
0.5(1+μ-1).
Seberapa besar signifikansi perubahan optimisasi P0 menjadi P1? Meskipun
sekilas optimisasi ini hanya mengubah norm dari l0 menjadi l1, perubahan yang
terjadi sangat besar. Saat ini, kebanyakan algoritma optimisasi didalam
pengolahan sinyal justru menggunakan kriteria atau fungsi biaya kuadratis
yang tak lain adalah l2. Penjelasan diatas bahkan menginginkan pencarian
solusi ideal dengan kriteria l0. Dari sudut pandang pencarian ruang solusi,
optimisasi dengan kriteria l2 dan l1 bersifat konveks, sedangkan l0 bukan
Memahami Penginderaan Kompresif dengan MATLABTM 35
konveks. Algoritma untuk mencari solusi dari optimisasi konveks yang efisien
telah banyak tersedia. Transformasi dari masalah l0 menjadi l1 ini disebut juga
sebagai proses konveksifikasi.
Salah satu contoh yang sederhana didalam statistik adalah perhitungan untuk
mencari nilai tengah suatu populasi. Meminimumkan nilai kesalahan kuadrat
terkecil, yang tak lain adalah l2, akan menghasilkan nilai mean cuplikan,
sedangkan jika yang diminumkan adalah bilai absolut kesalahan atau l1,
solusinya akan berupa median. Pada pengolahan sinyal atau citra dijital para
peneliti menemukan bahwa tapis median lebih kokoh (robust) terhadap derau
jika dibandingkan dengan tapis mean. Analogi yang sama dapat dipakai untuk
menjelaskan mengapa P1 ini memiliki peranan yang sangat penting dalam
pencarian basis sinyal.
2.3 Batas Keunikan P0 dan P1
Pencarian basis untuk pasangan transformasi waktu-frekuensi telah diperluas
untuk sebarang pasangan basis ortonormal. Berbagai basis baru yang telah
dietmukan belakangan ini, baik yang ortonormal (mis. wavelet, Fourier, DCT,
Hadamard, ridgelets), yang bukan-ortobasis (mis. Gabor, pseudo-polar FFT),
maupun transformasi tak-kuadrat (Laplacian pyramid, wavelet invarian-geser)
perlu dielaborasi untuk menyatakan berbagai macam bentuk sinyal atau citra.
Pencarian vektor basis ”ideal” untuk menyatakan sinyal didalam gabungan
berbagai macam basis memerlukan generalisasi teorema keunikan representasi
sinyal sparse. Tulisan ini memberikan penjelasan singkat hasil yang telah
dicapai oleh Elad-Bruckstein dan perbedaan/persamaannya dengan yang
diperoleh Donoho.
2.3.1 Batas Keunikan P0 dan P1 Elad-Bruckstein untuk Pasangan Orto-
basis
Teorema 4 pada tulisan terdahulu memberikan batas Donoho-Huo (DHB-
Donoho Huo Bound) dari jumlah komponen penyusun sinyal ||γ||0 untuk
pasangan orto-basis Θ dan Ψ supaya sinyal s= [Ψ;Θ]γ dapat dinyatakan secara
unik sehingga P1 dapat menemukannnya, yaitu
36 Andriyan B. Suksmono
Batas Keunikan P1 Donoho-Huo: ( )10
15.0 −+< μγ (2.16)
dimana μ=μ(Ψ,Θ) adalah koherensi antar basis. Pada kasus pasangan orto-basis
ini, Elad dan Bruckstein memberikan batas yang lebih baik untuk γ, sehingga
cukup penting untuk dijelaskan juga disini. Sinyal s sepanjang N-cuplikan
dapat dinyatakan dalam setiap sistem orto-basis, yaitu: s=Θα atau s=Ψβ.
Seperti telah diberikan sebelumnya, koherensi antar sistem basis diberikan oleh
Koherensi pasangan basis: 1/√N ≤ ( ) θψμψθ
,max,, Ψ∈Θ∈
=ΘΨ ≤ 1 (2.17)
Oleh karena itu, prinsip ketidakpastian akan mengatakan bahwa jumlah
support di kedua kawasan adalah ||α||0 + ||β||0 . Untuk setiap dua bilangan
bulat positif x dan y berlaku bahwa x2+y2 ≥ 2xy, , Karena (x+y)2 = (x2 + y2) + 2xy
maka berdasarkan hasil sebelumnya diperoleh (x+y)2 ≥ 4xy. Jika x maupun y
positif, maka x+y ≥ 2√xy. Oleh karena itu:
Teorema 1. ||α||0 + ||β||0 ≥2√(||α||0 ⋅||β||0) ≥2/μ (2.18)
Dua relasi terakhir pada pertidaksamaan diatas, yaitu 2√(||α||0⋅||β||0)≥2/μ,
dapat diilustrasikan sebagai berikut.
1. Nilai √(||α||0⋅||β||0) minimum terjadi jika keduanya basis impuls
dimana hanya ada satu komponen vektor α dan β yang tak nol, sehingga
||α||0 =||β||0 =1 dan √(||α||0⋅||β||0)=1. Untuk pasangan basis ini,
nilai koherensinya akan maksumum, yaitu μ=1 sehingga
2√(||α||0⋅||β||0)=2/μ, .
2. Disisi lain, nilai ||α||0+||β||0 maksimum terjadi jika semua komponen
dari vektor α dan β tak nol, misalnya jika keduanya basis Hadamard.
Pada saat tersebut ||α||0 =||β||0 =N dan √(||α||0⋅||β||0)=N,
sedangkan koherensinya akan mencapai maksimum juga, yaitu μ=1
sehingga 2√(||α||0⋅||β||0)>2/μ.
Memahami Penginderaan Kompresif dengan MATLABTM 37
Dengan demikian, diperoleh hubungan antara koherensi μ dengan batas dari
jumlah koefisien dikedua kawasan, yaitu:
Ketidakpastian Elad-Bruckstein: ||α||0 + ||β||0 ≥ 2/μ (2.19)
Batas atas ini lebih baik daripada yang diperoleh Donoho-Huo sebelumnya,
yaitu sebesar
Ketidakpastian Donoho-Huo: ||α||0 + ||β||0 ≥ (1 + 1/μ) (2.20)
Andaikan suatu sinyal ternormalisasi (berenergi satu-satuan) s dapat
dinyatakan dengan dua cara berbeda didalam kamus-basis Φ=Ψ∪Θ, yaitu s =
Φγ1 = Φγ2 sehingga
( ) ( ) ⎟⎟⎠
⎞⎜⎜⎝
⎛ΘΨ=−Φ=
2
1210
xx
γγ (2.21)
Akibatnya Ψx1+Θx2 = 0 atau Ψx1 = -Θx2. Berdasarkan prinsip ketidakpastian,
maka
(2/M)≤ ||x1||0+||x2||0 = ||γ1 - γ2||0 ≤ ||γ1||0 + ||γ2||0, atau
(2/M) ≤ ||γ1||0 + ||γ2||0, (2.22)
yakni, dua representasi dari sinyal yang sama tidak bisa sekaligus sparse dua-
duanya. Akhirnya diperoleh hasil berikut:
Teorema 2. Jika ada suatu representasi yang memenuhi syarat
Batas Keunikan P0 Elad-Bruckstein: ||γ||0 < 1/μ (2.23)
maka haruslah representasi itu unik, atau yang paling sparse.
Sampai dengan tahap ini, pencarian basis ideal γ masih mengandalkan P0.
Tujuan berikutnya adalah mencari batas sparsity dimana P1 sanggup
38 Andriyan B. Suksmono
menemukan solusinya yang identik dengan solusi P0. Untuk suatu sinyal s=[Ψ;
Θ]γ, dengan asumsi sparsity pada γ dan k1<k2 sehingga
γ = [γ1 γ2 ... γN, γN+1 γN+2 ... γ2N] (2.24)
Dengan k1 buah koefisien tak nol dalam N koefisien pertama (didalam Ψ) dan k2
buah tak nol untuk N koefisien kedua (didalam Θ), Elad-Bruckstein
mendapatkan hasil berikut:
jika k1 dan k2 memenuhi hubungan 2μ2k1k2+μk2-1<0, maka P1 akan
dapat menemukannnya.
Hasil yang lebih lemah tapi bentuknya sederhana diberikan oleh k1+k2<(√2-
0.5)/μ, sehingga dapat disimpulkan sebagai berikut.
Batas Keunikan P1 Elad-Bruckstein: μμ
γ 9142.0~5.020
−< (2.25)
Sebagai ilustrasi, untuk sinyal s sepanjang N=1024 cuplikan yang tersusun dari
komponen pasangan basis impulse-Fourier, maka P0 akan sanggup menemukan
solusi untuk 32 vektor basis. Bandingkan dengan P1 yang memberikan harga
yang lebih kecil lagi, yaitu 16 menurut DHB. Akan tetapi EBB memberikan
angka untuk P1 yang lebih besar, yaitu 29 buah.
2.3.2 Batas Keunikan P0 dan P1 untuk Kamus Basis
Keunikan untuk sepasang ortobasis telah diturunkan secara langsung dari
prinsip ketidakpastian. Sebuah kamus basis bersifat overcomplete, jumlah
vektor basisnya lebih banyak dari yang seharusnya cukup untuk membentuk
vektor dimensi N. Andaikan suatu sinyal s sepanjang N-cuplikan dinyatakan
dalam dua representasi didalam kamus-basis Φ yang dinyatakan sebagai
matriks berdimensi N×K, dimana K>>N
s= Φγ1= Φγ2 dengan demikian
Φ(γ1-γ2) = 0 atau Φv = 0
Memahami Penginderaan Kompresif dengan MATLABTM 39
Ini menyatakan kombinasi linier dari vektor-vektor kolom dari Φ yang saling
bergantung dan akan dicari sekelompok vektor yang demikian. Untuk keperluan
ini diperkenalkan spark yang dilambangkan sebagai σ sebagai berikut
Definisi. Spark dari suatu matriks Φ yang dituliskan sebagai σ=spark(Φ) adalah
bilangan bulat terkecil yang menyatakan banyaknya anggota dari sekelompok
vektor kolom dari Φ yang saling bebas.
Berikut ini ilustrasi dari konsep spark dari dua matriks sederhana:
1
1...11
1...00............0...100...01
+=
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
Nspark , dan 2
0...01
1...00............0...100...01
=
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
spark
Apa hubungannya dengan rank? Rank sebuah matriks adalah jumlah
maksimum vektor kolom yang saling-bebas, sedangkan spark adalah jumlah
minimum vektor kolom yang tidak-saling-bebas dan secara umum hubungan
berikut berlaku:
2 ≤ σ=Spark{Φ} ≤ Rank{Φ}+1 (2.26)
Berdasarkan definisi, untuk sinyal s yang diatas akan berlaku ||v||0 ≥ σ,
dengan demikian ||γ1-γ2||0 ≥ σ atau σ≤||γ1-γ2||0 ≤ ||γ1||0 +||γ2||0. Akhirnya
diperoleh hubungan mirip prinsip ketidakpastian untuk kamus-basis Φ yaitu
||γ1||0 +||γ2||0 ≥ σ (2.27)
yang artinya bahwa dua buah representasi berbeda sinyal s didalam kamus-
basis Φ tidak boleh sekaligus sparse. Selanjutnya akan diperoleh persyaratan
keunikan sinyal s sebagai berikut
Teorema 4. Representasi sinyal s=Φγ dimana ||γ||0 < σ/2 akan bersifat unik.
40 Andriyan B. Suksmono
Koherensi suatu kamus-basis Φ dapat didefinisikan dengan cara mirip dengan
pasangan orto-basis sbeagai berikut
Koherensi kamus-basis: ? ≤ ( ) nmnmφφμ ,max
≠=Φ ≤ 1 (2.28)
Berdasarkan teorema piringan Gresgorin, dapat ditunjukkan batas bawah σ≥
(1+1/μ) dari spark, yang sebenarnya pesimistik. Dengan demikian, dari (2.28)
akan diperoleh
||γ1||0 +||γ2||0 ≥ σ ≥ (1+1/μ)
(2.29)
dan dari Teorema 4 akan diperoleh
Teorema 5. Representasi sinyal s=Φγ dimana ||γ||0 <0.5(1+1/μ)≤ σ/2
akan bersifat unik.
Dengan cara yang sama seperti sebelumnya, keunikan sinyal s didalam basis Φ
terhadap optimasi P1 dapat dinyatakan sbb;
Teorema 6. Diberikan suatu sinyal s dengan representasi s=Φγ, jika
||γ||0 <0.5(1+1/μ) (2.30)
Maka P1 atau algoritma Basis Pursuit akan dapat menemukannya.
Apa bedanya dengan yang diperoleh Donoho-Huo pada tulisan sebelumnya?
Perbedaan pertama, jumlah support dari sinyal yang dibentuk pasangan orto-
basis dalam penurunan Elad-Bruckstein lebih tinggi dari yang diberikan
Donoho-Huo. Yang kedua, Elad-Bruckstein memberikan generalisasi dari
pasangan basis ortogonal ke kamus-basis dengan batas sparsity yang diberikan
oleh persamaan (2.30).
Contoh Permasalahan
Memahami Penginderaan Kompresif dengan MATLABTM 41
Soal-1: Tentukan batas sparsity suatu sinyal s sepanjang 64 cuplikan yang
terbentuk dari sistem-basis acak tersebar normal Φ berdimensi 64×1024 dan
tingkat koherensi basis ini!
Jawab: Didalam compressive sensing, basis acak dapat dianggap sebagai basis
universal karena bersifat hampir ortogonal ke semua sistem basis lain.
Koherensi dihitung menurut rumus (7) sedangkan batas sparsity memakasi
rumus (9). Program Matlab berikut ini dapat dipakai untuk membantu
pemecahan masalah ini.
% progam menghitung koherensi dan
% batas sparsity basis acak Gaussian
clear;close all;clc;
N=64;M=1024; %dimensi kamus basis
%buat basis acak Gaussian MxN
D=orth(randn(N,M)')';
%hitung koherensi kamus basis D
mu=mu_PHI(D);
disp(sprintf('koherensi kamus-basis = %f\n', mu));
%Tentukan batas sparsity
N_sparse=floor(0.5*(1+1/mu));
disp(sprintf('batas sparsity = %d', N_sparse));
% === fungsi yang dipakai ===
%fungsi menghitung koherensi kamus basis
function [mu]=mu_PHI(PHI);
[M,N]=size(PHI);
CORR=transpose(conj(PHI))*PHI;
mu=max(max(CORR));
Hasil running program Matlab diatas menghasilkan nilai koherensi μ(Φ) ~ 0.094
dan batas sparsity sebesar 5. Dengan demikian, sebarang sinyal sepanjang 64
cuplikan yang terbentuk dari kombinasi linier kamus basis Φ berukuran
64×1024 akan dapat ditemukan dengan optimasi P1 atau algoritma Basis
Pursuit.
Soal-1: Tentukan koherensi antara ortobasis DCT dan ortobasis acak tersebar
normal, masing-masing berdimensi 512×512. Tentukan batas sparsity untuk P1
berdasarkan DHB (Donoho-Huo Bound) dan EBB (Elad-Bruckstein Bound).
42 Andriyan B. Suksmono
Jawab: Perhatikan bahwa sistem yang ditinjau adalah dua orto-basis, bukan
kamus-basis. Dengan demikian, perhitungan koherensi akan memakai rumus
(2) sedangkan batas sparsity adalah rumus (1) untuk DHB dan rumus (6) untuk
EBB. Kode Matlab berikut dapat dipakai.
% progam menghitung koherensi dan batas sparsity
% antara basis DCT dengan basis acak Gaussian
clear;close all;clc;
N=512; %panjang sinyal yang diasumsikan
%buat basis DCT berdimensi NxN
THETA=dct(eye(N,N));
%buat basis acak Gaussian NxN
PSI=orth(randn(N,N)')';
%hitung koherensi antara DCT dengan Gauss
mu_DCT_Gauss=mu_THETA_PSI(THETA,PSI);
disp(sprintf('koherensi DCT-Gauss = %f\n', mu_DCT_Gauss));
%Tentukan batas sparsity
%kasus-1: DHB (Donoho-Huo bound)
N_DHB=floor(0.5*(1+1/mu_DCT_Gauss));
disp(sprintf('batas sparsity Donoho-Huo= %d\n', N_DHB));
%kasus-2: EBB (Elad-Bruckstein bound)
N_EBB=floor((sqrt(2)-0.5)/mu_DCT_Gauss);
disp(sprintf('batas sparsity Elad-Bruckstein= %d', N_EBB));
%==FUNGSI ===
%fungsi menghitung koherensi dua orto basis
function [mu]=mu_THETA_PSI(THETA,PSI);
[M,N]=size(PSI); %THETA diasumsikan berdimensi sama
CORR=transpose(conj(THETA))*PSI;
mu=max(max(CORR));
Hasil perhitungan memberikan nilai koherensi μ=0.219030, DHB =2, dan EBB
= 4. Terlihat perbedaan cukup signifikan antara EBB dengan DHB.
Memahami Penginderaan Kompresif dengan MATLABTM 43
2.4 Pengolahan Sinyal dengan Pemrograman Matematika
Masalah pencarian vektor basis ideal dari sebuah sinyal dapat diformulasikan
sebagai proses optimisasi berkendala (constrained optimization) P1. Tulisan ini
meninjau secara sekilas konsep optimisasi linier, khususnya LP (Linear
Programming), dan metode pemecahannya. Meskipun kendala dalam P1
sebenarnya bersifat tak-linier, pengaturan parameter yang tepat dan batas-
batas yang sesuai dapat mengubahnya menjadi linier, sehingga dapat
diselesaikan dengan LP. Suatu contoh pencarian basis ideal dari sinyal hasil
bentukan sepasang ortobasis dipakai untuk menunjukkan kegunaan LP. Jika
batasan sparsity terpenuhi, LP dapat menemukan seluruh basis penyusun
sinyal dan sinyal dapat direkonstruksi secara eksak.
2.4.1 Pemrograman Matematika dan Optimasi
Didalam optimasi ada suatu fungsi objektif yang akan dioptimumkan; dibuat
minimum atau maksimum. Kendala memberi batas wilayah dimana fungsi ini
berlaku. Dari berbagai macam metoda optimisasi yang ada, salah satu memiliki
pemakaian luas adalah pemrograman linier (LP/Linier Programming), suatu
bentuk khusus dari pemrograman matematika (Mathematical Programming).
Bahkan metoda Simpleks yang ditemukan oleh G. Dantzig untuk mencari solusi
masalah LP dinobatkan sebagai satu dari sepuluh algoritma terbaik abad
keduapuluh.
LP pada dasarnnya merupakan masalah pencarian nilai optimum (maksimum
atau minimum) dari suatu fungsi linier dengan kendala yang juga berbentuk
linier. Berikut ini contoh sederhana dari permasalahan didalam LP (diambil dari
contoh Matlab):
Tentukan harga x1 dan x2 yang memaksimumkan nilai x1+ x2, dengan syarat
bahwa x1+x2 ≤10, -x1 + x2 ≤5, x1≥1, dan x2≥1.
Masalah diatas dapat dituliskan kedalam bentuk baku sebagai berikut:
44 Andriyan B. Suksmono
Maximize x1-x2
Subject to x1+x2 ≤10,
-x1+x2 ≤5,
x1≥1, and x2≥1.
Nilai yang akan dimaksimumkan (atau diminimumkan) disebut sebagai fungsi
obyektif, dalam soal diatas adalah x1-x2. Pemecahan masalah ini dapat
dilakukan secara grafis dengan cara menggambarkan semua kendala, lalu
mencari titik dimana nilai obyektif mencapai maksimum dalam daerah solusi:
Gb.2.8. Ilustrasi pencarian titik optimum dalam LP
Pada gambar ini, daerah yang diarsir adalah pasangan (x1, x2) yang memenuhi
semua kendala yang diberikan atau disebut juga feasible region. Kita harus
mencari satu titik dimana nilai fungsi obyektif mencapai optimal. Pada LP,
solusi selalu terletak di pojok wilayah daerah atau titik simpul. Program Matlab
berikut dapat dipakai untuk mencari solusinya:
% pemrograman linier untuk masalah sederhana
% min c'x s.t. Ax<=b; x1>=1, x2>=1
%------------------------------------------
c=[1;-1]; % koefisien fungsi obyektif
A=[1 1; 1 -1]; %matriks Z
b=[10; 5]; % kendala
lb=[1 1] ; %batas bawah x1 dan x2
x1
x2
5 10
5
10
-x1 + x2 ≤ 5
x1 - x2 0 ≤
x2 = 0
x1 = 0
Memahami Penginderaan Kompresif dengan MATLABTM 45
[x, fval,exitflag,output,lambda]=linprog(c,A,b,[],[],lb);
disp(sprintf('x1= %f x2=%f\n',x(1),x(2))); %tampilkan
Dari eksekusi program diperoleh x1=1, x2=9 yang akan menghasilkan nilai
objektif paling kecil, yaitu -8. Posisi titik optimum ini terletak dipojok daerah
politop paling kiri atas.
Metoda simpleks dari Dantzig melakukan perunutan setiap tepian wilayah
hingga ditemukan titik optimal yang selalu terletak di sudut atau verteks dari
politop. Dengan demikian, dapat ditunjukkan bahwa pada kondisi terburuk,
metoda ini akan memiliki kompleksitas yang tumbuh secara eksponensial.
Namun kebanyakan masalah praktis dapat dipecahkan dengan cukup cepat,
karena meskipun kompleksitas rata-ratanya cukup kecil hingga dapat
ditangani.
Masalah pertumbuhan kompleksitas perhitungan dalam metoda Simpleks
akhirnya dapat diatasi oleh Narendra Karmakar dengan metoda interior point
(IPM), yang memiliki kompleksitas polinomial. IPM tidak hanya dipakai pada
optimisasi linier, kasus lain yang taklinier-pun dapat dipecahkan dengan
metoda ini asalkan bersifat konveks. IPM mencapai kompleksitas polynomial
karena tidak lagi merunut tepian daerah solusi, tapi masuk menerobos kedalam
wilayah ini sampai solusi yang dicari dapat ditemukan.
Masalah optimisasi seperti diatas dapat dituliskan dalam bentuk umum sebagai
berikut:
minimize c1x1 + c2x2 + …+cnxn
subject to a11x1 + a12x2 + … +a1nxn ≤ b1
a21x1 + a22x2 + … +a2nxn ≤b2
………………………………. (2.31)
am1x1 + am2x2 + … +amnxn ≤ bm
x1, x2, …, xn ≥0
atau dituliskan secara ringkas sebagai
minimize Σnj=1 cjxj
46 Andriyan B. Suksmono
subject to Σnj=1 aijxj ≤ bi i=1, 2, …, m (2.32)
xj≥ 0 j=1, 2, …, n
bahkan dengan dengan menggunakan slack variables
xn+1 = bj - Σnj=1 aijxj , i=1, 2, …, m (2.33)
LP dapat dituliskan dalam bentuk matriks yang lebih ringkas, yaitu
minimize cTx subject to Ax = b, x≥ 0 (2.34)
Masalah mencari nilai minimum suatu fungsi obyektif dapat diubah menjadi
pencarian minimum fungsi obyektif yang lain. Dengan demikian, pencarian nilai
minimum diatas memiliki solusi yang sama dengan masalah dual-nya, yaitu
pencarian nilai maksimum. Jika fungsi objektif dan kendala tidak lagi linier,
fungsi dari peubah x ini dapat ditulis sebagai c(x) dan kendala dapat ditulis
sebagai ai(x) ≥ bi.
2.4.2 Metode Basis Pursuit dengan Pemrograman Linier
Metoda basis pursuit merumuskan pencarian basis ideal φM didalam kamus-
basis Φ berdimensi N×M sebagai masalah pemrograman konveks:
(P1): min ||γ||0 s.t. Φγ = s (2.35)
Telah diketahui sejak lama bahwa optimisasi non-linier l1 seperti ini ekivalen
dengan LP
min cTx s.t. Ax = b, x ≥0 (2.36)
jika dilakukan substitusi sebagai berikut
M⇔2M; x⇔(α1, α2); c⇔[1 1 …. 1; 1 1… 1]; A⇔[Φ; -Φ]; b ⇔ s (2.37)
Memahami Penginderaan Kompresif dengan MATLABTM 47
Artinya, kamus-basis di gabung dengan nilai negatif dari kamus tersebut untuk
menggantikan peran matriks A, peran dari batas kendala b digantikan dengan
sinyal s, panjang vektor solusi dibuat menjadi dua-kalinya, sedangkan fungsi
objektif adalah penjumlahan masing-masing koefisien vektor solusi sparse α
dan dimensi kolom diperbesar menjadi duakali-nya.
Cara ini selanjutnya akan dipakai untuk memecahkan masalah dekomposisi
sinyal s terdahulu yang terdiri dari dua impuls dan dua vektor basis DCT.
Sebagai tambahan, sinyal ini tercampur dengan derau acak Gaussian. Berikut
ini kode Matlab-nya.
%-----------------------------------------------
%Basis pursuit on overcomplete basis
%Using Matlab Optimization Toolbox
%To search for solution ... modified
%-----------------------------------------------
%length of signal
clear;close all;clc;
N=64; %signal dimension
over_factor=2; %over complete factor
nAtoms=N*over_factor;
%create pair of orto-basis dictionary
D1=eye(N,N); D2=dct(eye(N,N)); D=[D1;D2]';
%create a signal with N_support'
N_support=4;
pN=[8 32 73 125]; %dpt diganti dng indeks acak jika perlu
x=zeros(N,1); X=zeros(nAtoms,1);%'transformed-domain signal
for k=1:N_support;
x=x+D(:,pN(k)); X(pN(k))=1;
end;
x0=x;
figure(1);plot(x0);title('Original Signal');
%perform measurement, >> add noise
derau=randn(N,1);
y = x0 + 5*derau/(derau'*derau);
48 Andriyan B. Suksmono
min_y=min(y);
D_pos=-D;
%define dictionary A
A=zeros(N,2*over_factor*N);
A(:,1:over_factor*N)=D;
A(:,over_factor*N+1:2*over_factor*N)=D_pos;
%Basis Pursuit on random basis
f=ones(2*nAtoms,1); lb=zeros(2*nAtoms,1);
alpha=linprog(f,[],[],A,y,lb);
figure(2);plot(1:nAtoms,X,'r:',1:nAtoms,alpha(1:nAtoms),'b--');
legend('original','alpha');
%obtain a few largest component, by sorting alpha
[z,imax]=sort(alpha(1:nAtoms));
%Reconstruct estimated signal
x_hat=zeros(N,1);
for k=1:N_support;
x_hat=x_hat+ D(:,imax(nAtoms-k+1));
end;
x_hat1=D*alpha(1:nAtoms);
figure(3);plot(1:N,x0,'k.',1:N,y,'b-',1:N,x_hat,'r:',1:N,y-x0,'g-',1:N,x_hat1,'k--');
legend('original','noisy','estimated','noise-level','D*alpha');
figure(4);plot(1:N,y-x0,'r-',1:N,x_hat-x0,'b-',1:N,x_hat1-x0,'k-');
legend('initial error','estimation error','D*alpha error');
Gabungan pasangan sistem-basis impulse-DCT menghasilkan sebuah kamus-
basis berukuran 64×128. Batas sparsity Elad-Bruckstein untuk pasangan basis
ini adalah sekitar 0.9√N ~7. Dengan hanya mengambil 4 buah vektor basis
penyusun, yaitu vektor pada urutan ke 8, 32, 73, dan 125 haruslah P1 dapat
menemukan solusi eksak-nya.
Memahami Penginderaan Kompresif dengan MATLABTM 49
0 20 40 60 80 100 1200
0.2
0.4
0.6
0.8
1
1.2
1.4
indeks vektor
mag
nitu
do k
oefis
ien
Vektor basis terpilih
originalalpha
Gb.2.9 Vektor basis terpilih didalam kamus basis
Gambar 2.9 menunjukkan vektor basis terpilih oleh P1 yang tepat berhimpit
dengan basis penyusun sinyal. Dengan demikian seluruh komponen sinyal telah
berhasil ditemukan. Disamping itu, koefisian basis lainnya jauh lebih kecil
daripada komponen basis penyusun. Komponen ini biasanya dihilangkan
dengan peng-ambangan (tresholding).
0 10 20 30 40 50 60
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
waktu
mag
nitu
do
Perbandingan sinyal
originalnoisyestimatednoise-levelD*alpha
Gb.2.10 Sinyal asal dan hasil rekonstruksi
50 Andriyan B. Suksmono
0 10 20 30 40 50 60-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
waktu
ampl
itudo
Perbandingan sinyal kesalahan
initial errorestimation errorD*alpha error
Gb.2.11 Sinyal kesalahan
Berbagai sinyal dibandingkan dalam Gambar 2.10. Terlihat bahwa sebenarnya
tingkatan sinyal derau (kurva berwarna hijau) cukup tinggi jika dibandingkan
dengan sinyal asalnya (titik-titik hitam), menghasilkan distorsi yang signifikan
(sinyal warna biru). Namun demikian, karena semua koefisien berhasil
ditemukan, sinyal dapat direkonstruksi secara eksak. Hal ini ditunjukkan pada
Gambar 2.11, dimana sinyal kesalahan (biru) berharga nol.
Memahami Penginderaan Kompresif dengan MATLABTM 51
III. Aplikasi Penginderaan Kompresif
3.1 Kamera Piksel-Tunggal
Technology Review adalah sebuah majalah bulanan yang sering dijadikan acuan
untuk melihat perkembangan teknologi terkini. Seperti pada tahun-tahun
sebelumnya, setiap bulan Maret majalah ini akan menampilkan sepuluh macam
teknologi yang diramalkan bakal menjadi kunci dimasa mendatang, Ten
Emerging Technologies. Pada tahun 2006, ada satu dari 10 teknologi ini yang
cukup menarik perhatian khalayak karena sangat tidak biasa, yaitu Kamera
Piksel-Tunggal. Kamera ini tidak memakai CCD sebagai pengubah bayangan
benda menjadi gambar dijital, melainkan hanya satu buah fotodioda saja.
Sebuah kamera piksel-tunggal, seperti yang diperlihatkan secara skematik pada
Gambar 3.1, memanfaatkan larik cermin mikro (DMD-Digital Micromirror Device)
yang secara acak melakukan penyapuan bayangan benda. Bagian bayangan
yang jatuh pada elemen cermin yang sedang ”aktif” diteruskan kesebuah
fotodioda untuk diubah menjadi sinyal listrik. Perangkat DMD biasanya dipakai
pada televisi proyeksi.
DMD array
optical lens
Light source
object
Photo diode
random number
Gb.3.1 Kamera piksel-tunggal
Informasi elemen DMD aktif dan intensitas cahaya yang sudah didijitasi
selanjutnya disampaikan ke sebuah pengolah data. Karena tidak seluruh
cermin diaktifkan untuk menangkap benda, jumlah piksel yang direkam
52 Andriyan B. Suksmono
menjadi lebih kecil jika dibandingkan dengan kamera dijital biasa. Selanjutnya
rekonstruksi dilakukan menurut prinsip pencuplikan kompresif.
Dari sudut pandang pencuplikan kompresif, operasi pengambilan elemen
bayangan secara acak oleh DMD menyatakn proses pengamatan yang dapat
dinyatakan sebagai proyeksi s dengan matriks pengukur Φ. Jika N jumlah total
dari cermin DMD, sedangkan M menyatakan cermin aktif dalam satu kali
pengambilan gambar, maka Φ dapat dinyatakan sebagai matriks berukuran
MxN. Setiap baris dari matriks ini akan berisi satu buah angka satu yang
letaknya acak, sedangkan elemen sisanya pada baris ini bernilai nol. Operasi
pengukuran ini dapat dinyatakan sebagai:
( )Sss ΦΨ=Φ=ˆ (3.1)
Berdasarkan persamaan diatas, proses pengamatan dapat dipandang sebagai
pencuplikan kompresif dengan dua cara yang berbeda, yaitu:
1. Pencuplikan kawasan spasial terhadap sinyal s secara acak
2. Pencuplikan kawasan transform sebagian dari basis penjarang ψ secara
acak
Dua cara pandang ini dapat memberikan dua pendekatan berbeda dalam
mencari solusi atau merekonstruksi citra hasil pengamatan. Tulisan ini akan
menjelaskan terlebih dahulu cara pertama, sedangkan cara kedua akan
dijelaskan pada tulisan berikutnya.
3.1.1 Pencuplikan kompresif kawasan spasial
Pada tulisan sebelumnya telah diperkenalkan formulasi teknik pencuplikan
kompresif dalam kawasan ruang-waktu. Secara prinsipil, teknik pencitraan
yang pertama ini tidak berbeda dari yang telah dijelaskan dalam pencuplikan
kompresif. Dengan demikian, diagram ranah-jamaknya masih tetap sama
seperti sebelumnya. Selanjutnya, persamaan (3.1) dapat diuraikan menjadi
Memahami Penginderaan Kompresif dengan MATLABTM 53
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⋅
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
NMNMM
N
N
M S
SS
s
ss
......
..................
0...00
0...10
...100
............
...000
...010
ˆ...ˆˆ
2
1
21
22221
11211
2
1
ψψψ
ψψψψψψ
(3.2)
Operasi proyeksi dilakukan dengan mengalikan sinyal asli s dengan operator
proyeksi Φ yang dibuat dengan ”mengaktifkan” satu elemen saja dari setiap
vektor baris matriks ini. Setelah mengubah ”bayangan” benda dari larik dua
dimensi menjadi satu dimensi, instruksi untuk mensimulasikan proses
pengukuran dengan Matlab adalah:
% *** Simulasikan Digital Micromirror Device ***
rp=randperm(N); act_cell(1:M_sub)=rp(1:M_sub); %randomize mirror in DMD
PHI=zeros(M_sub,N);
for k=1:M_sub; PHI(k,act_cell(k))=1;end;
PHI=orth(randn(M_sub,N)')'>0;
%*** Lakukan pengukuran x_sub=PHI*x0 ***
x_sub=PHI*x0;
Pada contoh ini dipakai sebuah objek sederhana, yaitu citra yang menyerupai
huruf “H” seperti yang diperlihatkan pada Gambar 3.2. Hasil pengukuran akan
merupakan citra tak-sempurna karena piksel yang terambil hanya sedikit dan
letaknya acak. Hasil ini diperlihatkan pada Gambar 3.3.
citra asli
5 10 15
2
4
6
8
10
12
14
16
Gb.3.2 Citra sederhana dalam pencitraan kompresif
54 Andriyan B. Suksmono
citra teramati
5 10 15
2
4
6
8
10
12
14
16
Gb.3.3 Citra hasil pengukuran
Berdasarkan hasil pengukuran, gambar dapat direkonstruksi dengan melalui
algoritma basis pursuit. Sebagai contoh bisa diambil DCT sebagai transformasi
penjarang. Jika menyatakan hasil pengamatan, ψs k vektor basis penjarang ke-
k, maka pencarian basis dapat dirumuskan sebagai berikut:
P1: min ||S||1 s.t. (3.3) ∑=k
ks ψkSˆ
Setelah seluruh vektor basis ditemukan, citra bisa direkonstruksi dengan
menjumlahkan vektor-vektor basis ini yang diboboti dengan Sk yang sesuai.
Hasil rekonstruksi ditunjukkan pada Gb. 3.4.
citra rekonstruksi
5 10 15
2
4
6
8
10
12
14
16
Gb.3.4. Citra rekonstruksi
Meskipun citra huruf ”H” masih terlihat pada hasil rekonstruksi, Gambar 4
memperlihatkan bahwa secara visual hasilnya masih kurang baik. Hal ini bisa
dijelaskan dengan melihat seluruh komponen Sk yang terambil pada pencarian
basis.
Memahami Penginderaan Kompresif dengan MATLABTM 55
Gambar 3.5 memperlihatkan kurva magnitudo Sk yang telah diurutkan.
Meskipun koefisien ini meluruh, terlihat bahwa peluruhan ini kurang cepat.
Pengambilan koefisien sebanyak derajat sparsity yang diperkirakan masih akan
menyisakan informasi yang cukup penting. Dengan demikian, masalah
utamanya adalah pemilihan transformasi penjarang yang kurang tepat.
Bagaimana cara mengatasinya?
0 50 100 150 200 250 3000
0.5
1
1.5
2
2.5
3
3.5
4koefisien terurut
indeks
mag
nitu
do
Gb.3.5 Magnitudo koefisien terpilih yang diurutkan
Kode Matlab
%----------------------------------------------------------
% Pencitraan Kompresif: kamera dijital dng 1 foto-dioda
%----------------------------------------------------------
clear;%close all;clc;
% read original image
%cam01=double(imread('cameraman.tif','tif'));
%I=cam01(140:155,35:50); %load cam01; I=cam01;
%baca citra
I=double(imread('IMG\H.bmp','bmp'));
%tampilkan citra asal;
figure(1); imagesc(I); colormap(gray); title('citra asli');
56 Andriyan B. Suksmono
[N_col,N_row]=size(I);
N=N_col*N_row; %panjang sinyal
%Pembentukan basis sparsity /DCT
PSI=dct(eye(N,N)); %buat matriks DCT
K_sparse=2*round(sqrt(N));%tingkat sparsity
x = reshape(I,N,1); %ubah menjadi vektor
x0=(x-mean(x))/(max(x)-min(x));%normalisasi
%proses pengamatan/pengukuran
%estimasikan minimal jumlah cuplikan M>CKlog(N)
mu=1*(1/sqrt(N)); %tentukan koherensi->perkiraan
C=sqrt(N)*mu; %koherensi tak ternormalisasi=sqrt(N).koh
M_sub=ceil(C*K_sparse*log(N));
% *** Simulasikan Digital Micromirror Device ***
rp=randperm(N); act_cell(1:M_sub)=rp(1:M_sub); %randomize mirror in DMD
PHI=zeros(M_sub,N);
for k=1:M_sub; PHI(k,act_cell(k))=1;end;
PHI=orth(randn(M_sub,N)')'>0;
% *** Lakukan pengukuran x_sub=PHI*x0 ***
x_sub=PHI*x0;
x_obs=zeros(N,1);x_obs(act_cell)=x0(act_cell);
%Lakukan recovery
%Bentuk kamus basis D=PHI*PSI
D=PHI*PSI;
%x_sub=D*x0;
figure(4);imagesc(reshape(x_obs,N_row,N_col));colormap(gray);title('DMD aktif');
[D_row,D_col]=size(D);
D_pos=-D;
%ubah L1 menjadi LP
A=zeros(D_row,2*D_col);
A(:,1:D_col)=D;
A(:,D_col+1:2*D_col)=D_pos;
Memahami Penginderaan Kompresif dengan MATLABTM 57
f=ones(2*D_col,1);
lb=zeros(2*D_col,1);
f1=ones(2*D_col,1);
lb1=zeros(2*D_col,1);
A1=-A;
x_sub1=x_sub;
%*******************************
%* Jalankan algoritma simpleks *
%*******************************
alpha0=linprog(f,[],[],A,x_sub,lb); %get positive part
alpha1=linprog(f1,[],[],A1,x_sub1,lb1);%get negative part
alpha=alpha0-alpha1;
% Urutkan
[z,imax]=sort(abs(alpha(1:D_col)),'descend');
x_abs=1:D_col;
figure(2); plot(x_abs, z,'b-');
%Reconstrusi Citra
%===
x_hat=zeros(N,1);
for k=1:K_sparse;
x_hat=x_hat+alpha(imax(k))*PSI(:,imax(k));
end;
Ip = reshape(x_hat, N_row, N_col);
figure(3);imagesc(Ip);colormap(gray);title('citra rekonstruksi');
3.1.2 Transformasi Haar untuk Pencuplikan Kompresif
Ketidaksesuaian DCT sebagai transformasi penjarang kurang tepat terlihat dari
peluruhan koefisien dari citra berbentuk ”H” yang kurang cepat. Hal ini telah
dapat diperbaiki dengan meminimumkan nilai TV (total variance). Cara ini
cukup ampuh, namun kurang intuitif karena tidak secara langsung
memberikan transformasi pada kawasan basis penjarang-nya. Tulisan ini
menjelaskan penggunaan transformasi Haar, salah satu bentuk transformasi
wavelet paling tua dan paling sederhana, sebagai transformasi penjarang-nya.
58 Andriyan B. Suksmono
Konstruksi matriks penjarang PSI pada kode sebelumnya diubah dari
transformasi DCT menjadi transformasi Haar dengan mengubah baris terkait
sbb :
PSI = haar_T(N)';%(eye(N,N)); % ** buat matriks transformasi Haar **
dimana ”haar_T” diatas adalah fungsi untuk membentuk matriks transformasi
Haar yang diperlihatkan di akhir tulisan.
Hasil dari transformasi Haar dengan citra dan parameter kompresi sebesar 1.4
seperti pada tulisan pertama diberikan pada Gb.3.6 berikut ini:
citra rekonstruksi
5 10 15
2
4
6
8
10
12
14
16
citra rekonstruksi
5 10 15
2
4
6
8
10
12
14
16
(a) (b)
Gb.3.6 Hasil rekonstruksi pencitraan kompresif dengan transformasi Haar:
(a) K-buah koefisien pertama, (b) 50 buah koefisien pertama.
Memahami Penginderaan Kompresif dengan MATLABTM 59
0 50 100 150 200 250 3000
1
2
3
4
5koefisien terurut
indeks
mag
nitu
do
Gb.3.7 Plot koefisien terurut dari citra ”H” terhadap basis Haar.
Hasil rekonstruksi terlihat masih kurang baik, meskipun bagian utama dari
citra sudah terambil. Ini bisa dijelaskan dengan melihat kembali plot koefisien
penyusun citra hasil optimasi yang ditampilkan pada Gambar 3.7. Terlihat
bahwa meskipun koefisien meluruh jauh lebih cepat dari DCT, nilai koefisien
nol tercapai pada indeks urutan ke sekitar 50. Dengan demikian, asumsi derajat
sparsity sebesar 32 masih kurang mencukupi. Bahkan, melibatkan 50 buah
koefisienpun masih belum menghasilkan rekonstruksi yang sempurna.
citra asli
5 10 15
2
4
6
8
10
12
14
16
Gb.3.8 Citra asli papan catur
Sebagai perbandingan, berikut ini disajikan hasil pencitraan kompresif dengan
basis Haar untuk citra papan catur (checker board) yang diperlihatkan pada
60 Andriyan B. Suksmono
Gambar 3.8. Relatif terhadap basis Haar, citra ini sangat sparse, seperti
diperlihatkan pada Gambar 3.9.
50 100 150 200 2500
0.5
1
1.5
2koefisien terurut
indeks
mag
nitu
do
Gb.3.9 Koefisien terurut citra papan-catur hasil pemilihan basis
Kali ini tingkat kompresi diperbesar menjadi 2.3 kalinya, dengan cara
memperkecil K menjadi sekitar 1.25√N. Gambar 5 menunjukkan citra teramati,
dimana piksel abu-abu menyatakan piksel yang tak terlihat oleh pengamatan
DMD. Hasil rekonstruksi diperlihatkan pada Gambar 3.10. Terlihat bahwa
rekonstruksi eksak sudah tercapai.
citra teramati
5 10 15
2
4
6
8
10
12
14
16
citra rekonstruksi
5 10 15
2
4
6
8
10
12
14
16
(a) (b)
Gb.3.10 (a) Citra teramati dan (b) citra rekonstruksi
Memahami Penginderaan Kompresif dengan MATLABTM 61
Kode Matlab
% ------------------------------------------------------------------
% ** fungsi membentuk matriks transformasi Haar **
% ------------------------------------------------------------------
function [H]=haar_T(h_size);
n=ceil(log2(h_size));N=2^n;
H=zeros(N,N);
norm_factor=1/sqrt(N);
%difine z-axis
z=(0:1:N-1)/N;
H(1,:)=1;
for p=0:n-1;
for q=1:2^p;
k=2^p+q-1;
%disp(sprintf('k=%d , p=%d, q= %d \n',k,p,q)); % debug p and q
hk=zeros(N,1);
hk_1=2^(p/2); hk_2=-(2^(p/2));
lb_1=ceil(N*(q-1)/2^p);ub_1=ceil(N*(q-0.5)/2^p);
lb_2=ceil(N*(q-0.5)/2^p);ub_2=ceil(N*q/2^p);
% *debug z-bound
% disp(sprintf('lb_1=%d , ub_1=%d, lb_2= %d, ub_2= %d\n',lb_1,ub_1,lb_2,ub_2));
H(k+1,lb_1+1:ub_1)=hk_1;
H(k+1,lb_2+1:ub_2)=hk_2;
end
end;
H=H*norm_factor;
3.1.3 Pencuplikan Kompresif Kawasan Frekuensi
Pemilihan transformasi penjarang yang tepat sangat berpengaruh pada hasil
rekonstruksi pencitraan kompresif. Bagian ini menjelaskan pemakaian teknik
minimisasi variansi total (TV-total variance), salah satu estimasi kokoh (robust)
yang sebenarnya sudah sering dipakai namun baru disadari hubungannya
dengan pencuplikan kompresif. Karena parameter dari TV minimum saja tidak
bisa dipakai untuk melakukan inversi, harus ada basis lain yang terhubung
dengan seleksi TV minimum. Diagram ranah-jamak dipakai untuk menjelaskan
keterkaitan antar transformasi dan parameter yang digunakan dalam
pencitraan kompresif kawasan frekuensi.
62 Andriyan B. Suksmono
Operasi pengamatan pada kawasan spasial yang dijelaskan sebelumnya dapat
ditafsirkan sebagai pencuplikan terhadap vektor basis penjarang jika dituliskan
sebagai:
( )Ss ΦΨ=ˆ (3.4)
Setiap baris pada Φ hanya berisi satu buah angka bernilai satu, sedangkan
sisanya nol. Perkalian dengan Ψ mengakibatkan seleksi vektor baris pada
indeks yang bersangkutan dengan letak kolom elemen aktif Φ tersebut. Sebagai
akibatnya, vektor basis dalam Ψ akan berkurang dan letaknya diacak.
Kinerja rendah yang dihasilkan akibat penggunaan DCT sebagai transformasi
penjarang dapat ditingkatkan dengan transformasi bentuk lain. Salah satu yang
telah sering dipakai tetapi baru disadari kaitannya dengan pencuplikan
kompresif adalah variansi total (TV-total variane). Pendekatan ini berbeda cukup
jauh jika dibandingkan dengan metoda sebelumnya yang merupakan tafsiran
langsung pencuplikan spasial. Kaitan berbagai transformasi dan proses recovery
sinyal dilukiskan dalam diagram ranah jamak berikut ini.
s s
S
|∇|1
Φ
P1
ε
ς
F F -1 F
F -1
Φ E{ζ}
P1
Gb.3.11. Diagram ranah-jamak pencuplikan kompresif kawasan frekuensi
Memahami Penginderaan Kompresif dengan MATLABTM 63
Mengacu pada diagram, sinyal s terlebih dahulu ditransformasikan ke kawasan
frekuensi menjadi ζ. Pencuplikan kompresif kawasan ini dengan transformasi
pengukur Φ akan menghasilkan cuplikan kompresif ς . Karena basis penjarang
ada dalam kawasan lain yang perhitungannya didasarkan pada sinyal kawasan
spasio-temporal, maka hasil cuplikan kompresif terlebih dahulu dikembalikan
ke kawasan semula menjadi sinyal . Selanjutnya yang akan diminimumkan
adalah nilai variansi total:
s
22
2
2
1
ˆ...
ˆˆˆ ⎟⎟⎠
⎞⎜⎜⎝
⎛++⎟⎟
⎠
⎞⎜⎜⎝
⎛+⎟⎟
⎠
⎞⎜⎜⎝
⎛=∇≡
ndxsd
dxsd
dxsdsS (3.2)
dan basis pursuit dapat dirumuskan sebagai
(P1): min |S| s.t. (3.3) ςˆ 1−= Fs
Optimisasi ini mengatakan untuk memilih ς yang inverse transform Fouriernya,
yaitu memiliki variansi total |S| terkecil, tetapi bisa menjelaskan hasil
pengamatan = F
s
s -1 ς . Pada diagram, pengaruh hasil pemilihan |S| terkecil
pada koefisien Fourier digambarkan sebagai panah bergaris dan berujung ganda
pada bagian kiri diagram. Operasi pengambilan nilai variansi total digambarkan
sebagai transformasi merugi karena pengetahuan nilai variansi total saja tidak
dapat dipakai untuk merekonstruksi sinyal semula.
3.1.4 Eksperimen dan Analisis
Pada eksperimen dipakai citra yang sama seperti sebelumnya, tetapi mekanisme
rekonstruksi-nya sangat berbeda; yang dapat disimpulkan dengan
membandingkan diagram ranah jamak pada Gambar 3.11 dengan yang ada
pada tulisan sebelumnya. Untuk keperluan ini bisa di-unduh paket program
optimisasi l1-magic dari Caltech. Program utama sedikit dimodifikasi seperti
diperlihatkan pada lampiran di akhir tulisan ini.
64 Andriyan B. Suksmono
citra asli
5 10 15
2
4
6
8
10
12
14
16
Gb.3.12 Citra asli
citra teramati
5 10 15
2
4
6
8
10
12
14
16
Gb.3.13 Citra teramati
Gambar 3.12 menunjukkan citra asli, sedangkan Gambar 3.13 adalah citra
teramati dilihat dari kawasan spasial. Piksel berharna abu-abu menyatakan
ketiadaan data pada posisi bersangkutan, sedangkan piksel hitam dan putih
menyatakan hasil pengamatan terkompresi sebanyak 4 kali. Tidak seperti pada
tulisan sebelumnya, sangat sulit menebak citra sebenarnya dari citra teramati
ini. citra rekonstruksi
5 10 15
2
4
6
8
10
12
14
16
Gb.3.14. Citra hasil rekonstruksi berdasarkan TV
Memahami Penginderaan Kompresif dengan MATLABTM 65
Hasil rekonstruksi yang diperlihatkan pada Gambar 3.14 jauh lebih bagus dari
yang sebelumnya—bahkan tepat sama dengan citra asalnya. Disini terlihat
betapa pentingnya pemilihan basis penjarang yang tepat didalam pencuplikan
kompresif. Nilai TV menggambarkan smoothness karena berhubungan dengan
variansi atau keragaman citra. Meminimumkan nilai ini berarti memilih citra
dengan variansi rendah, atau smoothness yang tinggi. Ini sangat cocok untuk
citra-citra tomografi dalam biomedika, karena organ tubuh semestinya smooth.
Kode Matlab
% *******************************************
% kamera piksel tunggal: cs_camera.m
% ditulis kembali berdasarkan kode L1-magic
% fungsi-fungsi lain dapat di-download dari Caltech
% *******************************************
% use implicit, matrix-free algorithms ?
largescale = 1;
path(path, './Optimization'); path(path, './Measurements'); path(path, './Data');
% read original image
I=double(imread('IMG\H.bmp','bmp'));
%tampilkan citra asal;
figure(1); imagesc(I); colormap(gray); title('citra asli');
[n_row,n_col] = size(I); n = n_row; % panjang baris/kolom
N = n_row*n_col; % total cuplikan asal/ jumlah piksel
I = I/norm(I(:)); %normalisasi energi citra
I = I - mean(I(:)); %mean dibuat nol
x = reshape(I,N,1); %ubah menjadi larik 1-D /vektor
% jumlah observasi yang diinginkan
f_comp=4;%faktor kompresi
K = N/f_comp;%jumlah pengamatan
% Simulasi DMD kawasan frekuensi
P = randperm(N)';
66 Andriyan B. Suksmono
q = randperm(N/2-1)+1;
OMEGA = q(1:K/2)';
% measurement matrix
if (largescale)
A = @(z) A_f(z, OMEGA, P);
At = @(z) At_f(z, N, OMEGA, P);
% obsevations
b = A(x);
% initial point
x0 = At(b);
else
FT = 1/sqrt(N)*fft(eye(N));
A = sqrt(2)*[real(FT(OMEGA,:)); imag(FT(OMEGA,:))];
A = [1/sqrt(N)*ones(1,N); A];
At = [];
% observations
b = A*x;
% initial point
x0 = A'*b;
end
I0=reshape(x0, n, n);
figure(2);imagesc(I0);colormap(gray);title('citra teramati');
tvI = sum(sum(sqrt([diff(I,1,2) zeros(n,1)].^2 + [diff(I,1,1); zeros(1,n)].^2 )));
disp(sprintf('Original TV = %.3f', tvI)); %TV asal
time0 = clock;
xp = tveq_logbarrier(x0, A, At, b, 1e-3, 5, 1e-8, 200);
Ip = reshape(xp, n, n);
disp(sprintf('Total elapsed time = %f secs\n', etime(clock,time0)));
figure(3);imagesc(Ip);colormap(gray);title('citra rekonstruksi');
3.2 Radar Pensintesa Frekuensi Berdasarkan Penginderaan Kompresif
Radar penembus permukaan (GPR/Ground Penetrating Radar) adalah suatu alat
pencitra gelombang elektromagnetik (EM) yang mampu melihat benda-benda di
Memahami Penginderaan Kompresif dengan MATLABTM 67
bawah permukaan tanah. Desain GPR sangat bergantung pada tujuan aplikasi;
GPR untuk mencitra benda dibawah permukaan dalam (mis. air) akan berbeda
dengan yang akan dipakai untuk melihat benda di permukaan dangkal (mis.
ranjau). Disamping itu, persyaratan resolusi yang juga akan menentukan
persyaratan desain dari radar.
Secara prinsipil ada dua macam teknologi pancaran radiasi EM yang bisa
dipakai untuk membuat radar, yaitu pancaran impuls dan pancaran gelombang
kontinyu. Tulisan ini akan menjelaskan GPR yang dibuat berdasarkan prinsip
kedua, yakni radar dengan teknik SFCW (Stepped-Frequency Continuous Wave).
Untuk kepentingan praktis tertentu yang memerlukan resolusi tinggi, durasi
impuls (efektif) yang diperlukan haruslah sangat singkat (sampai orde sub-nano
detik). Sumber impuls yang demikian sangat sulit dicari, sangat mahal,
memerlukan rangkaian RF yang tidak sederhana, dan perlu penguat daya yang
sulit untuk dibeli. Masalah ini dapat diatasi dengan teknik SFCW, meskipun
akan meningkatkan waktu akuisisi data dan pengolahan sinyal. Teknik
multipleksing ruang-frekuensi, dimana beberapa frekuensi dapat dipancarkan
secara serempak pada beberapa titik koordinat spasial sekaligus dapat dipakai
sebagai pilihan dalam mengatasi masalah kecepatan pencitraan. Disampiing itu,
perkembangan mutakhir dari teknik pencitraan kompresif juga menjanjikan
solusi bagi masalah yang sangat mendasar ini.
3.2.1 Prinsip Kerja dan Geometri Pencitraan GPR
Citra benda yang diperoleh sistem radar pada dasarnya merupakan sekumpulan
pantulan gelombang EM sebagai fungsi dari posisi dan sifat benda pemantul.
Untuk sebuah radar ideal, impuls radar dapat dianggap sebagai suatu fungsi
delta Dirac δ(t), seperti yang dilukiskan pada Gb.3.15: (a) skema pencitraan GPR
dan (b) deretan gema impuls yang diterima sistem radar. Bagian pengirim (Tx)
memancarkan impuls ( 0tt − )δ , kemudian impuls akan mengenai objek lalu
sebagian akan dipantulkan kembali dan akhirnya diterima oleh sistem penerima
(Rx) yang dinyatakan oleh ( ttt )Δ−− 0δ . Karena kecepatan gelombang EM dalam
medium tertentu telah diketahui, maka jarak antara antenna ke benda dapat
dihitung berdasarkan waktu tunda Δt.
68 Andriyan B. Suksmono
Tx Rx
Benda
(a)
C1δ(t) C2δ(t-Δt)
Δt
(b)
Gb.3.15 Prinsip radar: (a) geometri pencitraan GPR dan (b) A-scan ideal
Data pantulan untuk satu titik pencitraan akan berupa suatu fungsi waktu
yang menyatakan letak dan kekuatan pemantul sepanjang perjalanan
gelombang. Bentuk data radar yang paling mendasar ini disebut sebagai sapuan
jenis-A atau A-scan. Untuk kasus impuls Dirac, pantulan ideal akan berupa
impuls Dirac yang tertunda dengan dilemahkan, seperti yang diperlihatkan
pada Gb.3.15.b. Jika penyapuan dilakukan sepanjang suatu garis lurus, akan
diperoleh sekumpulan A-scan yang menyatakan letak-letak pemantul pada
kedalaman tertentu sepanjang garis. Untuk pemantuk berupa benda titik, profil
pantulan akan berbentuk hiperbola tertelungkup, seperti diperlihatkan pada
Gb.3.16. Hasil penyapuan yang demikian disebut sebagai B-scan. Jika B-Scan
dilakukan berkali-kali sehingga meliputi suatu bidang datar, maka hasilnya
adalah gambaran dimensi tiga yang disebut sebagai C-scan.
Memahami Penginderaan Kompresif dengan MATLABTM 69
Benda
Gb.3.16 Kurva hiperbola yang dihasilkan oleh B-scan
Pada kenyataanya, impuls delta Dirac tidak mungkin dapat diperoleh karena
beberapa alasan. Yang pertama adalah keterbatasan rentang frekuensi kerja
dari peralatan. Sebagai akibatnya akan terjadi pelebaran impuls sehingga
membentuk suatu fungsi Gaussian. Disamping itu, antena juga berfungsi
sebagai diferensiator. Ini bisa difahami karena komponen arus searah (DC) dari
sinyal tidak mungkin disalurkan antenna tanpa kontak langsung dengan
medium dan tanpa pembentukan rangkaian tertutup. Dengan demikian,
keluaran dari antenna pemancar akan berupa turunan pertama dari fungsi
Gaussian, yang biasa dikenal sebagai impuls monocycle. Sinyal monocycle dalam
kawasan waktu dan frekuensi dilukiskan pada Gb.3.17.
ΔΩ1 ΔΩi ΔΩN
|S(Ω)|2s(t)Fourier
Transform
ΔΩ1 ΔΩi ΔΩN
|S(Ω)|2s(t)s(t)Fourier
Transform
ΔΩ1 ΔΩi ΔΩN
|S(Ω)|2s(t)s(t)Fourier
Transform
ΔΩ1 ΔΩi ΔΩN
|S(Ω)|2s(t)s(t)Fourier
Transform
Gb.3.17 Hubungan waktu-frekuensi dari monocycle
Berdasarkan penjelasan sebelumnya dan mengacu pada Gb.3.17, terlihat bahwa
sebuah impuls dapat dibangkitkan melalui dua cara, yaitu: (1) pembangkitan
pada kawasan waktu, dan (2) pembangkitan pada kawasan frekuensi. Cara (1)
disebut juga cara langsung, sedangkan cara (2) adalah cara yang tidak langsung
dengan sintesa tanggapan frekuensi. Prinsip yang dipakai pada cara (2) ini
adalah dualitas dari sinyal dalam kawasan waktu dan frekuensi melalui
transformasi Fourier.
70 Andriyan B. Suksmono
Tinjau suatu fungsi waktu atau sinyal kontinyu s(t). Penguraian sinyal ini
kedalam komponen frekuensi dilakukan dengan transformasi Fourier sebagai
berikut:
( ) ( ) ( )∫∞
∞−−= dttjtsS ω
πω exp
21
(3.4.a)
( ) ( ) ( )∫∞
∞−= ωωω
πdtjSts exp
21
(3.4.b)
dimana ω=2πf adalah frekuensi (angular), sedangkan 1−=j adalah bilangan
imajiner. Persamaan (3.4.a) disebut sebagai persamaan analisis, sedangkan
persamaan (3.4.b) adalah persamaan sintesis.
Teknik SFCW berhubungan langsung dengan sintesis Fourier. Dalam hal ini,
sinyal s(t) diperoleh dengan cara mengukur nilai S sebagai fungsi frekuensi.
Karena pada umumnya S(ω) bernilai kompleks, sintesis s(t) memerlukan
magnitudo maupun fasa dari S(ω). Kebutuhan data yang demikian berakibat
langsung pada sisi implementasi, yakni sistem deteksi sinyal harus dibuat
sedemikian hingga komponen magnitudo dan fasa, atau bagian riil dan imajiner
bisa didapatkan. Perangkat yang mampu melakukan pengukuran sinyal
kompleks ini adalah pendemodulasi kuadratur (I/Q demodulator). Setelah S(ω)
diperoleh, maka secara prinsipil sinyal s(t) yang tak lain adalah A-scan, dapat
ditentukan dari proses inversi Fourier dari persamaan (3.4.b).
3.2.2 Teknik Sintesa Frekuensi untuk Radar
Pada kenyataanya, nilai S(ω) tidak bisa diperoleh untuk seluruh ω dalam
kawasan waktu-kontinyu, melainkan hanya untuk sejumlah berhingga dari titik
pengamatan. Ini berarti bahwa data S hanya dapat diperoleh untuk sekumpulan
frekuensi ω yang berubah secara diskrit.
Dengan demikian, proses yang sebenarnya lebih sesuai untuk memodelkan
sistem radar SFCW adalah analisis dan sintesis sinyal dengan transformasi
Fourier diskrit (DFT) sbb:
Memahami Penginderaan Kompresif dengan MATLABTM 71
⎟⎠⎞
⎜⎝⎛−= ∑
−
=
kN
jnsN
SN
nnk
π2exp1 1
0 (3.5.a)
⎟⎠⎞
⎜⎝⎛= ∑
−
=
nN
jkSN
sN
kkn
π2exp1 1
0
(3.5.b)
Sintesa untuk membentuk impuls dilakukan dengan persamaan (3.5.b),
sedangkan koefisien Fourier Sk yang bernilai kompleks diperoleh dari
pengukuran magnitudi dan fasa gelombang pantul. Indeks k menyatakan
urutan frekuensi ke-k dari sinyal. Dengan demikian, pada saat akuisisi data
dilakukan, sekumpulan sinyal dengan frekuensi tertentu dipancarkan
kemudian tanggapannya diukur untuk mendapatkan estimasi dari koefisien
Fourier . kS
Gb.3.18 Konstruksi Dasar Sistem SFCW-GPR
Diagram blok sederhana dari sistem SFCW-GPR diperlihatkan pada Gb.3.18.
Pada gambar tersebut, sekumpulan gelombang dengan frekuensi tertentu (ωk)
dibangkitkan oleh frequency synthesizer dan dipancarkan secara berurutan
melalui antena UWB (ultrawideband). Penerima akan menangkap pantulan
gelombang melalui antena penerima untuk di-demodulasi dengan pen-
demodulator kuadratur. Hasilnya adalah sinyal Ik (inphase) dan sinyal Qk
(quadrature) yang secara bersama-sama membentuk koefisien Fourier kompleks
72 Andriyan B. Suksmono
( ) ( ) ( kkkk jQISS )ωωω +== (3.6)
Setelah dicuplik dengan ADC, pengolah sinyal akan merekonstruksi sinyal
kawasan waktu sn dengan algoritma IDFT.
3.2.3. Pertimbangan Desain SFCW-GPR
Ada beberapa hal penting yang perlu dipertimbangkan dalam merancang sistem
SFCW-GPR, diantaranya adalah: lama pancaran untuk satu frekuensi tertentu
(Δt), frekuensi pusat ω0 dan rentang frekuensi kerja, jumlah fekuensi yang
digunakan (N), separasi antar frekuensi Δω, tingkat kuantisasi ADC, dan
ketersediaan komponen. Berikut ini penjelasan singkat dari masing-masing
aspek:
• Lama pancaran (Δt) dan jumlah frekuensi N: kedua hal ini akan menentukan
kecepatan pencitraan radar. Batas minimum-nya adalah settling-time dari
pensintesis dan kecepatan ADC, sedangkan batas maksimumnya
berhubungan dengan lama waktu pencitraan yang diinginkan. Jika Δt terlalu
kecil, ada kemungkinan pembangkit frekuensi belum mencapai keadaan
tunak. Disisi lain, jika nilainya terlalu besar, maka waktu untuk
mendapatkan data akan terlalu lama. Hal terakhir harus diperhitungkan
untuk menentukan kecepatan penyapuan radar.
• Rentang frekuensi kerja dan pusat frekuensi ω0: frekuensi kerja akan sangat
mempengaruhi aplikasi dari GPR. Radar dengan ω0 rendah akan mampu
menembus permukaan yang lebih dalam. Sebaliknya, radar dengan ω0 besar
lebih cocok untuk pencitraan dangkal. Lebar pita (BW) berhubungan
langsung dengan resolusi, semakin tinggi BW semakin besar pula
resolusinya.
• Tingkat kuantisasi ADC: hal ini akan menentukan lebar dinamika sinyal
yang diperoleh. Sebagai gambaran, ADC 8 bit dapat dipakai untuk
mengkuantisasi sinyal dengan lebar dinamika 41 dB, 12 bit bisa mencapai
65 dB, 14 bit mampu mengkuantisasi sinyal 77 dB, sedangkan untuk sinyal
dengan lebar dinamik 89 dB memerlukan ADC 16 bit.
Memahami Penginderaan Kompresif dengan MATLABTM 73
• Ketersediaan komponen: meskipun dari perhitungan bisa diperoleh disain
yang bagus, implementasi menjadi perangkat keras sangat ditentukan oleh
ketersediaan komponen di pasaran.
• Separasi antar frekuensi Δω akan menentukan ambiguitas jangkauan (range
ambiguity). Ini setara dengan PRF (pulse repetition frequency) pada radar
impuls.
3.2.4 Eksperimen SFCW-GPR Dengan VNA (Vector Network Analyzer)
Pada dasarnya sebuah SFCW-GPR adalah pencitra kawasan Fourier. Sebuah
citra GPR tersusun atas A-scan yang didapat dari inversi data kawasan
frekuensi, yaitu koefisien Fourier kompleks untuk setiap frekuensi. Dengan
demikian, perangkat SFCW-GPR bukan hanya dituntut untuk mampu
mendeteksi magnitudo, tetapi juga fasa dari gelombang yang datang. Alat ukur
yang bisa dipakai untuk keperluan ini adalah VNA (Vector Network Analyzer).
Konfigurasi bistatik seperti pada Gb.3.18 dapat dipakai untuk melakukan
pencitraan, antena pertama berfungsi sebagai pemancar dan yang kedua
sebagai penerima. Pada GPR-test range, antena dipasang pada penyapu elektro-
mekanik tiga dimensi, tetapi penyapuan dapat juga dilakukan secara jika
peralatan yang demikian tidak tersedia. VNA diatur untuk mengukur S21 dan
mengeluarkan data kompleks. Sebuah komputer dapat dihubungkan ke VNA
untuk mengambil dan merekonstruksi A-scan secara langsung. Jika antar-
muka VNA dan komputer tidak memungkinkan pengambilan langsung, data
bisa dipindahkan secara manual melalui floppy disk.
Sebelum scanning VNA dijalankan, rentang frekuensi kerja harus terlebih
dahulu ditentukan. Hal ini bisa diperkirakan berdasarkan impuls ΔT atau
resolusi yang diinginkan. Lebar pita yang dipakai harus berbanding terbalik
dengan lebar impuls, atau ΔB=1/ΔT.
74 Andriyan B. Suksmono
0 0.2 0.4 0.6 0.8 1-0.5
0
0.5A-scan
time
ampl
itude
Gb.3.19 A-scan hasil pencitraan SFCW-GPR dengan VNA
Setelah data S21 berhasil dikumpulkan, langkah selanjutnya adalah melakukan
inversi Fourier dengan persamaan (2.b). Hal penting yang perlu dicatat, A-scan
adalah sebuah sinyal riil. Dengan demikian hasil transformasi Fouriernya
adalah sinyal kompleks yang bersifat konjugasi simetrik. Data dari S21 dari
VNA hanya berisi setengah bagian dari koefisien Fourier, setengah bagian
sisanya diisi dengan memanfaatkan sifat konjugasi simetrik ini. Contoh
pengisian data bagian konjugasi simetrik diperlihatkan pada program Matlab
diakhir tulisan.
Contoh hasil rekonstruksi A-scan untuk pengujian di test-range diperlihatkan
pada Gb.3.19. Disini terlihat adanya 2 buah pantulan dominan, yang pertama
berasal dari pancaran langsung yang diterima antena loop yang terbenam dalam
bak pasir, sedangkan yang kedua berasal dari pantulan benda. Konfigurasi
pencitraan normal dengan kedua antena berada diatas permukaan akan
menghasilkan A-scan yang bentuknya berbeda. Biasanya pantulan kuat terjadi
di sekitar t=0 akibat pantulan langsung dari tanah atau kebocoran dari
pemancar, sedangkan pantulan lain berasal dari benda didalam tanah. Karena
jarak antena ke tanah maupun jarak pemancar ke penerima tetap, pantulan
kuat yang dapat mengganggu analisis hasil pencitraan ini dapat dihilangkan
dengan penapisan sederhana.
Kode Matlab
Memahami Penginderaan Kompresif dengan MATLABTM 75
% *****************************************************
% * display A-scan: menampilkan kurva A-scan dari data S21
% ****************************************************
path(path, 'Data\');
% baca dara, format: FREQ. ## REAL-PART ## IMAGINARY-PART
data=load('VNA_TRACE.txt');
N=length(data); NRows = 512; %extend seq. length
delta_t = 1/NRows; t=delta_t*(1:NRows);
dmy=zeros(NRows,1);
S21 = data(:,2) + data(:,3).*i; % Raw complex data
% filling the conjugate symmetric part of the data
trc_N = length(S21);
dmy(1) = 0; dmy(2:trc_N+1) = S21; dmy(trc_N+2:512) = 0;
dmy(NRows-trc_N+1:NRows) = conj(S21(trc_N:-1:1));
% inversi dan normalisasi
f=real(ifft(dmy)); f=f-mean(f); x=f/norm(f(:));
figure(1);plot(t,x); title('A-scan'); xlabel('time');ylabel('amplitude');
3.2.5 Radar SFCW-GPR Kompresif
Radar pensintesa frekuensi SFCW-GPR memiliki kelemahan dalam hal
kecepatan pengumpulan data. Inilah salah satu alasan mengapa sistem radar
ini kurang berkembang. Berbagai upaya telah dilakukan untuk mengatasi
masalah ini, misalnya dengan mengirimkan beberapa frekuensi sekaligus secara
serempak. Munculnya teknik pencitraan kompresif memungkinkan masalah ini
dapat diatasi dengan pendekatan lain.
Pada prinsipnya, radar kompresif ini melakukan pencuplikan sejumlah kecil
frekuensi secara acak dan kemudian menerapkan prinsip penginderaan
kompresif untuk melakukan proses rekonstruksi sinyal. Dengan demikian,
perlu adanya blok tambahan berupa pembangkit bilangan acak dan blok
pengolah sinyal bersarkan pemrograman matematika. Disamping itu,
76 Andriyan B. Suksmono
pembangkit frekuensi harus memiliki kemampuna membangkitkan frekeusnsi
secara acak. Gambar 3.20 memperlihatkan perubahan sistem yang dimaksud.
t
f
Random Access Frequency
Synthesizer
×
I Q
ADC
Tx Antenna Rx Antenna
Quadrature Mixer
Display
Pseudorandom Number
Generator
Optimization Algorithm
Gb. 3.20. Blok diagram dari SFCW-GPR Kompresif
Perbandingan hasil pengolahan sinyal dari jumlah cuplikan yang sama, dengan
teknik konvensional IDFT dan teknik penginderaan kompresif untuk hasil
pengamatan VNA sebelumnya diperlihatkan pada Gambar 3.21. Pada gambar
terlihat bahwa hasil rekonstruksi dengan penginderaan kompresif jauh lebih
baik daripada IDFT, hal ini tentu mempengaruhi kinerja radar yang dibuat.
Pada gambar, sinyal dengan label ”ORG” merupakan sinyal hasil rekonstruksi
seluruh cuplikan, label ”IDFT” menyatakan rekonstruksi dengan inverse DFT
dari 1/8 cuplikan acak, sedangkan ”CS8×”, sampai, ”CS2×” menyatakan
rekonstruksi dengan metoda penginderaan kompresif berdasarkan 1/8 buah
cuplikan sampai ½ banyak cuplikan asalnya.
Memahami Penginderaan Kompresif dengan MATLABTM 77
0 50 100 150 200 250 300 350 400 450 500
CS2x
CS3x
CS4x
CS5x
CS8x
IDFT
ORG
Gb.3.21. Perbandingan hasil rekonstruksi sinyal dengan IDFT dan CS
untuk berbagai tingkat kompresi
dept
h (s
ampl
e-in
dex)
y-axis (m)0.25 0.5 0.75 1 1.25 1.5 1.75
100
200
300
400
500
dept
h (s
ampl
e-in
dex)
y-axis (m)0.25 0.5 0.75 1 1.25 1.5 1.75
100
200
300
400
500
dept
h (s
ampl
e-in
dex)
y-axis (m)0.25 0.5 0.75 1 1.25 1.5 1.75
100
200
300
400
500
dept
h (s
ampl
e-in
dex)
y-axis (m)0.25 0.5 0.75 1 1.25 1.5 1.75
50
100
150
200
250
300
350
400
450
500
ORIGINAL IDFT8x CS8x CS2x
dept
h (s
ampl
e-in
dex)
y-axis (m)0.25 0.5 0.75 1 1.25 1.5 1.75
100
200
300
400
500
dept
h (s
ampl
e-in
dex)
y-axis (m)0.25 0.5 0.75 1 1.25 1.5 1.75
100
200
300
400
500
dept
h (s
ampl
e-in
dex)
y-axis (m)0.25 0.5 0.75 1 1.25 1.5 1.75
100
200
300
400
500
dept
h (s
ampl
e-in
dex)
y-axis (m)0.25 0.5 0.75 1 1.25 1.5 1.75
50
100
150
200
250
300
350
400
450
500
ORIGINAL IDFT8x CS8x CS2x
Gb.3.22 Perbandingan hasil rekonstruksi B-scan
Perbandingan citra B-scan pada Gb.3.22 memperlihatkan efek ini lebih jelas
lagi. Lengkungan hiperbola pada rekonstruksi IDFT terkotori oleh cacat akibat
cuplikan tak lengkap, sedangkan rekonstruksi dengan CS memberikan hasil
78 Andriyan B. Suksmono
yang jauh lebih baik. Citra scan-B untuk cuplikan ½ dari semula memberikan
hasil yang hampir sempurna seperti pada citra asal dengan cuplikan penuh. Hal
ini memperlihatkan kemungkinan implementasi radar kompresif dengan
kecepatan tinggi dan hasil rekonstruksi citra yang baik.
Memahami Penginderaan Kompresif dengan MATLABTM 79
Daftar Pustaka
[1]. S.S. Chen, D. Donoho, and MA Saunders, ”Atomic decomposition by basis
pursuit,” SIAM J. on Scientific Computing, 20(1):33-61, 1999.
[2]. DL Donoho & PB Stark, ”Uncertainty principles and signal recovery”, SIAM J.
on Applied Math., 49(3):906-31, 1989.
[3]. DL Donoho & X. Huo, Uncertainty Principles and Ideal Atomic Decomposition,
Tech. Report, Stanford University.
[4]. M.Elad and A.M. Bruckstein, “A generalized uncertainty principle and sparse
representation in pairs of bases", IEEE Trans. on Information Theory, Vol. 48,
pp. 2558-2567, September 2002.
[5]. D. L. Donoho and M. Elad, “Maximal sparsity representation via l1
Minimization”, Proc. of the National Academy of Science,
[6]. S.S. Chen, D. Donoho, and MA Saunders, ”Atomic decomposition by basis
pursuit,” SIAM J. on Scientific Computing, 20(1):33-61, 1999.
[7]. AB. Suksmono, ”A graphical representation of multi-domain signal
processing,” Proc. of SICE-ICASE 2006, Busan, Korea.
[8]. EJ. Candes, J. Romberg, and T. Tao, ”Robust uncertainty principles: Exact
signal recovery from highly incomplete frequency information,” IEEE
Transaction Information Theory, Vol.52, no.2, Feb.2006, pp.489-509.
[9]. MF. Duarte, MA. Davenport, D. Takhar, JN. Laska, T. Sun, KF. Kelly, and
RG. Baraniuk, “Single-pixel imaging via compressive sampling,” IEEE Signal
Proc. Magazine (83), March 2008, pp.83-90.
[10]. L.P. Ligthart, Course Handout: A 3-Days Short Course on GPR, IRCTR-
Delft.
[11]. A.B. Suksmono, E. Bharata, A.A. Lestari, A. Yarovoy, and LP. Ligthart,
“Compressive Stepped-Frequency Continuous Wave Ground Penetrating
Radar,” IEEE Geoscience and Remote Sensing Letters, 2009, (minor revision).
[12]. A.B. Suksmono, E. Bharata, A.A. Lestari, A. Yarovoy, and LP. Ligthart, “A
compressive SFCW-GPR System,” The 12th Intl. Conf. on Ground Penet. Radar,
June 16-19, 2008, Birmingham, UK.
[13]. A.B. Suksmono, AA Lestari, AA Pramudita, E. Bharata, and N. Rachmana,
“ An Algorithm to Select the Best Set of Frequencies in Stepped-Frequency
80 Andriyan B. Suksmono
Continuous-Wave Radars,” J. Elektronika dan Telekomunikasi, LIPI, Vol.8,
No.1, Januari 2008, hal 1-5.
[14]. AB Suksmono, “ An introduction to compressive sensing and its
application,” Intl. Univ. Exchange Seminar and IJJSS2008, Chiba, Japan.
[15]. A.B. Suksmono, “ A brief review on compressive imaging,” Proc. of APT
Workshop and ITU Rapporteur Group Meeting 2008, Tokyo, Japan.
[16]. A.B. Suksmono, “Compressive imaging,” invited speaker in ICMNS (Intl
Conf. on Math. And Nat. Sciences, Oct. 2008, ITB, Bandung.
[17]. A.A. Pramudita, A. Kurniawan, A.B. Suksmono, “Hexagonal Monopole
Strip Antenna with Rectangular Slot for 100-1000 MHz SFCW GPR
Applications,” Int. J. of Antennas and Propagation, Vol.2008, pp.1-6.