Main Content

Diagnostic Feature Designer

Interactively extract, visualize, and rank features from measured or simulated data for machine diagnostics and prognostics


The Diagnostic Feature Designer app allows you to accomplish the feature design portion of the predictive maintenance workflow using a multifunction graphical interface. You design and compare features interactively, and then determine which features are best at discriminating between data from nominal systems and from faulty systems. The most effective features ultimately become your condition indicators for fault diagnosis and prognostics.

Using this app, you can:

  • Import measured or simulated data from individual files, an ensemble file, or an ensemble datastore that references files external to the app.

  • Interactively visualize data to plot the ensemble variables you import or that you compute within the app. Group data by condition label in plots so that you can clearly see whether member data comes from nominal or faulty systems.

  • Derive new variables such as time-synchronous averaged signals or order spectra. The app executes processing on all ensemble members with one command.

  • Generate features from your variables, and visualize their effectiveness using histograms. Features include signal statistics, nonlinear metrics, rotating machinery metrics, and spectral metrics.

  • Use conditional ranking with labeled features so that you can determine which ones are most likely to discriminate between nominal and faulty behavior.

  • Use prognostic ranking with features extracted from run-to-failure data so that you can determine which ones are most likely to indicate remaining useful life (RUL).

  • Export your most effective features directly to Classification Learner for more insight into feature effectiveness and for algorithm training.

  • Generate code for the features you choose so that you can reproduce, customize, and automate the feature computations in a MATLAB® function.

To get started with the app, you must have data from your systems available in your MATLAB workspace. For information about organizing your data for import into the app, see Organize System Data for Diagnostic Feature Designer.

Diagnostic Feature Designer app

Open the Diagnostic Feature Designer App

  • MATLAB toolstrip: On the Apps tab, under Control System Design and Analysis, click the app icon.

  • MATLAB command prompt: Enter diagnosticFeatureDesigner.


Feature Designer Tab

Initiate a new app session by importing source data into the app from your MATLAB workspace. You can import data from tables, timetables, cell arrays, or matrices. You can import data from a source that combines the data of multiple ensemble members, or import each ensemble member individually. You can also import an ensemble datastore that contains information that allows the app to interact with external data files. Your files can contain actual or simulated time-domain measurement data, spectral models or tables, variable names, condition and operational variables, and features you generated previously. Diagnostic Feature Designer combines all your member data into a single ensemble dataset. In this dataset, each variable is a collective signal or model that contains all the individual member values.

For more information about importing data, see Import Data into Diagnostic Feature Designer.

For more information about terms related to data ensembles, see More About.

For more information about organizing your data for import into the app, see Organize System Data for Diagnostic Feature Designer.

Specify preferences for how Diagnostic Feature Designer performs computations and where the app stores results. Computation Options opens a dialog box that accepts these preferences. Some options are visible only under specific conditions:

  • Independent Variable— Available independent variables (IVs). Choices are available when you specify more than one IV for at least one signal during the import process. Your selection changes the IV of all the applicable signals.

  • Data Handling Mode — Full signal or frame-based. Always available

  • Results Return Location — Write results to original folder or to local dataset. Available only when you import an ensemble datastore object.

  • Use Parallel Computing — Process ensemble members in parallel. Available only when you have the Parallel Computing Toolbox™ installed.

For more information, see Computation Options.

Select options for processing your data into new signals. Use these new signals as inputs to other processing options or as inputs to feature generation. Most processing options operate on each ensemble member. You can also perform ensemble-level processing to view how the ensemble behaves as a whole. Each option selection opens a new tab for your specifications. Selection of an option also opens a general Data Processing tab if that tab is not already open. The Data Processing tab provides information about the input signal.

To specify a signal to process, select a variable from the data browser prior to selecting the data processing option. To change the signal after you have opened the option tab, close the option tab and select a new signal either in the data browser or from the Signal menu in the Data Processing tab.

