Chaotic Pearls

Lamunan dari seberang GKU lama …

Archive for the ‘Uncertainty Principles and Signal Compression’ Category

Prinsip Ketidakpastian dan Kompresi Data (3)

Posted by suksmono on May 12, 2008

Pada kawasan diskrit, WHUP dinyatakan sebagai penjumlahan RoS (Region of Support) dari waktu- dan frekuensi- diskrit sinyal. Prinsip ini dapat diperumum untuk sebarang pasangan kawasan melalui hubungan matriks transformasi atau himpunan fungsi basis-nya. Batas daerah dukung ditentukan oleh tingkat koherensi antar basis ini.

Prinsip Ketidakpastian untuk Kawasan Waktu-Frekuensi Diskrit

Prinsip ketidakpastian Weyl-Heisenberg (WHUP) melarang sebuah sinyal kontinyu untuk terlokalisir pada kawasan waktu dan frekuensi sekaligus. 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 \delta\left(t \right)  hanya memiliki nilai tak nol pada waktu t=0; dengan demikian RoS-nya adalah satu. Sebaliknya, sinyal sinusoidal Asin\left(\omega t+\theta \right)  terbentang ke seluruh kawasan waktu sehingga memiliki RoS di kawasan waktu yang tak berhingga.

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

S\left( k \right)={1}_{\sqrt N}\sum_{n=0}^{N-1} s \left( n \right) {e}^{-j\frac{2 \pi kn}{N}}  ; dimana k = 0, 1, 2, …, N-1.

Untuk sinyal ini, WHUP menyatakan bahwa penjumlahan RoS (yang dilambangkan sebagai supp) sinyal di kawasan waktu dan RoS di kawasan frekuensi dibatasi oleh suatu nilai tertentu, yakni:

\left|supp\left(s \right) \right|+\left|supp\left(S \right) \right|\geq 2\sqrt{N}

Nilai terkecil dari jumlah kedua RoS ini, yaitu 2 \sqrt{N}  , dicapai oleh fungsi Dirac Comb yang support-nya bersifat invarian terhadap transformasi Fourier. Fungsi ini dinyatakan sbb:

s\left(n \right)=\left\{\begin{matrix} 1 & ; n=m \sqrt{N} ;m=0, 1, 2, ..., \sqrt{N}-1 \\ 0 & ; lainnya \end{matrix}\right

Gambar berikut ini memperlihatkan sinyal s(n) dan transform Fouriernya untuk kasus N=16.

Dirac Comb

Sifat ini menunjukkan bahwa batas bawah dari prinsip ketidapkastian adalah 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’);

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 \Phi  .

GUP Diagram

Suatu matriks transformasi \Phi  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) \Phi  dan \Psi  , Elad dan Bruckstein memperkenalkan sebuah prinsip ketidakpastian yang diperumum atau GUP (Generalized Uncertainty Principle):

\left| {\Gamma }_{1} \right| + \left| {\Gamma }_{2} \right| \geq \frac{2}{\mu \left(\Phi ,\Psi  \right)}

dimana:

\mu \left(\Phi ,\Psi  \right)=\max_{\phi \in \Phi , \psi \in \Psi }\left| \left< \Phi,\Psi \right> \right|

Pada ekspresi diatas, {\Gamma}_{1}  adalah support dari sinyal dalam basis (kawasan) \Phi  , sedangkan, {\Gamma}_{2}  adalah support dari sinyal dalam basis (kawasan) \Psi  . Besaran \mu  disebut koherensi (mutual coherence) antara kedua basis dan haruslah memenuhi syarat

1/\sqrt N \leq \mu \left( \Phi , \Psi \right) \leq 1

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

\Phi =\begin{pmatrix} 1 & 0 & ... & 0\\ 0 & 1 & ... & 0\\ ... & ... & ... & ...\\ 0 & 0 & ... & 1<br /> \end{pmatrix}

\Psi =\frac{1}{\sqrt{N}}\begin{pmatrix}<br /> 1 & 1 & ... & 1\\<br /> 1 & W & ... ^{N-1}\\<br /> ... & ... ^{kn} &... \\<br /> 1 ^{N-1} & ...  ^{{N-1}^{2}}<br /> \end{pmatrix}

dimana: W={e}^{-i\frac{2\pi }{N}}

