This is a follow-up to this entry that required the installation of Sedumi. Since many people find it inconvenient to do so, I decided to have a simpler configuration with only two matlab/octave files: run_me.m and SL0.m. Just install the files in your working directory. Run the run_me.m file and check the difference in reconstruction between the \ operator, the pinv operator and the SL0 solver used in compressive sensing (many more solvers can be found here). Here we have an underdetermined system of 10 linear equations and 50 variables embodied by a matrix A (gaussian). The sparsity of the signal being sought is 2, i.e. this vector has 50-2 = 48 zeros in it.
We solve for x in y = Ax and expect to recover x with only two components and 48 zeros..
This is what we get with x = A\y
Not good.
This is what we get with x = pinv(A) y
Not good either.
This is what we get with x = SL0(A,y,...)
Am I hearing a WOW yet ?
Liked this entry ? subscribe to Nuit Blanche's feed, there's more where that came from. You can also subscribe to Nuit Blanche by Email, explore the Big Picture in Compressive Sensing or the Matrix Factorization Jungle and join the conversations on compressive sensing, advanced matrix factorization and calibration issues on Linkedin.
Never mind the plots are correct I was doing many holds! Sorry for that! ><
ReplyDeleteI ran your code, but could not get the Figure 3 as you showed. The solution of SL0 operation is not 2-sparse.
ReplyDeleteHave you tried several times ?
ReplyDeleteso it works after 3 times?
ReplyDeleteSo it works after 3 times?
ReplyDelete