For information about the choices, see:

Compute features in the time domain. Signal Features apply to any signals. Rotational Machinery Features are specialized metrics that apply to gearing. Nonlinear Features provide metrics that characterize chaotic behavior in vibration signals. Each selection opens a dialog box for your source signal and feature specifications. For more information, see:

Spectral features provide frequency-domain metrics on your data. To compute spectral features, you must already have a power spectrum or an order spectrum variable. Selecting Spectral Features opens a dialog box for your source signal and feature specifications. For more information, see Spectral Features.

Open the feature ranking tab that lets you perform classification and prognostic ranking for the feature table that you select. For more information, see Feature Ranking Tab.

Export features, or your entire data set, to use them or share them outside of the app. Generate code to reproduce your feature computations in a MATLAB function.

  • For feature export, both options open an unranked selectable list to choose from. When you export to the MATLAB workspace, you can use command-line techniques with the features. When you export to Classification Learner, you open a Classification Learner session that uses your selected features as input.

    If you have ranked your features and want to select features to export from a ranked list, use Export from the Feature Ranking tab.

  • For code generation, the first option, Generate Function for Features, lets you generate MATLAB code with a simple set of specifications for feature table, ranking algorithm, and number of features. Use this option when you want to generate code for features based solely on ranking, or when you want to generate code for all your features.

    The second code generation option, Generate Function for..., allows you to customize your selection of items to include in the function. For example, you can filter your selection based on criteria such as input or output text. You can include signals and spectra that are not used in the features you select. Selecting Generate Function for... opens a selectable list of all the signals, features, and ranking tables that you have generated. Generate Function for... also opens the Code Generation tab, which provides filtering capability for the list. Use a filter to view only the items that meet the filter criterion. You can use different filters to select the outputs you want. To review all your selections regardless of filter, click Sort by Selection. This option lists all the available outputs with items that you selected on top. For more information, see Code Generation Tab.

    If you have specified frame-based data (see Computation Options), clicking Generate Function for... first opens a list with selections for the frame specifications that you have used. The items in your generated code must either all operate on the full signal or all use the same frame specification.

    For more information on how to generate code in the app, see Automatic Feature Extraction Using Generated MATLAB Code and Generate a MATLAB Function in Diagnostic Feature Designer.

For more information about the Export options, see:

Signal Trace Tab, Power Spectrum Tab, and Order Spectrum Tab

Use the Panner to focus on data segments in the x-axis range that you specify and to change the plot scale. The Panner provides a strip plot beneath the main plot. To focus on a section of the main plot, move the handles. To change the scale of the plot, select one of the options in Scale.

Use Ensemble View Preferences to control how you view your data as an ensemble:

  • Group by — Group data by a condition variable label. The app uses color to the label group for each ensemble member. For example, if your condition variable is faultCode with labels healthy and degraded, the app uses one color for data with the healthy data and another color for data with the degraded label.

  • Configure View — Specify number of ensemble members to display, whether to display variation among the members . Selecting this option opens a dialog box for your specifications. For more information, see Ensemble View Preferences.

Specify how to plot multiple variables together.

  • Select to create separate plots displayed vertically, each with a unique y-axis scaling.

  • Clear to create a single plot that overlays all traces and uses a single y-axis scale.

In a signal or spectrum plot, you highlight an individual member by positioning your cursor on the member trace. Select Show Signal Information to display both the variable member that you highlight and the condition label for that member in the lower right corner.

Select Data Cursors to display values of key points in your signal. Data Cursors are horizontal and vertical bars that you position over a point of interest, such as a peak value. The cursors display the x and y positions. To display the distance between the cursors, select Show Signal Information. To lock the bars so that they move together, select one of the Lock Spacing options.

Histogram Tab

Click Select Features to open a selectable list of features to plot. Use Select Features, for example, when you have generated many features but you want to focus on a subset in a single plot panel.

