Compresive sensing merupakan topik pembahasan yang dikenal dari pengolahan sinyal digital (digital image processing), dengan tumbuh cepatnya data, maka dibutuhkan sebuah teknik kompresi yang lebih baik. Ide dasar dari CS yaitu mengenai perkalian sebuah matrix secara linear.
adalah sinyal
adalah nilai random, dan
disebut hasil compresi dengan persamaan berikut
Untuk mendapatkan nilai kembali, maka cukup
dengan syarat .
Kalian bisa bayangkan, jika mempunyai ukuran , maka bisa direduksi menjadi .
Tapi apa yang terjadi jika bukanlah square matrix? sehingga akan sulit dicari nilai atau dilambangkan dengan , maka yang kalian butuhkan adalah function Moore-Penrose pseudoinverse yaitu
- Python : https://numpy.org/doc/stable/reference/generated/numpy.linalg.pinv.html
- matlab: https://www.mathworks.com/help/matlab/ref/pinv.html
Compres
Agar lebih paham, kalian bisa lihat berikut yaitu sinyal mempunyai panjang 28 akan di kompres menjadi saja
x = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Compress y = 210.6920 150.4647 184.0508 209.3858 197.0023 206.7937 194.0519 186.5565 205.4035 226.7545 199.3873 230.8093 228.5523 181.2891 230.2884 202.0982 >>
Lebih jelasnya lihat kode berikut
clc;clear all;close all; A = 1:28; x = A(:) %dibuat vector dengan ukuran (n,1) n = length(x); m = 16; %misalkan m = 16 Phi = rand(m,n); %generate random disp('Compress'); y = Phi*x %hasil compress
Melalui kode diatas didapatkan bahwa
Sehingga untuk mencari nilai cukup dengan persamaan
Tapi apa yang terjadi ketika proses rekonstruksi diatas dijalankan?
x_hat = pinv(Phi)*y
Hasilnya tidak seperti yang diharapkan! Ternyata tidak sama dengan padahal sudah dilakukan invers matrix!
atau kalian bisa lakukan cek perkalian berikut
kode dalam matlab yaitu
pinv(phi)*phi
eye adalah matrix identitas, jadi hasil dari sudah betul!
L1 Norm Minimisasi
Kalian butuh yang namanya L1 yang bisa kalian pelajari melalui referensi
- https://www.scirp.org/(S(lz5mqp453edsnp55rrgjct55))/journal/paperinformation.aspx?paperid=56972 dengan judul “Compressive Sensing Algorithms for Signal Processing Applications: A Survey”
- Theory of compressive sensing via ‘L1-minimization a non-rip analysis and extensions oleh yin zhang
Kalian bisa melihat A dengan ukuran 7 x 5 dapat dicompres menjadi y ukuran 4 x 4 saja dengan hasil extract mempunyai perbedaan sebesar 0.6054
A = 1 8 15 22 2 9 16 23 3 10 17 24 4 11 18 25 5 12 19 26 6 13 20 27 7 14 21 28 Compress y = 223.1871 241.8109 217.7096 198.4034 196.6528 178.9742 189.6390 152.6269 224.3557 229.8989 179.9579 176.0807 179.6694 165.2379 211.5647 262.8088 Extract xp = 1.2857 8.0390 14.9550 21.7828 2.0381 8.7984 15.9168 22.9610 3.0816 9.9890 17.0175 24.0220 4.0081 10.9803 17.9020 25.0883 4.9590 12.1692 19.1690 26.1044 5.9426 13.0946 19.9268 27.0004 6.9885 14.0698 20.8066 27.8311 difference = 0.6054 keterangan dimensi __________ _______ 'A' 28 'Compress' 16 'Extract' 28 >>
Contoh berikut hasil saya run menggunakan sinyal sinus yang terdiri dari sampling 2.500 dapat diperkecil menjadi 100 saja, kemudian di extract kembali menjadi 2.500 dengan nilai perbedaan hanya 1.5 saja
Penulis juga mencoba untuk menggunakan image dengan ukuran 100 x 100
tantangan terbesar yaitu terletak pada proses extract yang membutuhkan waktu yang cukup lama