MULTIDGTREALMP Matching Pursuit Decomposition with Multi-Gabor Dictionary Usage: c = multidgtrealmp(f,dicts) c = multidgtrealmp(f,dicts,errdb,maxit) [c,frec,info] = multidgtrealmp(...) Input parameters: f : Input signal dicts : Dictionaries. Format {g1,a1,M1,g2,a2,M2,...} 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 MULTIDGTREALMP(f,{g1,a1,M1,g2,a2,M2,...,gW,aW,MW}) returns sparse representation of a signal in W Gabor dictionaries using the fast matching pursuit algorithm. gw is a Gabor window defined as in DGT and DGTREAL, aw is a hop factor, Mw is the number of frequency channels. All aw and Mw must be divisible by min(a1,...,aW). The algorithm will try to reach -40 dB relative approximation error in at most numel(f) iterations. The function returns a cell-array with elements storing coefficients for individual Gabor systems such that they can be directly used in IDGTREAL. MULTIDGTREALMP(f,dicts,errdb,maxit) tries to reach normalized approximation error errdb dB in at most maxit iterations. [c,frec,info] = MULTIDGTREALMP(...) in addition returns the aproximation frec and a struct info with the following fields: .iter Number of iterations done. .atoms Number of atoms selected. .relres Final approximation error. .g Cell array of numeric windows used in the multi-dictionary .a Array of hop factors for indivitual dictionaries .M Array of numbers of channels for individual dictionaries .synthetize Anonymous function which can be used to synthetize from the (modified) coefficients as frec = sum(info.synthetize(c),dim) where dim=2 if the input f was a column vector and dim=1 if it was a row vector. The normalized approximation error is computed as err=norm(f-frec)/norm(f). The function takes the following optional parameters at the end of the line of input arguments: 'kenrnthr',kt Kernel threshold. Must be in range ]0,1]. Default is 1e-4. 'timeinv' Use the time invariant phase convention. The default is 'freqinv'. 'pedanticsearch' Be pedantic about the energy of pairs of conjugated atoms in the selection step. Disbaled by default. 'algorithm',alg Algorithm to use. Available: 'mp'(default),'selfprojmp','cyclicmp' The computational routine is only available in C. Use LTFATMEX to to compile it. Algorithms ---------- By default, the function uses the fast MP using approximate update in the coefficient domain as described in: "Z. Prusa, Fast Matching Pursuit with Multi-Gabor Dictionaries" The kernel threshold limits the minimum approximation error which can be reached. For example the default threshold 1e-4 in general allows achieving at least -40 dB. Examples -------- The following example shows the decomposition in 3 dictionaries and plots contributions from the individual dictionaries and the residual.: [f,fs] = gspi; [c, frec, info] = multidgtrealmp(f,... {'blackman',128,512,'blackman',512,2048,'blackman',2048,8192}); frecd = info.synthetize(c); figure(1); xvals = (0:numel(f)-1)/fs; subplot(4,1,1); plot(xvals,frecd(:,1));ylim([-0.5,0.5]); subplot(4,1,2); plot(xvals,frecd(:,2));ylim([-0.5,0.5]); subplot(4,1,3); plot(xvals,frecd(:,3));ylim([-0.5,0.5]); subplot(4,1,4); plot(xvals,f-frec);ylim([-0.5,0.5]); xlabel('Time (s)'); References: S. Mallat and Z. Zhang. Matching pursuits with time-frequency dictionaries. IEEE Trans. Signal Process., 41(12):3397--3415, 1993. Z. Průša. Fast matching pursuit with multi-gabor dictionaries. Submitted., 2018.
Url: http://ltfat.github.io/doc/gabor/multidgtrealmp.html
See also: dgtreal, idgtreal.
Package: ltfat