Select the condition variable to base feature histograms on. The feature histograms use color to visualize the separation of data groups with different labels for that condition variable.

Example: faultCode

Specify histogram resolution, as driven by your selection of Bin Width, Bin Method, Number of Bins, and Bin Limits. The bin settings apply to all the histograms for the feature table

The bin settings are not independent. The algorithm uses an order of precedence to determine what to use:

  • The Binning Method is the default driver for the bin width.

  • A Bin Width specification overrides the Binning Method.

  • The bin width and the independent Bin Limits drive the number of bins. A Number of Bins specification has an effect only when the value of Group By is none.

    For more information on interpreting and customizing histograms, see Generate and Customize Feature Histograms.

Feature Ranking Tab

Select a classification ranking technique to assess how effectively each feature separates data with different condition labels. If you have already ranked your features, you can rank again with a different technique and display the resulting rankings together. Each technique uses a different statistical method.

The menu differentiates between two-class and multiclass ranking methods.

  • Two-Class Methods — Use when your condition variable (CV) has only two labels, such as healthy and faulty. The default value for two-class methods is T-Test.

  • Multiclass methods — use when your condition variable has more than two labels, such as healthy, faultCode1, and faultCode2. The default value for multiclass methods is One-way ANOVA

The default ranking technique for two-class condition variables, t-test, is the simplest technique, as it uses only the means of the two labeled groups and not their distributions. t-test is primarily useful for identifying ineffective features to discard.

The table lays out the influence of specific criteria on ranking-method selection.

CriterionRanking Method
Condition Variable Type
  • Multiclass CV — One-way ANOVA, Kruskal-Wallis

  • Two-Class CV — T-test, entropy, Bhattacharyya, Wilcoxon, ROC

Feature Scoring Criterion
  • Mean Difference — T-test (primarily for discarding ineffective features)

  • Distribution Overlap — All others

Distribution Shape
  • Gaussian — T-test, entropy, Bhattacharyya, one-way ANOVA

  • Non-Gaussian — ROC, Wilcoxon, Kruskal-Wallis

Desired Method Basis
  • Hypothesis Test — T-test, one-way ANOVA, Wilcoxon, Kruskal-Wallis

  • Distance Measurement — Entropy, Bhattacharyya, ROC

Selecting a technique activates a new tab with a name that matches the ranking technique. For more information on this technique-activated tab, see Ranking Technique Tab.

For more information on the ranking methods, see:

Select a prognostic ranking technique to assess how effectively each feature tracks the degradation of your ensemble members when you have run-to-failure data. The top-ranking features are best at predicting the remaining useful life (RUL).

The app provides three prognostic ranking techniques, all of which score features on a scale ranging from 0 through 1. One technique, Monotonicity, is always available. The other two techniques, Trendability and Prognosability, are available only when you are using frame-based data. The smaller data segments in frame-based data allow the tracking of small changes that are induced by degradation.

  • Monotonicity characterizes the trend of a feature as the system evolves toward failure. As a system gets progressively closer to failure, a suitable condition indicator has a monotonic positive or negative trend. For more information, see monotonicity.

  • Trendability provides a measure of similarity between the trajectories of a feature measured in multiple run-to-failure experiments. Trendability of a candidate condition indicator is defined as the smallest absolute correlation between measurements. For more information, see trendability.

  • Prognosability is a measure of the variability of a feature at failure relative to the range between its initial and final values. A more prognosable feature has less variation at failure relative to the range between its initial and final values. For more information, see prognosability.

Selecting a technique activates a new tab with a name that matches the ranking technique. For more information on this technique-activated tab, see Ranking Technique Tab.

For an example of using prognostic ranking in the app, see Perform Prognostic Feature Ranking for a Degrading System Using Diagnostic Feature Designer.

Select the condition variable that provides the labels for the classification ranking algorithm to use.

