No BSD License  

Highlights from
Adaptive Optimal Kernel

5.0

5.0 | 1 rating Rate this file 25 Downloads (last 30 days) File Size: 109 KB File ID: #13869

Adaptive Optimal Kernel

by

 

05 Feb 2007 (Updated )

An Adaptive Optimal-Kernel Time-Frequency Representation

| Watch this File

File Information
Description

A time-frequency representation which uses a signal-dependent, radially Gaussian kernel that adapts over time. The code provides an excellent ambiguity domain filter for time-frequency analysis.

Just run the script main_AOK.m to see it in action. The test signal includes three impulses, two simultaneous sinusoids, a Gaussian pulse, and two parallel linear chirps.

The algorithms are described in detail in the paper:
"An Adaptive Optimal-Kernel Time-Frequency Representation" by D. L. Jones and R. G. Baraniuk, IEEE Transactions on Signal Processing, Vol. 43, No. 10, pp. 2361--2371, October 1995.

Special thanks to Richard Baraniuk for making the original C code available.

MATLAB release MATLAB 7.0.4 (R14SP2)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (1)
20 Nov 2007 Dave Campbell

This software works well and can handle large signals but could use some improved documentation. However if you are very familiar with the Jones and Baraniuk paper you can piece together what it is doing and especially the form of the output matrix. I am a fan of the AOK-TFR method for adaptive time-frequency estimation.

There seems to a minor glitches in the figure produced in main_AOK.m:
The plot it produces is inverted so that the positive frequency components are shown as negative frequencies and vice versa. Also the final plot is not trimmed so that the time axis does not correspond to the time interval of the original signal and the time units on this final plot are in observation points not seconds (or other original time units of the signal)

Consequently the time axis is of questionable value, however this is easily fixed by using something like on the output matrix ofp:

contour(1/samp_freq:1/samp_freq:(length(real(sig_in_tmp)))/samp_freq,...
f_axis,...
(abs(ofp((nraf/2+1):(length(real(sig_in_tmp))+nraf/2),:)')));
xlabel('Time');
ylabel('Frequency (Hz)');

Updates
16 Feb 2007

There was an error in one of the lines in main_AOK.m

Contact us