Function: idgtreal
IDGTREAL  Inverse discrete Gabor transform for real-valued signals
  Usage:  f=idgtreal(c,g,a,M);
          f=idgtreal(c,g,a,M,Ls);

  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.

  IDGTREAL(c,g,a,M) computes the Gabor expansion of the input coefficients
  c with respect to the real-valued window g, time shift a and number of
  channels M. c is assumed to be the positive frequencies of the Gabor
  expansion of a real-valued signal.

  It must hold that size(c,1)==floor(M/2)+1. Note that since the
  correct number of channels cannot be deduced from the input, IDGTREAL
  takes an additional parameter as opposed to IDGT.

  The window g may be a vector of numerical values, a text string or a
  cell array. See the help of GABWIN for more details.
 
  IDGTREAL(c,g,a,M,Ls) does as above but cuts or extends f to length Ls.

  [f,g]=IDGTREAL(...) additionally outputs the window used in the
  transform. This is usefull if the window was generated from a description
  in a string or cell array.

  For perfect reconstruction, the window used must be a dual window of the
  one used to generate the coefficients.

  If g is a row vector, then the output will also be a row vector. If c is
  3-dimensional, then IDGTREAL will return a matrix consisting of one column
  vector for each of the TF-planes in c.

  See the help on IDGT for the precise definition of the inverse Gabor
  transform.

  IDGTREAL takes the following flags at the end of the line of input
  arguments:

    'freqinv'  Use a frequency-invariant phase. This is the default
               convention described in the help for DGT.

    'timeinv'  Use a time-invariant phase. This convention is typically 
               used in filter bank algorithms.

  Examples:
  ---------

  The following example demostrates the basic pricinples for getting
  perfect reconstruction (short version):

    f=greasy;            % test signal
    a=32;                % time shift
    M=64;                % frequency shift
    gs={'blackman',128}; % synthesis window
    ga={'dual',gs};      %  analysis window

    [c,Ls]=dgtreal(f,ga,a,M); % analysis

    % ... do interesting stuff to c at this point ...
 
    r=idgtreal(c,gs,a,M,Ls); % synthesis

    norm(f-r)                % test

  The following example does the same as the previous one, with an
  explicit construction of the analysis and synthesis windows:

    f=greasy;     % test signal
    a=32;         % time shift
    M=64;         % frequency shift
    Ls=length(f); % signal length

    % Length of transform to do
    L=dgtlength(Ls,a,M);

    % Analysis and synthesis window
    gs=firwin('blackman',128);
    ga=gabdual(gs,a,M,L);

    c=dgtreal(f,ga,a,M);  % analysis

    % ... do interesting stuff to c at this point ...
 
    r=idgtreal(c,gs,a,M,Ls); % synthesis

    norm(f-r)       % test

Url: http://ltfat.github.io/doc/gabor/idgtreal.html

See also: idgt, gabwin, gabdual, dwilt.

Package: ltfat