Specify the ranking technique to sort by when you are comparing the results of different ranking methods. When you use a single ranking technique, the app displays the results in order of importance, as indicated by the ranking score for that technique. When you are comparing the results for multiple methods, change Sort By to change the technique that drives the sorting order.

Specify this parameter to eliminate ranking scores for a specific technique. Use this parameter, for example, when you are comparing the results of multiple rankings, and you want to simplify the display by eliminating rankings that do not influence your feature selection.

Export features to use them or share them outside of the app. Both options open a ranking-sorted selectable list to choose from. When you export to the MATLAB workspace, you can use command-line techniques with the features. When you export to the Classification Learner, you open a Classification Learner session that uses your selected features as input.

If you want to export your entire data set from the app, use Export from the Feature Designer tab.

You can also generate code that reproduces the computations for the variables and features you select. For more information, see the code generation options description in the Export section in the Feature Designer tab. When you generate code using Generate Function for Features from the Feature Ranking tab, Ranking Method defaults to the method you specify in Sort By.

Ranking Technique Tab

The correlation importance setting allows you to screen out features that convey similar information to higher-ranked features. This screening provides a more diverse feature set in the upper ranks.

The criterion for the screening is the set of cross-correlation coefficients a feature has with higher-ranked features. High cross-correlation between two features implies that both features are separating condition groups similarly and provide redundant information. With the default value of 0, the app does not incorporate feature redundancy into ranking scores. As you increase the correlation importance value, the app increases the influence of feature cross-correlation on the feature ranking score. This increasing influence progressively lowers the score of redundant features.

The normalization scheme performs independent normalization across the members for every feature. Normalization allows more direct comparisons among features. The app displays the defining equation for the scheme you select directly beneath your selection.

This option is available only for classification ranking techniques.

Click Apply to calculate ranking with the specified parameters. The Feature Ranking tab in the plotting area displays the results both graphically and tabularly. This display also includes the results for the default ranking algorithm, and for any other ranking techniques you calculated previously.

Once you calculate a ranking, the app disables Apply until you change a parameter. You can calculate ranking within a tab multiple times. Each time you modify the parameters and calculate ranking, the new results overwrite the previous results in the plotting-area tab.

Once you have completed your ranking within the ranking technique tab, close that tab to return control to the Feature Ranking tab. The Feature Ranking is disabled while any ranking technique tab is activated.

Code Generation Tab

This property is read-only.

The frame policy information reflects the choice you make when you select Export > Generate Function for... in the Feature Designer tab.

Set criteria to refine your options when selecting items for your generated function. All criteria allow you to overwrite selectable options with a string. String matching is case insensitive. Your filters apply to all output items, including signals, features, and ranking tables. Criteria include:

  • Output — String appearing in the output name, which is the name of the variable, feature, or ranking table to select for the generated function

  • Input — Input signal from which the output variable or feature was computed or feature table from which the ranking table was computed

  • Method — Computation that produced the output item, such as TSA or Kurtosis

  • Analysis Type — Data processing, feature processing, or feature ranking

To reset a single filter, delete the contents and click anywhere in the app. To reset all filters at once, click Reset Filters.

Display all selected items together. Use Sort Selected especially when you have used multiple filter combinations to assemble your codegen selections. All your selections appear together.

Click the Generate Function button when you have completed configuring your selections. The app opens a function that contains computations used for all the output items you selected.

For more information about generating code in the app, see Automatic Feature Extraction Using Generated MATLAB Code.

Programmatic Use

expand all

diagnosticFeatureDesigner opens the Diagnostic Feature Designer app.

diagnosticFeatureDesigner(sessionFile) opens the app and loads a previously saved session. sessionFile is the name of a session data file on the MATLAB path. The data includes all of the variables and features that you either imported into the app or computed within the app. The data also includes your app settings and the processing information necessary to generate code.

To save a session, in the Diagnostic Feature Designer app, on the Feature Designer tab, click Save Session.

More About

expand all

Introduced in R2019a