200 likes | 408 Views
Progress Report. Compressive Sensing dan Estimasi Arah kedatangan Sinyal. Basis Pursuit dan CVX Programming. Kamis , 10 April 2014. Koredianto Usman NIM : 33213002. Algoritma Compressive Sensing. Asumsi :. X sinyal sparse. Y compressed sensing dari X. Y = A.X. Rekonstruksi :.
E N D
Progress Report Compressive Sensing danEstimasiArahkedatanganSinyal Basis Pursuit dan CVX Programming Kamis, 10 April 2014 KorediantoUsman NIM : 33213002
Algoritma Compressive Sensing Asumsi : X sinyalsparse Y compressed sensing dari X Y = A.X Rekonstruksi: Mencari|x|1 minimum sehinggaA.X = Y
Ilustrasi Kemudiandigeneralisirmenjadi n variabel Untukkemudahansketsa, diambilkondisi 2 dan 3 variabel Misalkan x = [0 5]T A = [0,8 0,6 ] Maka Y = A X = 0x0,8 + 5x0,6 = 3 Diberikan: Y = [3] Dan A = [0,8 0.6] Rekonstruksi: Tentukan |X|1 minimal sehingga AX = Y
Ilustrasi | 2 Variabel Kemudiandigeneralisirmenjadi n variabel A = [0,6 0,8 ] Misalkan x = [0 5]T Maka Y = A X = 0x0,6 + 5x0,8 = 4 Rekonstruksi: Diberikan: Y = [4] Dan A = [0,6 0.8] Tentukan |X|1 minimal sehingga AX = Y Linear Programming : Misalkan X = [x1 x2]T Maka: AX = 0,6x1 + 0,8x2 = 3
Ilustrasi | 2 Variabel Tanpaconstraint, makaterdapatbanyaksolusidari 0,6x1 + 0,8x2 = 4 Solusidaripersamaan linier
Ilustrasi | 2 Variabel Dengan constraint Norm l1, makahanyaadasatusolusi: SOLUSI: X = [0 5] X semula = [0 5] 0,6x1 + 0,8x2 = 4 |x|1 = 5 |x|1 = 6 |x|1 = 2
Ilustrasi | 2 Variabel Refleksi: Seandainyadigunakan norm l2: SOLUSI: X = [2.39 3.19] 0,6x1 + 0,8x2 = 4 X semula = [0 5] |x|2 = 3,98 |x|2 = 2
Ilustrasi | 2 Variabel Refleksi: Seandainyadigunakan norm l2: Dengan Pseudo Inverse : 0,6x1 + 0,8x2 = 4 SOLUSI: X = [2.39 3.19] Diberikan: Y = [4] Dan A = [0,6 0.8] X semula = [0 5] A+ = [0.8 0.6]T Sehingga X = A+y = [2.4 3.2] Kesimpulan : Menyelesaikan LP denganminimisasi Norm L2samadenganteknik Pseudo Inverse |x|2 = 3,98 |x|2 = 2
Ilustrasi | 2 Variabel Refleksi: Seandainyamatriks CS nyaterbalik A = [0,6 0,8 ] (semula) Misalkan x = [0 5]T A = [0,8 0,6 ] (menjadi) Maka Y = A X = 0x0,8 + 5x0,6 = 3 Diberikan: Y = [3] Dan A = [0,8 0.6] Rekonstruksi: Maka: AX = 0,8x1 + 0,6x2 = 3
Ilustrasi | 3 Variabel A = [ 0.3 0,6 0,4 0.1 0.8 0.3] Misalkanx = [0 5 1]T Y = A.X = [3.4 4.3]T Y = A.X = [3.4 4.3]T Rekonstruksi : A = [ 0.3 0,6 0,4 0.1 0.8 0.3] Cari X : dengan norm l1 minimal sehingga : AX = y
Ilustrasi | 3 Variabel A = [ 0.3 0,6 0,4 0.1 0.9 0.3] Y = A.X = [3.4 4.3]T Jika X = [X1 X2 X3] Maka AX=y menghasilkan 2 persamaan: 0.3X1 + 0.6X2 + 0.4 X3 = 3.4 …. (f1) 0.1X1 + 0.8X2 + 0.3 X3 = 4.3 …. (f2) Dengankonstrain : |X1| + |X2| + |X3|minimal
Ilustrasi | 3 Variabel Lagrange Multiplier: Menjadi: 0.3X1 + 0.6X2 + 0.4 X3 – 3.4 = 0 (0.3X1 + 0.6X2 + 0.4 X3 – 3.4) + (0.1X1 + 0.8X2 + 0.3 X3 – 4.3)= 0 0.1X1 + 0.8X2 + 0.3 X3 – 4.3 = 0 Dengankonstrain : |X1| + |X2| + |X3|minimal C 14.3 Q C 8.5 B Q P A 5.3 B 5.6 P A 11.3 43
Ilustrasi | 3 Variabel Interior Point Algorithm (0.3X1 + 0.6X2 + 0.4 X3 – 3.4) + (0.1X1 + 0.8X2 + 0.3 X3 – 4.3)= 0 Dengankonstrain : |X1| + |X2| + |X3|minimal Z2 C Q C Q P Z”1 B B A Z’1 P Z1 A ContohAlgoritma: Primal-Dual APBQCA : BidangConvex Z1 : Interior point Z2 : Exterior point
Convex Optimization CVX - Matlab CVX adalahekstensi MEX padaMatlabuntukmenyelesaikanMasalah Convex Optimization Dikembangkanoleh Stephen Boyd (Stanford Univ.)
CVX - Matlab INSTALASI:
CVX – Matlab – RECOVERY REAL %Contoh CS danrecoverynyadengan CVX %Optimization n = 512; %Panjangsampelasal k = 15; %sparsity m = 5 * k; %jumlahsampel yang dikumpulkan %Bangkitkansinyal x x = genSparse(n,k); %Bangkitkanmatrikspengukuran A = genA(n,m); %Hitungsinyalhasilpengukuran y y = A*x; %Rekonstruksidengan CVX cvx_begin variable xbaru(n); minimize (norm(xbaru ,1)) subject to A* xbaru == y; cvx_end function x = genSparse(n,k) temp = randperm(n); x = zeros(n,1); x(temp(1:k))=randn(k,1); function A = genA(n,m) A = randn(m,n)/sqrt(m); randn(k,1); Blok CVX
CVX - Matlab Blok CVX
CVX – Matlab – RECOVERY REAL %Contoh CS danrecoverynyadengan CVX %Optimization n = 512; %Panjangsampelasal k = 15; %sparsity m = 5 * k; %jumlahsampel yang dikumpulkan %Bangkitkansinyal x x = genSparse(n,k); %Bangkitkanmatrikspengukuran A = genA(n,m); %Hitungsinyalhasilpengukuran y y = A*x; %Rekonstruksidengan CVX cvx_begin variable xbaru(n) complex; minimize (norm(xbaru ,1)) subject to A* xbaru == y; cvx_end function x = genSparse(n,k) temp = randperm(n); x = zeros(n,1); x(temp(1:k))=randn(k,1) + j*randn(k,1); function A = genA(n,m) A = randn(m,n)/sqrt(m); randn(k,1); Blok CVX