FRANAMP Frame Analysis by Matching Pursuit Usage: c = franamp(F,f) c = franamp(F,f,errdb,maxit) [c,frec,info] = franamp(...) Input parameters: F : Frame definition f : Input signal errdb : Target normalized approximation error in dB maxit : Maximum number of iterations. Output parameters: c : Sparse representation frec : Reconstructed signal info : Struct with additional output paramerets FRANAMP(F,f) returns sparse representation of a signal in a dictionary given by vectors of frame F using the orthogonal matching pursuit algorithm. FRANAMP(F,f,errdb,maxit) tries to reach normalized approximation error errdb dB in at most maxit iterations. [c,frec,info] = FRANAMP(...) in addition returns the aproximated signal frec and a struct info with the following fields: .iter Number of iterations done. .relres Vector of length .iter with approximation error progress. The normalized approximation error is computed as err=norm(f-frec)/norm(f). The relationship between the output coefficients and the approximation is frec = frsyn(F,c). The function takes the following optional parameters at the end of the line of input arguments: 'print' Display the progress. 'printstep',p If 'print' is specified, then print every p'th iteration. Default value is 10; Algorithms ---------- The implementation of OMP was taken from the sparsify_0.5 toolbox by Thomas Blumensath http://www.personal.soton.ac.uk/tb1m08/sparsify/sparsify.html See help of greed_omp. In fact, the sparsify toolbox implements several flavors of OMP implementation. They can be chosen using the following flags: 'auto' Selects a suitable OMP algorithm according to the size of the problem. 'qr' QR based method 'chol' Cholesky based method 'cg' Conjugate Gradient Pursuit Additionally: 'mp' Classical (non-orthogonal) matching pursuit. Examples -------- The following example show the development of the approx. error for the MP and OMP algorithms. : [f,fs] = greasy; F = frame('dgt','hann',256,1024); maxit = 4000; [c1,~,info1] = franamp(F,f,'omp','cg','maxit',maxit); [c2,~,info2] = franamp(F,f,'mp','maxit',maxit); plot(20*log10([info1.relres,info2.relres])); legend({'OMP','MP'}); References: S. Mallat and Z. Zhang. Matching pursuits with time-frequency dictionaries. IEEE Trans. Signal Process., 41(12):3397--3415, 1993. Y. C. Pati, R. Rezaiifar, and P. S. Krishnaprasad. Orthogonal matching pursuit: Recursive function approximation with applications to wavelet decomposition. In Proc. 27th Asilomar Conference on Signals, Systems and Computers, pages 40--44 vol.1, Nov 1993. T. Blumensath and M. E. Davies. Gradient pursuits. IEEE Tran. Signal Processing, 56(6):2370--2382, 2008.
Url: http://ltfat.github.io/doc/frames/franamp.html
See also: frame, frsyn, framevectornorms.
Package: ltfat