Main Content

## Signal Analyzer Tips and Limitations

Frequently asked questions and current limitations of the Signal Analyzer app.

### Select Signals to Analyze

1. "I dragged a 512-by-24 matrix into a display, but the app plotted only 10 of the 24 signals. How do I plot the others?"

By default, Signal Analyzer imports all the columns of a multichannel signal but plots only the first 10 columns. To plot signal columns beyond the 10th, drag them to the display. Alternatively, on the Signal table, select the check boxes next to the names of the signals you want to plot.

2. "My data is saved in structures. How can I analyze them in Signal Analyzer?"

To study a structure in Signal Analyzer, convert it to a timetable. The easiest way to do the conversion is to convert the structure to a table and then convert the table to a timetable. The second step involves converting the time variable to a duration array. The following example creates a structure with three fields, one of them containing the time values, and converts the structure to a timetable readable by Signal Analyzer.

```str.st = (0:999)'/1000; str.s1 = randn(1000,1); str.s2 = sin(2*pi*20*str.st); T = struct2table(str); T.st = seconds(T.st); TT = table2timetable(T,'RowTimes','st');```

If your structure does not have time information, you can use other MATLAB® functions. The following function takes a structure as input, extracts from it the arrays of signal values, and calls Signal Analyzer to plot the signals.

```function structSig(x) names = fieldnames(x); for i = 1:length(names) signalAnalyzer(getfield(x,names{i})) end end```

3. "What does it mean when a row in the Signal table is highlighted in gray and what does the check box mean?"

There are two different ways to choose signals in the Signal table. Each way gives you access to a different set of operations.

• Selecting the signal by clicking the Name, Info, Time, or Start Time column in the Signal table enables you to perform all the operations in the Analyzer tab. You can change the time information and smooth, filter, or duplicate the signals. You can run preprocessing operations on a signal without plotting the signal.

• Selecting the check box to the left of the signal name plots the signal in the currently selected display and enables you to perform all the operations in the Display tab. You can display the signal in the frequency domain or the time-frequency domain, or you can measure the signal using cursors.

4. "I use timetables with the time values stored as `datetime` arrays. How can I analyze them?"

To analyze timetables with time values stored as a `datetime` array, convert the array to a relative `duration` array by subtracting the first element from all the others. The following example creates a timetable with `datetime` row times and converts it to a timetable readable by Signal Analyzer.

```tt = timetable(datetime(2016,11,9,2,30,1:10)',randn(10,1)); dt = tt.Time-tt.Time(1); tn = timetable(dt,tt.Var1);```

See Analyze Signals with Inherent Time Information for another example.

5. "I have a timetable but only some of its variables were imported. How can I import them?"

Signal Analyzer lists only the variables that it can display and process. If some variables of a timetable are not being imported, they probably are complex or have NaNs. To be able to import them to the app, you must fix them in MATLAB first. To fix timetables, you can use the tips in Clean Timetable with Missing, Duplicate, or Nonuniform Times.

6. "I changed a variable in the MATLAB workspace. Why is there no change in the Signal Analyzer display?"

If you modify a signal in the MATLAB workspace, the Workspace browser updates automatically. To have the app recognize the changes, reimport the signal by dragging it again to the Signal table or to a display.

### Preprocess Signals

1. "How do I apply a lowpass filter to a signal that is not uniformly sampled?"

The filtering functionality of Signal Analyzer supports only uniformly sampled signals. You can resample your signal to a uniform grid by using Signal Analyzer's resampling functionality, which you can find in the Preprocessing gallery on the Analyzer tab. Alternatively, you can use the Signal Processing Toolbox™ `resample` function.

2. "How do I know what parameters were used for a preprocessing operation?"

To see a full summary of the preprocessing steps you took, including all settings you chose, click on the Analyzer tab.

### Explore Signals

1. "I want to view a scalogram of my signal, but I get a warning saying that I have to create a uniformly sampled signal. How do I resample my signal?"

You can resample your signal to a uniform grid by using Signal Analyzer's resampling functionality, which you can find in the Preprocessing gallery on the Analyzer tab. Alternatively, you can use the Signal Processing Toolbox `resample` function.

2. "Why can I not zoom out beyond the Nyquist range of a scalogram?"

If a real signal is sampled properly, then all of its frequency information is contained within the Nyquist range.

3. "How can I compare spectrograms of 10 different signals?"

The time-frequency views of Signal Analyzer support only one signal per display. To compare spectrograms of 10 different signals, open 10 displays and drag each signal to its own display. You can use the same procedure for persistence spectra and scalograms.

### Share or Reuse Analysis

1. "I generated a script that does not run because the variable it uses does not exist. Why?"

If you extract, duplicate, or rename a signal in Signal Analyzer and generate a MATLAB script without exporting the modified signal, the script will throw an error because the variables do not exist in the MATLAB workspace. Remember to export any signals used by generated scripts.

2. "How do I reproduce a Signal Analyzer spectrum, persistence spectrum, spectrogram, or scalogram in MATLAB?"

Click Spectrum or Spectrogram on the Display tab to compute and display the spectrum, persistence spectrum, spectrogram, or scalogram of a plotted signal. When you have the optimal settings for your signal, click Generate Script and select `Spectrum Script`, `Persistence Spectrum Script`, `Spectrogram Script`, or `Scalogram Script` to generate a script that you can use in MATLAB.

3. "How can I automate computation using Signal Analyzer generated MATLAB scripts and functions?"

Signal Analyzer can generate MATLAB functions that reproduce any combination of preprocessing steps performed on a signal. The app can also generate MATLAB scripts for extracting regions of interest or for computing the spectrum, spectrogram, persistence spectrum, or scalogram of a signal. You can combine scripts and functions to automate your analysis. See Compute Envelope Spectrum of Vibration Signal for an example.

### Troubleshooting

1. "I cannot get Signal Analyzer to start."

• Signal Analyzer can fail to start if MATLAB is using a software implementation of OpenGL®. To solve the problem, upgrade your graphics hardware driver or use `opengl` to switch to a hardware-accelerated implementation of OpenGL. See Resolving Low-Level Graphics Issues for more information.

• Attempting to start Signal Analyzer can cause JavaScript® support for WebGL™ to fail. To solve the problem, update your graphics hardware driver.

• Signal Analyzer can fail to start due to a network error. Check your organization's proxy settings and, if possible, disable the proxy that is interfering with the app startup process.

2. "When I start Signal Analyzer, I get an error saying it is unable write the file `temp_signalAnalyzer_datarepository.mat`."

You cannot launch Signal Analyzer from multiple instances of MATLAB running on the same computer.

## Support

#### Deep Learning for Signal Processing with MATLAB

Download white paper