Nilai maksimum dari perkalian skalar vektor basis \left| \left< \phi,\psi \right> \right|  akan tercapai untuk sebarang pasangan vektor dan semuanya akan menghasilkan koherensi yang bernilai sama dengan 1/ \sqrt{N}  akibat faktor normalisasi dari basis Fourier. Dengan demikian GUP akan menjadi \left| {\Gamma }_{1} \right| + \left| {\Gamma }_{2} \right| \geq 2 \sqrt{N}  atau \left| supp(s) \right| + \left| supp(S) \right| \geq 2 \sqrt{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 %====
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 \Psi  dan projection basis \Phi  . Tingkat koherensi kedua basis menentukan batas minimum banyaknya cuplikan untuk merekonstruksi suatu sinyal secara eksak.

Posted in Compressive Sensing, Theory and Concept, Uncertainty Principles and Signal Compression | Leave a Comment »

Prinsip Ketidakpastian dan Kompresi Data (2)

Posted by suksmono on May 9, 2008

Prinsip ketidakpastian Weyl-Heisenberg memiliki konsekuensi yang penting untuk pengolahan sinyal, yaitu sinyal kontinyu yang tersebar dalam kawasan waktu akan terlokalisir dalam kawasan frekuensi dan demikian pula sebaliknya. Perubahan sinyal antar kawasan pada prinsip ini terhubung melalui transformasi Fourier. Tulisan ini memperlihatkan bahwa prinsip ketidakpastian dapat berlaku untuk sinyal waktu diskrit. Disini juga diperkenalkan adanya konsep kawasan yang lebih umum. Sifat penting transform Fourier berupa pengumpulan energi ke sejumlah kecil koefisien ternyata juga dimiliki oleh beberapa transformasi ortogonal atau uniter. Sifat ini dapat dimanfaatkan untuk melakukan kompresi sinyal secara sederhana, yaitu dengan memilih koefisien transform yang dominan dan membuang sisanya.

Prinsip Pengolahan Sinyal secara Dijital
Supaya dapat diolah oleh komputer atau pengolah DSP (Digital Signal Processor), sinyal-sinyal alami yang analog seperti suara atau gambar harus terlebih dahulu diubah menjadi sinyal dijital. Prinsip pengolahan sinyal secara dijital digambarkan dalam diagram blok berikut ini.

Diagram Blok Pengolahan Sinyal Dijital

Pengolah ini menerima masukan sinyal listrik analog dari pengindera atau transducer, yaitu sinyal s(t) yang merupakan berisikan campuran dari sinyal dikehendaki sa(t) dan sinyal lain s’a(t). Tapis (filter) antialiasing berfungsi untuk menghapus sa(t) sehingga tinggal sa(t) yang mengandung semua informasi didalam pita frekuensi yang akan diolah. Pada gambar diperlihatkan sinyal akan menjadi lebih ”halus” setelah melalui tapis ini karena komponen frekuensi tinggi diluar pita kerja sudah hilang.

Blok S/H (sampling and hold) mengambil cuplikan sinyal kontinyu dalam kawasan waktu secara periodik dan akibatnya sinyal berubah menjadi sinyal waktu diskrit sa(n), dimana n adalah bilangan bulat. Sinyal ini masih memiliki amplitudo kontinyu. Karena pengolah bekerja dengan register terbatas, sinyal ini terlebih dahulu diubah menjadi sinyal dijital oleh perangkat A/D (analog to digital converter). Sebuah kartu ADC biasanya telah dilengkapi dengan tapis antialiasing dan perangkat S/H. Keluaran dari A/D ini akan berupa sinyal dijital s(n).

Pengolah dijital (DSP processor) selanjutnya memproses sinyal sesuai dengan tujuan saat perancangan, misalnya penapisan lolos rendah, lolos tinggi, dst. Bagian ini mengubah sinyal asal s(n) menjadi sinyal y(n).

Supaya bisa disajikan kembali ke pengguna, sinyal dijital y(n) harus dikembalikan menjadi sinyal analog dengan memakai perangkat D/A (digital to analog converter). Selanjutnya sebuah tapis rekonstruksi untuk menghilangkan cacat akibat konversi dijital ke analog, dan akhirnya diperoleh keluaran ya(t) yang siap disajikan.

Aljabar Pengolahan Sinyal

Sinyal dijital dapat dianggap sebagai suatu deretan bilangan dan dapat dituliskan sebagai vektor kolom. Sebagai contoh, vektor s=[2 3 7]T menyatakan sebuah 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, perkalian dengan matriks, dll.

Salah satu proses yang sangat penting didalam DSP adalah transformasi sinyal. Pada dasarnya transformasi sinyal adalah proses mengubah sinyal dari suatu kawasan ke kawasan yang lain. Secara geometrik transformasi sinyal pada hakekatnya merupakan perubahan sistem koordinat.

Signal Transform

Pandangan Geometrik dari Transformasi Sinyal

Gambar diatas memperlihatkan sinyal asal s yang berada dalam sistem koordinat (x, y, z) diubah menjadi sinyal S dalam sistem koordinat baru (x’, y’, z’) melalui transformasi T. Kita bisa menganggap vektor basis dari koordinat asal sebagai {i, j, k}={(1,0,0), (0,1,0), (0,0,1)}, sedangkan vektor basis dari koordinat yang baru adalah {i’, j’, k’}.

Menurut Aljabar Linier, transformasi dari vektor s menjadi vektor S dapat dinyatakan sebagai perkalian antara vektor s dengan matriks transformasi T, yakni

S= Ts

Ada sekelompok transformasi penting didalam pengolahan sinyal yang disebut sebagai transformasi ortogonal, dimana semua vektor basis-nya memiliki panjang satu satuan dan bersifat saling tegak lurus. Transformasi ini bersifat mempertahankan panjang atau magnitudo vektor s. Secara geometrik transformasi yang demikian akan merupakan suatu perputaran sistem koordinat. Rotasi terhadap sumbu z sebesar sudut q dapat dinyatakan sebagai transformasi dengan matriks:

T=\begin{pmatrix} cos\left(\theta \right) & -sin\left(\theta \right) & 0\\ sin\left(\theta \right) & cos\left(\theta \right) &0 \\ 0 & 0 & 1 \end{pmatrix}

Akibat rotasi terhadap sumbu-z sebesar 45 derajat, maka sinyal s=[2 3 7]T pada contoh sebelumnya akan berubah menjadi sinyal S = [-0.71 3.54 7.00]T. Perhitungan ini dapat dilakukan dengan bantuan 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

Matriks Transformasi Uniter dan Ortogonal

Transformasi uniter merupakan bentuk umum dari transformasi ortogonal dimana vektor basis-nya memiliki magnitudo satu satu satuan, saling tegak lurus, tetapi nilai komponennya berupa bilangan kompleks. Transformasi Fourier adalah contoh dari transformasi uniter. Matriks DFT dapat diperoleh secara mudah dengan Matlab dengan melakukan operasi fft terhadap suatu matriks identitas yang berukuran NxN

% 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 3×3
S1= U*s, % hasil transformasi Fourier
%cara-2: langsung dengan perintah fft
S2=fft(s)/sqrt(N), %sama dengan S1

Tranformasi sinyal s pada contoh terdahulu memerlukan pembentukan matriks DFT berukuran 3´U. Perkalian dari matriks U dengan s menghasilkan sinyal kawasan frekuensi yaitu S, yang dalam kode Matlab diatas akan sama dengan S1 maupun S2.

U=\frac{1}{\sqrt{3}}\begin{pmatrix} 1 & 1 & 1\\ 1 & -0.5-0.9i & -0.5+0.9i \\ 1 & -0.5-0.9i & -0.5-0.9i \end{pmatrix}

S=U{s}^{T}=\begin{pmatrix}6.9\\ -1.7+2.0i\\ -1.7-2.0i \end{pmatrix}

Kita akan memakai hasil diatas untuk menunjukkan konsep-konsep penting yang dibahas sebelumnya. 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 berlakunya Teorema Parseval yang menyatakan bahwa pengukuran energi dikawasan waktu akan sama dengan hasil pengukuran energi dikawasan frekuensi, atau s*T×s = S*T×S. Dan yang terakhir, kita akan melihat sifat pengkompakan energi dengan memeriksa sebaran energi dikawasan frekuensi E = S×S*. Script Matlab berikut dapat ditambahkan pada script sebelumnya:

S=S1; % dan ini sama juga dng S=S2
% Cek sifat uniter, T. Parseval, dan sebaran
conj(transpose(U))*U, %jika uniter akan menghasilkan 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

Analisis terhadap hasil perhitungan pada kode diatas memberikan kesimpulan bahwa U memang memiliki sifat uniter karena hasil perkalian dengan konjugasi transpose-nya menghasilkan matriks identitas. Perhitungan juga memberikan nilai energi kawasan waktu sebesar E_waktu=62 dan energi kawasan frekuensi sebesar E_frekuensi=62, jadi keduanya identik dan Teorema Parseval telah dipenuhi. Hal yang juga menarik terdapat pada sebaran energi dikawasan frekuensi, yakni E_dist_frek=[48.0 7.0 7.0]T. Disini terlihat bahwa energi hasil transformasi telah terkumpul pada sejumlah kecil koefisien, dalam hal ini hanya pada koefisien yang pertama saja.

Disamping matriks DFT yang dijelaskan diatas, beberapa matriks ortogonal atau uniter lain juga memiliki sifat pengkompakan energi. Disini akan ditinjau dua buah matriks ortogonal yang sering dipakai untuk melakukan transformasi sinyal, yaitu matriks DCT dan matriks Hadamard. Terlebih dahulu sinyal asal diperpanjang menjadi empat cuplikan, misalnya s=[2 3 7 11]T. Dengan demikian haruslah dipilih matriks DCT dan Hadamard yang ukurannya 4´4, masing-masing diberi notasi D dan H2.

{H}_{2}=\frac{1}{2} \begin{pmatrix} 1 & 1 & 1 & 1\\ 1 & -1 & 1 & -1 \\ 1 & 1 & -1 & -1\\ 1 & -1 & -1 & 1 \end{pmatrix}

Matriks DCT dapat diperoleh dengan perintah Matlab dct(eye(4,4)), sedangkan matriks Hadamard bisa dibentuk secara rekursif dengan konstruksi Sylvester, yaitu melalui perkalian Kronecker dengan matriks dasar H1.

{H}_{1}=\frac{1}{\sqrt{2}}\begin{pmatrix}1 & 1\\ 1 & -1 \end{pmatrix}
{H}_{n}={H}_{n-1} \otimes {H}_{1}

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 4×4
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 berlakuknya hukum konservasi energi yang tersirat dari Teorema Parseval, karena diperoleh hasil E_asli=E_dct=E_had = 183. Sifat pengkompakan energi juga ditemukan dikedua transformasi ini. Sebaran masing-masing energi digambarkan dalam histogram berikut ini

Energi DCT

Sebaran Energi Sinyal di Kawasan DCT

Energi Hadamard

Sebaran Energi Sinyal di Kawasan Hadamard

Kompresi Data dengan Transformasi Ortogonal

Kompresi data sederhana dapat dilakukan dengan cara memilih beberapa koefisien yang memiliki energi dominan dan membuang 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 (untuk kompresi sebesar dua kali) dan mengisi komponen sisanya dengan nol, maka kita akan memperoleh 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]‘ ) akan memberikan nilai pendekatan dari sinyal asal sebesar s_hat=[1.2 3.9 7.6 10.3]. Sebaliknya, jika dua komponen tak-dominan yang dipilih, maka dengan tingkat kompresi yang sama akan diperoleh s_hat1= D’*[0 0 1.5 0.1]‘=[0.8 -0.8 -0.7 0.7]T yang sama sekali berbeda dengan sinyal aslinya. Ukuran dari baik-buruk-nya pendekatan sinyal yang satu terhadap yang lain dapat ditentukan dengan menghitung jarak Euclidian kedua sinyal. Caranya: kurangkan kedua sinyal komponen demi komponen, lalu kuadratkan setiap beda komponen dan jumlahkan. Akar kuadrat dari hasil terakhir menunjukkan jarak yang kita cari. Analisis untuk transformasi Hadamard sejalan dengan penjelasan ini, tinggal menggantikan D dengan H2.

