Update (Jan. 2022): The latest version of the manuscript is available here: https://asp-eurasipjournals.springeropen.com/articles/10.1186/s13634-021-00722-w .
Update (Nov. 2020): We revised the original MoRAM algorithm. While the arXiv version of our manuscript still contains the older version, this repository is updated to the latest version of our code and set of experiments.
This repository provides matlab implementation for the MoRAM algorithm as discussed in Signal Reconstruction from Modulo Observations.
- The code uses SPGL (SPGL1: A solver for large-scale sparse reconstruction). All the required matlab files are included in the repo (under folder
spgl1-1.9
), however, in case if you experience difficulties using SPGL, kindly install SPGL package on your system using the instructions provided on their website. - Code is developed and tested with Matlab version 2017a.
- A sample test image of lovett hall (as used in the paper) is provided in the
test_images
folder. Test iamge is loaded, cropped to appropriate size, and transformed using Haar wavelets within the code.
- Add all folders and sub-folders to matlab path. Run all the scripts from the root directory.
- The mean-reconstruction-error plots as provided in the paper can be reproduced by running the file
mod_reconst.m
. - The image reconstruction results as provided in the paper can be reproduced by running the file
img_mod_reconst.m
. - Results would be stored in the
./results
directory. - Following parameters can be tuned in both of the above matlab files:
pr.n
=> Length of the input signalpr.b
=> Number of sparse blocks. Needs to be kept at 1. Other values are not supported.pr.max_iter
=> Total number of iterations for Alternating Minimizationpr.R
=> Period of the modulo functionpr.rho
=> Spread of the true measurements, y =A*zpr.mspan
=> List of different values of number of measurements (m) to be considered.pr.s_span
=> List of different sparsity values to be considered.pr.method
=> Compressed Recovery method to be used. Usejustice-pursuit
to reproduce the results from the paper.pr.init_method
=> Initial estimation method to be used. Usesimple_rcm
to reproduce the results from the paper. Other methods are experimental, and not to be considered.
Kindly contact Viraj Shah (vjshah3@illinois.edu) in case any help is needed.
Parts of this code is adopted from codes written by Gauri Jagatap. We also acknowledge the developers of SPGL library.
Following bibtex can be used to cite our manuscript:
@article{shah2021sparse,
title={Sparse signal recovery from modulo observations},
author={Shah, Viraj and Hegde, Chinmay},
journal={EURASIP Journal on Advances in Signal Processing},
volume={2021},
number={1},
pages={1--17},
year={2021},
publisher={SpringerOpen}
}