% 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:
%
%----------------------------------------------------------------------------%