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 s’a(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.

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:

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.


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.

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.


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

Sebaran Energi Sinyal di Kawasan DCT

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.