THE AMBIGUITY DIAGRAM  

 

AMBIGUITY.M

 

waveform1     waveform2     waveform3

 

function ambiguity(pts, wfm, parm3)

  % Plots ambiguity diagram, frequency content, zero doppler cut, and

  %  zero range cut

 

% Function called with zero inputs

 

if nargin < 1

    pts = 2000;

end

 

% Function called with zero or one inputs

 

if nargin < 2

    wfm = 2;

end

 

% Function called with zero, one or two inputs

 

if nargin < 3

    if wfm == 2

        slope = 0.01;

      % Slope must be <= 0.5, 0.01 = narrowband chirp, 0.1 = wideband chirp

   

    else

        slope = 0;

    end

    cycles = 10;

 

% Any number of inputs

   

else

    if wfm == 2

        slope = parm3;

    else

        slope = 0;

    end

    cycles = parm3;

end   

 

% Call the function corresponding to the given waveform

 

if wfm == 1

    [reference, convolution] = waveform1(pts);

elseif wfm == 2

    [reference, convolution] = waveform2(pts,slope);

elseif wfm == 3

    [reference, convolution] = waveform3(pts,cycles);

end

 

% Convert the result to decibels

 

scale = reference' * reference;

convolution = 10 * log10(convolution / scale);

 

% Plot everything

 

% Frequency content of waveform

 

reference = [reference; 0 * [1:(3 * pts)]'];

reference = reference .* exp(0.25i * pi * [1:(4 * pts)]');

reffreq = fft(reference / scale);

subplot(2, 2, 3);

plot([1:(2*pts)], (10 * log10(abs(reffreq(1:(2 * pts), 1)))))

title('Reference Waveform Frequency Content', 'FontWeight', 'bold');

axis([1, (2 * pts), -50, 0]);

 

disp('convolution size = ')

size(convolution)

 

% Zero Doppler Cut

 

t = 1:pts;

x = 1:((2 * pts) - 1);

subplot(2, 2, 2);

plot(x, convolution(:, 501))

title('Zero Doppler Cut', 'FontWeight', 'bold');

axis([1, ((2 * pts) -1), -50, 0]);

 

% Zero Range Cut

 

frange = -5:0.01:5;

subplot(2, 2, 4);

plot(frange, convolution(pts, :))

title('Zero Range Cut', 'FontWeight', 'bold');

axis([-5, 5, -50, 0]);

 

% Ambiguity Diagram

 

subplot(2, 2, 1);

'SHADING FLAT';

colormap('jet');

surf(frange', x', convolution, 'EdgeColor', 'none');

title('Ambiguity Diagram', 'FontWeight', 'bold');

axis([-5, 5, 0, (2 * pts), -40, 0]);

 

^ back to top ^

MOTIVATION – Why this is important

OBJECTIVE – What we hoped to achieve

AMBIGUITY DIAGRAM - What it is

AMBIGUITY DIAGRAM - How to read it

WAVEFORMS – The signals we analyzed

RESULTS – Results for CW and PCM

CHIRP - A closer look

POSSIBLE EXTENTIONS – What’s next

CODE - Fascinating stuff

ACKNOWLEDGMENTS - Who we have to thank