Pada tulisan sebelumnya telah diperoleh hasil berupa implikasi tak-langsung dari WHUP, yaitu sinyal yang tersebar dikawasan waktu akan terkumpul di kawasan frekuensi dan begitu pula sebaliknya. Tulisan ini menunjukkan hasil WHUP dengan Matlab dengan cara menghitung energi dari koefisien transformasi Fourier diskrit. Sifat ini juga dimiliki oleh transformasi ortogonal atau uniter yang lainnya, misalnya transformasi DCT dan transformasi Hadamard. Sebuah teknik kompresi data sederhana, yaitu dengan mengambil dua dari komponen dominan koefisien transformasi DCT, telah dijelaskan. Hasil inversi dari data kawasan transformasi yang telah dikompresi dengan cara ini lebih menyerupai sinyal aslinya jika dibandingkan dengan pilihan koefisien lainnya.

Kompresi JPEG (versi 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 dari transformasi ideal KLT (Karhunen-Loeve Tranform) untuk sinyal acak Gauss-Markov orde satu, sebuah model yang mendekati sinyal alami. Cara kerja kompresi JPEG mirip dengan kompresi sederhana yang telah dijelaskan dengan tambahan adanya kompresi tak-merugi berupa entropy coding.

Penutup dan Tulisan Mendatang

Pada “kompresi” DCT diatas telah dipilih komponen yang dominan dan letaknya bisa berubah bergantung pada sinyal masukannya, meskipun pada JPEG letak komponen dan alokasi bit-nya telah ditentukan sebelumnya. Pemilihan yang mengikuti bentuk sinyal seperti ini disebut sebagai pemilihan koefisien secara adaptif; ini adalah masalah yang sebaiknya dihindari. Terlebih lagi kompresi dilakukan pada data dijital yang pada saat dikumpulkan (pemotretan gambar atau perekaman suara) menghasilkan sejumlah besar data yang kemudian dibuang pada saat kompresi. Teknik terbaru yang disebut sebagai Compressed Sensing/ Compressive Sampling (CS) menghindari cara yang tidak efisien seperti ini. Disamping itu, CS juga tidak memerlukan pencuplikan koefisien dominan secara adaptif karena semua komponen sama pentingya, dapat diambil yang manapun asalkan batas minimum jumlah cuplikan terpenuhi. Jumlah cuplikan yang diperlukan untuk rekonstruksi sinyal didalam CS ternyata jauh dibawah batas Nyquist yang dinyatakan oleh Teorema Shannon. Teori CS memerlukan generalisasi dari hubungan waktu-frekuensi supaya prinsip ketidakpastian tetap berlaku. Tulisan mendatang akan mengulas teknik CS ini dengan lebih rinci.

Posted in Compressive Sensing, Theory and Concept, Uncertainty Principles and Signal Compression | Leave a Comment »

Prinsip Ketidakpastian dan Kompresi Data (1)

Posted by suksmono on May 2, 2008

Selama ini teknik kompresi data (sinyal) telah banyak dipakai untuk mengefisienkan penyimpanan dan pengiriman suara atau gambar pada peralatan komputer maupun ponsel. Biasanya orang mengenal kompresi sebagai metoda yang berkembang dalam bidang pengolahan sinyal dijital. Tanpa disadari, sebenarnya ada kaitan erat antara paradigma kompresi sinyal ini dengan prinsip fundamental yang dikenal dalam bidang Fisika Kuantum yaitu prinsip ketidakpastian.

Siapapun yang pernah belajar Fisika Modern tentu mengenal prinsip ketidakpastian Hiesenberg atau HUP (Heisenberg Uncertainty Principle). Prinsip ini menyatakan bahwa pengukuran posisi dan momentum suatu partikel tidak mungkin dibuat teliti kedua-duanya sekaligus, yakni

\Delta p\Delta x\geq \frac{\hbar}{2 }

HUP adalah konsekuensi langsung dari sifat dualitas gelombang-partikel. Sebelum Teori Kuantum muncul, orang mengira bahwa ketelitian pengukuran posisi suatu partikel dan momentum (pada saat bersamaan) hanya akan dibatasi oleh ketelitian alat ukur. Prinsip diatas menyatakan larangan alam untuk mengetahui keduanya sekaligus secara teliti, sepresisi apapun alat ukur yang digunakan.

Selain relasi ketidakpastian dari momentum dengan posisi, HUP juga dapat dinyatakan sebagai hubungan ketidakpastian antara energi dengan waktu, yaitu

\Delta E\Delta t\geq \frac{\hbar}{2 }

Menurut Max Planck, suatu foton yang memiliki frekuensi \omega, akan memiliki energi sebesar \hbar\omega dimana \hbar adalah konstanta Planck. Dengan demikian HUP untuk energi-waktu akan setara dengan

\Delta \omega \Delta t\geq \frac{1}{2}

Pertidaksamaan diatas dinamakan juga prinsip ketidakpastian Weyl-Heisenberg (WHUP) yang berbunyi:

a continuous-time signal cannot be simultaneously well-localized in both time and frequency

Apakah bedanya dengan prinsip ketidakpastian yang sebelumnya? Jika HUP berbicara mengenai partikel dan gelombang sebagai objek fisik, WHUP menyatakan sifat umum dari prinsip ketidakpastian akan berlaku untuk sebarang sinyal atau fungsi kontinyu. Dalam bahasa pengolahan sinyal bisa ditafsirkan bahwa jika suatu sinyal s(t) terlokalisir dalam kawasan waktu maka transform Fourier dari sinyal ini,

F\left(s\left(t \right) \right)=S\left(\omega \right)

akan tersebar dikawasan frekuensi dan demikian pula sebaliknya, suatu sinyal yang terlokalisir dikawasan frekuensi akan memiliki transform Fourier yang tersebar dikawasan waktu.

Dirac Delta Function
Gambar 1. Pasangan transform Fourier dari sinyal delta Dirac

Contoh dari sinyal kontinyu terlokalisir waktu adalah sinyal delta Dirac. Transform Fourier dari sinyal ini akan tersebar keseluruh rentang frekuensi, seperti yang diperlihatkan oleh Gambar 1. Karena delta Dirac adalah fungsi riil, maka haruslah transform Fouriernya bernilai kompleks. Gambar 1 sebelah kanan hanya menunjukkan nilai magnitude dari koefisien Fourier-nya untuk memperlihatkan sebaran komponen dominan dan terlihat disini bahwa semua komponen sama dominan-nya.

Fungsi delta dapat dilihat sebagai fungsi (distribusi) Gaussian dengan limit variansi mendekati nol. Kita akan memakai fungsi Gaussian ini untuk memperlihatkan (bukan membuktikan) bahwa implikasi tidak langsung dari WHUP adalah,

sinyal kontinyu yang tersebar dalam kawasan waktu, akan terlokalisir pada kawasan frekuensi dan begitu pula sebaliknya.

Pasangan Fourier dari fungsi Gaussian dengan mean nol dapat dituliskan sebagai berikut

g\left(t \right)=\frac{1}{\sigma \sqrt{2\pi }}{e}^{-\frac{t^2}{\left( \sigma\right)^2}}\leftrightarrow G\left(\omega \right)={e}^{-\frac{\omega ^2}{\left(1/\sigma\right)^2}}

Dari relasi diatas terlihat bahwa peningkatan variansi di kawasan waktu atau pelebaran sinyal Gaussian akan mengakibatkan penyempitan spektrum dikawasan frekuensi dan demikian pula sebaliknya, penyempitan sinyal di kawasan waktu akan melebarkan spektrum-nya. 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 fenomena ini.

%—————————————————–———-
% Script Matlab untuk memperlihatkan WHUP
%—————————————————————–
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);
legend(’sigma’,’0.5sigma’,’0.25sigma’)
figure(2);plot(w,G1,w,G2,w,G3);
legend(’sigma’,’0.5sigma’,’0.25sigma’)

