Function: pgauss
PGAUSS  Sampled, periodized Gaussian
  Usage: g=pgauss(L);
         g=pgauss(L,tfr);
         g=pgauss(L,...);
         [g,tfr]=pgauss( ... );

  Input parameters:
        L    : Length of vector.
        tfr  : ratio between time and frequency support.

  Output parameters:
        g    : The periodized Gaussian.

  PGAUSS(L,tfr) computes samples of a periodized Gaussian. The function
  returns a regular sampling of the periodization of the function
  exp(-pi*(x.^2/tfr)).

  The l^2 norm of the returned Gaussian is equal to 1.

  The parameter tfr determines the ratio between the effective support
  of g and the effective support of the DFT of g. If tfr>1 then g*
  has a wider support than the DFT of g.

  PGAUSS(L) does the same setting tfr=1.

  [g,tfr] = PGAUSS( ... ) will additionally return the time-to-frequency
  support ratio. This is useful if you did not specify it (i.e. used the
  'width' or 'bw' flag).

  The function is whole-point even. This implies that fft(PGAUSS(L,tfr))
  is real for any L and tfr. The DFT of g is equal to
  PGAUSS(L,1/tfr).

  In addition to the 'width' flag, PGAUSS understands the following
  flags at the end of the list of input parameters:

    'fs',fs     Use a sampling rate of fs Hz as unit for specifying the
                width, bandwidth, centre frequency and delay of the
                Gaussian. Default is fs=[] which indicates to measure
                everything in samples.

    'width',s   Set the width of the Gaussian such that it has an
                effective support of s samples. This means that
                approx. 96% of the energy or 79% of the area
                under the graph is contained within s samples. 
                This corresponds to -6dB or to width at the
                half of the height. 
                This is equivalent to calling PGAUSS(L,pi*s^2/4L*log(2)).

    'atheight',ah  Used only in conjuction with 'width'. Forces the 
                   Gaussian to width s at the ah fraction of the
                   height.

    'bw',bw     As for the 'width' argument, but specifies the width
                in the frequency domain. The bandwidth is measured in 
                normalized frequencies, unless the 'fs' value is given.

    'cf',cf     Set the centre frequency of the Gaussian to fc.  

    'wp'        Output is whole point even. This is the default.

    'hp'        Output is half point even, as most Matlab filter
                routines.

    'delay',d   Delay the output by d. Default is zero delay.

  In addition to these parameteres, PGAUSS accepts any of the flags
  from NORMALIZE. The output will be normalized as specified.

  If this function is used to generate a window for a Gabor frame, then
  the window giving the smallest frame bound ratio is generated by
  PGAUSS(L,a*M/L).

  Examples:
  ---------

  This example creates a Gaussian function, and demonstrates that it is
  its own Discrete Fourier Transform:

    g=pgauss(128);

    % Test of DFT invariance: Should be close to zero.
    norm(g-dft(g))

  The next plot shows the Gaussian in the time domain:

    plot(fftshift(pgauss(128)));

  The next plot shows the Gaussian in the frequency domain on a log scale:

    magresp(pgauss(128),'dynrange',100);
    
  The next plot shows the Gaussian in the time-frequency plane:

    sgram(pgauss(128),'tc','nf','lin');



  References:
    S. Mallat and Z. Zhang. Matching pursuits with time-frequency
    dictionaries. IEEE Trans. Signal Process., 41(12):3397--3415, 1993.
    
    

Url: http://ltfat.github.io/doc/fourier/pgauss.html

See also: dgtlength, psech, firwin, pbspline, normalize, demo_pgauss.

Package: ltfat