function varargout = pulseWaveformAnalyzer(importData)
%pulseWaveformAnalyzer Analyze performance characteristics of pulsed,
%frequency modulated, and phase coded waveforms and create pulsed waveform
%library
%
%   pulseWaveformAnalyzer opens the Pulse Waveform Analyzer App.
%
%   pulseWaveformAnalyzer is an interactive app for the analysis and
%   creation of library for pulsed and continuous waveforms that are
%   exploited by both radar as well as sonar . The app allows the user to
%   select a waveform from a list, change waveform parameters and interact
%   with waveform plots, such as the magnitude and phase response, the
%   ambiguity function, the spectrum and the spectrogram. It also allows
%   user to create and modify library of pulsed waveforms. The app
%   calculates waveform characteristics such as range resolution, doppler
%   resolution, minimum range, maximum range, maximum doppler, time
%   bandwidth product and duty cycle. The user can export scripts,
%   waveforms and pulseWaveformLibrary objects to a file, workspace or
%   Simulink block.
%
%   pulseWaveformAnalyzer(WAV) opens the Pulse Waveform Analyzer app with
%   the WAV. WAV can be pulsed, frequency modulated, phase coded waveforms
%   or pulseWaveformLibrary.
%
%   See also phased, sensorArrayAnalyzer.

%   Copyright 2020-2023 The MathWorks, Inc.

narginchk(0,1);
if nargin % Import data from workspace
    out = phased.apps.internal.WaveformViewer.pulseWaveformAnalyzer('importData',importData,'importDataName',inputname(1));
else
    out = phased.apps.internal.WaveformViewer.pulseWaveformAnalyzer();
end

if nargout
    varargout{1} = out;
end
end
