FRSYNABS Reconstruction from magnitude of coefficients
Usage: f=frsynabs(F,s);
f=frsynabs(F,s,Ls);
[f,relres,iter,c]=frsynabs(...);
Input parameters:
F : Frame
s : Array of coefficients.
Ls : length of signal.
Output parameters:
f : Signal.
relres : Vector of residuals.
iter : Number of iterations done.
c : Coefficients with the reconstructed phase
FRSYNABS(F,s) attempts to find a signal which has s as the absolute
value of its frame coefficients :
s = abs(frana(F,f));
using an iterative method.
FRSYNABS(F,s,Ls) does as above but cuts or extends f to length Ls.
If the phase of the coefficients s is known, it is much better to use
frsyn.
[f,relres,iter]=FRSYNABS(...) additionally returns the residuals in a
vector relres and the number of iteration steps iter. The residuals
are computed as:
relres = norm(abs(cn)-s,'fro')/norm(s,'fro')
where c_n is the Gabor coefficients of the signal in iteration n.
[f,relres,iter,c]=FRSYNABS(...,'griflim'|'fgriflim') additionally returns
coefficients c with the reconstructed phase prior to the final reconstruction.
This is usefull for determining the consistency (energy lost in the nullspace
of F) of the reconstructed spectrogram. c will only be equal to frana(F,f)
if the spectrogram is already consistent (i.e. already in the range space of F*).
This is possible only for 'griflim' and 'fgriflim' methods.
Generally, if the absolute value of the frame coefficients has not been
modified, the iterative algorithm will converge slowly to the correct
result. If the coefficients have been modified, the algorithm is not
guaranteed to converge at all.
FRSYNABS takes the following parameters at the end of the line of input
arguments.
Initial phase guess:
'input' Choose the starting phase as the phase of the input
s. This is the default
'zero' Choose a starting phase of zero.
'rand' Choose a random starting phase.
The Griffin-Lim algorithm related parameters:
'griflim' Use the Griffin-Lim iterative method. This is the
default.
'fgriflim' Use the Fast Griffin-Lim iterative method.
'Fd',Fd A canonical dual frame object or an anonymous function
acting as the synthesis operator of the canonical dual frame.
If not provided, the function attempts to create one using
Fd=framedual(F).
'alpha',a Parameter of the Fast Griffin-Lim algorithm. It is
ignored if not used together with 'fgriflim' flag.
The BFGS method related paramaters:
'bfgs' Use the limited-memory Broyden Fletcher Goldfarb
Shanno (BFGS) method.
'p',p Parameter for the compressed version of the obj. function
in the l-BFGS method. It is ignored if not used together
with 'bfgs' flag.
Other:
'tol',t Stop if relative residual error is less than the
specified tolerance.
'maxit',n Do at most n iterations.
'print' Display the progress.
'quiet' Don't print anything, this is the default.
'printstep',p If 'print' is specified, then print every p'th
iteration. Default value is p=10;
The BFGS method makes use of the minFunc software. To use the BFGS method,
please install the minFunc software from:
http://www.cs.ubc.ca/~schmidtm/Software/minFunc.html.
References:
D. Griffin and J. Lim. Signal estimation from modified short-time
Fourier transform. IEEE Trans. Acoust. Speech Signal Process.,
32(2):236--243, 1984.
N. Perraudin, P. Balazs, and P. L. Soendergaard. A fast Griffin-Lim
algorithm. In Applications of Signal Processing to Audio and Acoustics
(WASPAA), 2013 IEEE Workshop on, pages 1--4, Oct 2013.
R. Decorsiere, P. Soendergaard, E. MacDonald, and T. Dau. Inversion of
auditory spectrograms, traditional spectrograms, and other envelope
representations. Audio, Speech, and Language Processing, IEEE/ACM
Transactions on, 23(1):46--56, Jan 2015.
Url: http://ltfat.github.io/doc/frames/frsynabs.html
See also: frana, frsyn, demo_frsynabs, demo_phaseret.
Package: ltfat