%—————————————————–
% Fungsi Gaussian
%—————————————————–
function [g]= normal_baku(sigma,t)
g=(1/sqrt(2*pi*sigma*sigma))*exp(-t.*t/(sigma*sigma));

%————————————————————————–
% Transform Fourier dari fungsi Gaussian
%————————————————————————–
function [G]= F_normal_baku(sigma,w)

G=exp(-w.*w*(sigma*sigma));

Keluaran dari program Matlab diatas diperlihatkan pada Gambar 2 dan Gambar 3. Disini jelas terlihat penyempitan fungsi Gauss pada kawasan waktu akan mengakibatkan pelebaran pada kawasan frekuensi.


Gambar 2. Fungsi Gaussian dengan berbagai nilai variansi
Fourier Transform of Gaussian
Gambar 3. Transform Fourier dari fungsi Gaussian pada Gambar 2

Sebelum diskusi dilanjutkan, akan terlebih dahulu disinggung sekilas mengenai suatu teorema yang sangat penting dalam transformasi sinyal, yaitu Teorema Parseval. Teorema ini pada prinsipnya adalah Hukum Kekekalan Energi dari 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 bentuk sinyal semula terlalu banyak.

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).

  • Apakah WHUP juga berlaku untuk fungsi diskrit?
  • Apakah hubungan antara prinsip ketidakpastian, Teorema Parseval, dan kompresi data?
  • Selain transformasi Fourier, adakah transformasi lain yang punya sifat mirip?
  • Mengapa justru DCT dan bukannya DFT yang dipilih untuk kompresi JPEG?

Jawaban dan penjelasan lebih lanjut dari pertanyaan-pertanyaan diatas akan disajikan pada tulisan mendatang di blog ini.

Posted in Compressive Sensing, Image Processing, Theory and Concept, Uncertainty Principles and Signal Compression | 5 Comments »