%    RGK.m                  Version 1.0                   4 February 1995

%    The following information is included in the Matlab function rgk.m :



%----------------------------------------------------------------------------%
% SIGNAL-DEPENDENT TIME-FREQUENCY ANALYSIS USING A RADIAL GAUSSIAN KERNEL    %
%----------------------------------------------------------------------------%
%
% This Matlab function implements the ``Optimal Radially Gaussian Kernel
% Time-Frequency Representation.''  For details, please consult either
% the paper
%
%    R. G. Baraniuk and D. L. Jones, ``Signal-Dependent Time-Frequency
%    Analysis Using a Radially Gaussian Kernel,'' Signal Processing,
%    Vol. 32, No. 3, pp. 263-284, June 1993.
%
% or the thesis
%
%    R. G. Baraniuk, ``Shear Madness: Signal-Dependent and Metaplectic
%    Time-Frequency Representations,'' Ph.D. Thesis, Department of
%    Electrical and Computer Engineering, University of Illinois at
%    Urbana-Champaign, August 1992.  Also Coordinated Science Laboratory
%    Technical Report No. UILU-ENG-92-2226, 1992.  See Chapter 6 and
%    Appendices B and G.
%
% Equation numbers in the comments below refer to the paper unless
% otherwise noted.  We have tried to keep as close as possible to the
% notation of these documents.
%
%
% FLOW OF THE ALGORITHM:
%
% Step 1:   Compute the rectangularly sampled ambiguity function (AF)
%           of the signal
%
%           *** Uses the separate function AMBNB ***
%                (included in this distribution)
%
% Step 2:   Interpolate the AF to polar coordinates
%
% Step 3:   Solve for the optimal kernel spread vector using the
%           so-called "step-project" algorithm [Eqs. (40)-(42)]
%
% Step 4:   Compute the optimal kernel in polar coordinates
%
% Step 5:   Interpolate the optimal kernel to rectangular coordinates
%
% Step 6:   Inverse FFT the optimal-kernel x AF product to get the
%           optimal time-frequency representation
%
%
% QUESTIONS?  COMMENTS?  Drop us a line:
%
%             Paulo Goncalves    gpaulo@rice.edu
%             Richard Baraniuk   richb@rice.edu
%                                http://www.dsp.rice.edu
%
%----------------------------------------------------------------------------%



% Help information available in Matlab:


%RGK  Optimal radially Gaussian kernel time-frequency representation
%
%  Useage:    [tfr,Phi,sigma,its] = rgk(s,alpha)
%
%  Input:   - s     : column or row vector containing the signal to be
%                     analyzed
%           - alpha : normalized volume of the optimal kernel
%                     reasonable values:  1 < alpha < 5
%                     alpha = 1 => optimal kernel has same volume as a
%                     spectrogram kernel
%
%  Output:  - tfr   : optimal radially Gaussian time-frequency representation
%           - Phi   : optimal radially Gaussian kernel
%           - sigma : spread function parametrized by the radial angle in the
%                     ambiguity domain
%           - its   : number of iterations of the step-projection algorithm
%                     to converge to a (local) maximum
%
%  Example:   Two parallel linear chirps
%             t = (0:127);
%             s1 = hamming(128)' .* cos(0.2*t + 0.008*t.^2);
%             s2 = hamming(128)' .* cos(0.6*t + 0.008*t.^2);
%             s = s1 + s2;
%             tfr = rgk(s,2);
%             contour(tfr); xlabel('time'); ylabel('frequency')
%
%  See also:  AMBNB



%  Copyright information:


%----------------------------------------------------------------------------%
%File Name: rgk.m
%Last Modification Date: 1/26/96        18:30:22
%Current Version: rgk.m 1.2
%File Creation Date: Sun Jan 21 16:36:09 1996
%Author: Paulo Goncalves  
%Extra Verbiage: Richard Baraniuk 
%
%Copyright: All software, documentation, and related files in this distribution
%           are Copyright (c) 1996 Rice University
%
%Permission is granted for use and non-profit distribution providing that this
%notice be clearly maintained. The right to distribute any portion for profit
%or as part of any commercial product is specifically reserved for the author.
%
%Change History:
%
%----------------------------------------------------------------------------%