The Large Time-Frequency Analysis Toolbox

- All your frame are belong to us -

View the code

Go to function

ISGRAMREAL - Spectrogram inversion (real signal)

Usage

f=isgramreal(s,g,a,M);
f=isgramreal(s,g,a,M,Ls);
[f,relres,iter]=isgramreal(...);

Input parameters

c Array of coefficients.
g Window function.
a Length of time shift.
M Number of channels.
Ls length of signal.

Output parameters

f Signal.
relres Vector of residuals.
iter Number of iterations done.

Description

isgramreal(s,g,a,M) attempts to invert a spectrogram computed by

s = abs(dgtreal(f,g,a,M)).^2;

by an iterative method.

isgramreal(s,g,a,M,Ls) does as above but cuts or extends f to length Ls.

If the phase of the spectrogram is known, it is much better to use dgtreal

f,relres,iter]=isgramreal(...) additionally returns the residuals in a vector relres and the number of iteration steps done.

Generally, if the spectrogram has not been modified, the iterative algorithm will converge slowly to the correct result. If the spectrogram has been modified, the algorithm is not guaranteed to converge at all.

isgramreal takes the following parameters at the end of the line of input arguments:

'lt',lt Specify the lattice type. See the help on matrix2latticetype. Only the rectangular or quinqux lattices can be specified.
'zero' Choose a starting phase of zero. This is the default
'rand' Choose a random starting phase.
'int' Construct a starting phase by integration. Only works for Gaussian windows.
'griflim' Use the Griffin-Lim iterative method, this is the default.
'bfgs' Use the limited-memory Broyden Fletcher Goldfarb Shanno (BFGS) method.
'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:

R. Decorsière and P. L. Søndergaard. Modulation filtering using an optimization approach to spectrogram reconstruction. In Proceedings of the Forum Acousticum, 2011.

D. Griffin and J. Lim. Signal estimation from modified short-time Fourier transform. IEEE Trans. Acoust. Speech Signal Process., 32(2):236--243, 1984.

D. Liu and J. Nocedal. On the limited memory BFGS method for large scale optimization. Mathematical programming, 45(1):503--528, 1989.