Main Content

Using Signal Analyzer App

App Workflow

A typical workflow for inspecting and comparing signals using the Signal Analyzer app is:

  1. Select Signals to Analyze — Select any signal available in the MATLAB® workspace. The app accepts numeric arrays and signals with inherent time information, such as MATLAB timetable arrays, timeseries objects, and labeledSignalSet objects. For more information, see Data Types Supported by Signal Analyzer. Add time information to signals using sample rates, numeric vectors, duration arrays, or MATLAB expressions.

  2. Preprocess Signals — Edit signals using trim, clip, split, extract, or crop actions. Lowpass, highpass, bandpass, or bandstop filter signals. Remove trends and compute signal envelopes. Smooth signals using moving averages, regression, Savitzky-Golay filters, or other methods. Denoise signals using wavelets. Change sample rates of signals or interpolate nonuniformly sampled signals onto uniform grids. Preprocess signals using your own custom functions. Generate MATLAB functions to automate preprocessing operations.

  3. Explore Signals — Plot, measure, and compare data, their spectra, their spectrograms, or their scalograms. Look for features and patterns in the time domain, in the frequency domain, and in the time-frequency domain. Compute persistence spectra to analyze sporadic signals and sharpen spectrogram estimates using reassignment. Extract regions of interest from signals. Measure signal statistics in the time domain such as minimum, maximum, mean, and root mean square level.

  4. Share Analysis — Copy displays from the app to the clipboard as images. Export signals to the MATLAB workspace or save them to MAT-files. Generate MATLAB scripts to automate the computation of power spectrum, spectrogram, or persistence spectrum estimates and the extraction of regions of interest. Save Signal Analyzer sessions to resume your analysis later or on another machine.

Example: Extract Regions of Interest from Whale Song

Load a file that contains audio data from a Pacific blue whale, sampled at 4 kHz. The file is from the library of animal vocalizations maintained by the Cornell University Bioacoustics Research Program. The time scale in the data is compressed by a factor of 10 to raise the pitch and make the calls more audible. Convert the signal to a MATLAB® timetable.

whaleFile = fullfile(matlabroot,"examples","matlab","data","bluewhale.au");
[w,fs] = audioread(whaleFile);

whale = timetable(seconds((0:length(w)-1)'/fs),w);

% To hear, type soundsc(w,fs)

Open Signal Analyzer and drag the timetable to a display. Four features stand out from the noise. The first is known as a trill, and the other three are known as moans.

signalAnalyzer_whaleexample1v2_22a.png

On the Display tab, click Spectrum to open a spectrum view and click Panner to activate the panner. Use the panner to create a zoom window with a width of about 2 seconds. Drag the zoom window so that it is centered on the trill. The spectrum shows a noticeable peak at around 900 Hz.

signalAnalyzer_whaleexample2v2_22a.png

Isolate the single trill by highpass filtering. Right-click the signal in the Signal table and select Duplicate to create a copy of the whale song. Remove the original signal from the display by clearing the check box next to its name in the Signal table. On the Analyzer tab, select Highpass from the Preprocessing gallery. On the Highpass tab, set the passband frequency to 925 Hz and the stopband attenuation to 80 dB. Use the default value for the steepness. Click the Highpass button to apply the filter.

signalAnalyzer_whaleexample3toolstrip_22a.png

Go to the Display tab and place two data cursors by clicking the arrow below Data Cursors and selecting Two. Place one cursor at 1.3 second and the other cursor at 3.3 seconds. Click the arrow next to Extract Signals and select Between Time Cursors to extract the region containing the trill.

signalAnalyzer_whaleexample3v2_22a.png

Clear the display and select the original signal. Extract the three moans to compare their spectra:

  1. Center the panner zoom window on the first moan. The spectrum has eight clearly defined peaks, located very close to multiples of 170 Hz. Click the button next to Extract Signals and select Between Time Limits.

  2. Click Panner to hide the panner. Press the space bar to see the full signal. Click Zoom in X and zoom in on a 2-second interval of the time view centered on the second moan. The spectrum again has peaks at multiples of 170 Hz. Click the button next to Extract Signals and select Between Time Limits.

  3. Press the space bar to see the full signal. Zoom in around the third moan. Again, there are peaks at multiples of 170 Hz. Click the button next to Extract Signals and select Between Time Limits.

signalAnalyzer_whaleexample4v2_22a.png

Remove the original signal from the display by clearing the check box next to its name in the Signal table. Display the three regions of interest you just extracted. Their spectra lie approximately on top of each other. Click Display Grid to add a second display and plot the region of interest containing the trill that you extracted. The trill and moan spectra are noticeably different.

signalAnalyzer_whaleexample5v2_22a.png

Select the extracted signals in the Signal table. Click Export on the Analyzer tab to export the four regions of interest in a MAT-file.

signalAnalyzer_whaleexample6_22a.png

See Also

|

Related Topics