Main Content

timeFrequencyScalarFeatureOptions

Store information for converting time-frequency feature vectors to scalar values

Since R2024a

    Description

    Use a timeFrequencyScalarFeatureOptions object to store methods to convert time-frequency-domain feature vector to scalars. You can use the resulting timeFrequencyScalarFeatureOptions object to set the ScalarizationMethod property of a signalTimeFrequencyFeatureExtractor object.

    Creation

    Description

    example

    opts = timeFrequencyScalarFeatureOptions creates an object opts that stores the scalarization methods with default values for all the time-frequency domain signal features.

    example

    opts = timeFrequencyScalarFeatureOptions(Name=Value) specifies scalarization methods for each time-frequency domain signal feature using name-value arguments. You can specify multiple name-value arguments. For example, timeFrequencyScalarFeatureOptions(SpectralCrest={'Mean';'Energy'},TFRidges={'Kurtosis'}) specifies 'Mean' and 'Energy' as scalarization methods for the spectral crest feature, and 'Kurtosis' as the scalarization method for the time-frequency ridge feature. For more information about scalarization methods, see Scalarization Methods for Signal Features in Time-Frequency Domain.

    Properties

    expand all

    Scalarization methods for the spectral kurtosis feature, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on the feature, if enabled. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify this feature, the feature extractor object:

    • Associates with it any scalarization methods you have specified for it.

    • Appends any scalarization methods you have specified using the All name-value argument.

    For more information about the spectral kurtosis feature, see spectralKurtosis.

    Example: SpectralKurtosis={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of the spectral kurtosis feature vector.

    Data Types: cell | string

    Scalarization methods for the spectral skewness feature, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on the feature, if enabled. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify this feature, the feature extractor object:

    • Associates with it any scalarization methods you have specified for it.

    • Appends any scalarization methods you have specified using the All name-value argument.

    For more information about the spectral skewness feature, see spectralSkewness.

    Example: SpectralSkewness={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of the spectral skewness feature vector.

    Data Types: cell | string

    Scalarization methods for the spectral crest feature, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on the feature, if enabled. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify this feature, the feature extractor object:

    • Associates with it any scalarization methods you have specified for it.

    • Appends any scalarization methods you have specified using the All name-value argument.

    For more information about the spectral crest feature, see spectralCrest.

    Example: SpectralCrest={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of the spectral crest feature vector.

    Data Types: cell | string

    Scalarization methods for the spectral flatness feature, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on the feature, if enabled. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify this feature, the feature extractor object:

    • Associates with it any scalarization methods you have specified for it.

    • Appends any scalarization methods you have specified using the All name-value argument.

    For more information about the spectral flatness feature, see spectralFlatness.

    Example: SpectralFlatness={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of the spectral flatness feature vector.

    Data Types: cell | string

    Scalarization methods for the spectral entropy feature, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on the feature, if enabled. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify this feature, the feature extractor object:

    • Associates with it any scalarization methods you have specified for it.

    • Appends any scalarization methods you have specified using the All name-value argument.

    For more information about the spectral entropy feature, see spectralEntropy.

    Example: SpectralEntropy={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of the spectral entropy feature vector.

    Data Types: cell | string

    Scalarization methods for the time-frequency ridges feature, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on the feature, if enabled. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify this feature, the feature extractor object:

    • Associates with it any scalarization methods you have specified for it.

    • Appends any scalarization methods you have specified using the All name-value argument.

    For more information about the time-frequency ridge feature, see tfridge.

    Example: TFRidges={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of the time-frequency ridge feature vector.

    Data Types: cell | string

    Scalarization methods for the instantaneous bandwidth feature, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on the feature, if enabled. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify this feature, the feature extractor object:

    • Associates with it any scalarization methods you have specified for it.

    • Appends any scalarization methods you have specified using the All name-value argument.

    For more information about the instantaneous bandwidth feature, see instbw.

    Example: InstantaneousBandwidth={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of the instantaneous bandwidth feature vector.

    Data Types: cell | string

    Scalarization methods for the instantaneous frequency feature, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on the feature, if enabled. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify this feature, the feature extractor object:

    • Associates with it any scalarization methods you have specified for it.

    • Appends any scalarization methods you have specified using the All name-value argument.

    For more information about the instantaneous frequency feature, see instfreq or hht.

    Example: InstantaneousFrequency={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of the instantaneous frequency feature vector.

    Data Types: cell | string

    Scalarization methods for the instantaneous energy feature, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on the feature, if enabled. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify this feature, the feature extractor object:

    • Associates with it any scalarization methods you have specified for it.

    • Appends any scalarization methods you have specified using the All name-value argument.

    For more information about the instantaneous energy feature, see hht.

    Example: InstantaneousEnergy={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of the instantaneous energy feature vector.

    Data Types: cell | string

    Scalarization methods for the mean envelope energy feature, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on the feature, if enabled. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify this feature, the feature extractor object:

    • Associates with it any scalarization methods you have specified for it.

    • Appends any scalarization methods you have specified using the All name-value argument.

    For more information about the mean envelope energy feature, see emd.

    Example: MeanEnvelopeEnergy={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of the mean envelope energy feature vector.

    Data Types: cell | string

    Scalarization methods for the wavelet entropy feature, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on the feature, if enabled. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify this feature, the feature extractor object:

    • Associates with it any scalarization methods you have specified for it.

    • Appends any scalarization methods you have specified using the All name-value argument.

    For more information about the wavelet entropy feature, see wentropy (Wavelet Toolbox).

    Example: WaveletEntropy={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of the wavelet entropy feature vector.

    Data Types: cell | string

    Scalarization methods for the time-averaged wavelet spectrum feature, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on the feature, if enabled. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify this feature, the feature extractor object:

    • Associates with it any scalarization methods you have specified for it.

    • Appends any scalarization methods you have specified using the All name-value argument.

    For more information about the time spectrum feature, see timeSpectrum (Wavelet Toolbox).

    Example: TimeSpectrum={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of the time spectrum feature vector.

    Data Types: cell | string

    Scalarization methods for the scale-averaged wavelet spectrum feature, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on the feature, if enabled. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify this feature, the feature extractor object:

    • Associates with it any scalarization methods you have specified for it.

    • Appends any scalarization methods you have specified using the All name-value argument.

    For more information about the scale spectrum feature, see scaleSpectrum (Wavelet Toolbox).

    Example: ScaleSpectrum={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of the scale spectrum feature vector.

    Data Types: cell | string

    Scalarization methods for all the signal features, specified as a cell array of character vectors or as a string array.

    Each element of the array corresponds to a scalarization method that you apply on all the enabled features. Enable signal features for extraction when creating the signalTimeFrequencyFeatureExtractor object.

    If you specify All, the feature extractor object:

    • Associates the scalarization methods you have specified with all enabled features.

    • Appends them to the list of methods already specified for each particular feature.

    For more information about signal features in the time-frequency domain, see signalTimeFrequencyFeatureExtractor.

    Example: All={'Mean' 'PeakValue'} sets the option to extract the mean and the peak value of all the feature vectors.

    Data Types: cell | string

    Examples

    collapse all

    Create a timeFrequencyScalarFeatureOptions object with default values.

    opts = timeFrequencyScalarFeatureOptions
    opts = 
      timeFrequencyScalarFeatureOptions with properties:
    
              SpectralKurtosis: [0x0 string]
              SpectralSkewness: [0x0 string]
                 SpectralCrest: [0x0 string]
              SpectralFlatness: [0x0 string]
               SpectralEntropy: [0x0 string]
                      TFRidges: [0x0 string]
        InstantaneousBandwidth: [0x0 string]
        InstantaneousFrequency: [0x0 string]
           InstantaneousEnergy: [0x0 string]
            MeanEnvelopeEnergy: [0x0 string]
                  TimeSpectrum: [0x0 string]
                WaveletEntropy: [0x0 string]
                 ScaleSpectrum: [0x0 string]
                           All: [0x0 string]
    
    

    Add scalarization methods for the spectral flatness and mean envelope energy time-frequency domain features:.

    opts.SpectralFlatness = {'Energy'};
    opts.MeanEnvelopeEnergy = {'Kurtosis' 'PeakValue'};

    Display the list of scalarization methods for all the time-frequency features.

    opts
    opts = 
      timeFrequencyScalarFeatureOptions with properties:
    
              SpectralKurtosis: [0x0 string]
              SpectralSkewness: [0x0 string]
                 SpectralCrest: [0x0 string]
              SpectralFlatness: "Energy"
               SpectralEntropy: [0x0 string]
                      TFRidges: [0x0 string]
        InstantaneousBandwidth: [0x0 string]
        InstantaneousFrequency: [0x0 string]
           InstantaneousEnergy: [0x0 string]
            MeanEnvelopeEnergy: ["Kurtosis"    "PeakValue"]
                  TimeSpectrum: [0x0 string]
                WaveletEntropy: [0x0 string]
                 ScaleSpectrum: [0x0 string]
                           All: [0x0 string]
    
    

    Create and use a timeFrequencyScalarFeatureOptions object to set the ScalarizationMethod property in a signalTimeFrequencyFeatureExtractor object.

    Specify the mean and the crest factor as scalar features for the spectral crest time-frequency feature. Store this information in a timeFrequencyScalarFeatureOptions object.

    opts  = timeFrequencyScalarFeatureOptions( ...
        SpectralCrest={'Mean';'CrestFactor'});

    Create a signalTimeFrequencyFeatureExtractor object to extract the spectral crest and time-frequency ridges with their corresponding scalar values. Display the ScalarizationMethod property of the feature extractor object.

    tfFE = signalTimeFrequencyFeatureExtractor( ...
        SpectralCrest=true,TFRidges=true, ...
        ScalarizationMethod=opts);
    disp(tfFE.ScalarizationMethod)
      timeFrequencyScalarFeatureOptions with properties:
    
              SpectralKurtosis: [0x0 string]
              SpectralSkewness: [0x0 string]
                 SpectralCrest: [2x1 string]
              SpectralFlatness: [0x0 string]
               SpectralEntropy: [0x0 string]
                      TFRidges: [0x0 string]
        InstantaneousBandwidth: [0x0 string]
        InstantaneousFrequency: [0x0 string]
           InstantaneousEnergy: [0x0 string]
            MeanEnvelopeEnergy: [0x0 string]
                  TimeSpectrum: [0x0 string]
                WaveletEntropy: [0x0 string]
                 ScaleSpectrum: [0x0 string]
                           All: [0x0 string]
    

    Set scalarization methods and use for converting time-frequency feature vectors to scalar values.

    Specify 'Entropy' and 'Mean' as scalarization methods for the spectral flatness feature. Specify 'Kurtosis' as the scalarization method for all the enabled signal features. Store this information in a timeFrequencyScalarFeatureOptions object.

    opts = timeFrequencyScalarFeatureOptions( ...
        SpectralFlatness={'Entropy' 'Mean'}, ...
        All={'Kurtosis'})
    opts = 
      timeFrequencyScalarFeatureOptions with properties:
    
              SpectralKurtosis: [0x0 string]
              SpectralSkewness: [0x0 string]
                 SpectralCrest: [0x0 string]
              SpectralFlatness: ["Entropy"    "Mean"]
               SpectralEntropy: [0x0 string]
                      TFRidges: [0x0 string]
        InstantaneousBandwidth: [0x0 string]
        InstantaneousFrequency: [0x0 string]
           InstantaneousEnergy: [0x0 string]
            MeanEnvelopeEnergy: [0x0 string]
                  TimeSpectrum: [0x0 string]
                WaveletEntropy: [0x0 string]
                 ScaleSpectrum: [0x0 string]
                           All: "Kurtosis"
    
    

    Create a signalTimeFrequencyFeatureExtractor object to extract the spectral crest, spectral flatness, and time-frequency ridges features. Use opts to set the scalarization method property of the feature extractor object.

    sFE = signalTimeFrequencyFeatureExtractor( ...
        SpectralCrest=true,SpectralFlatness=true, ...
        TFRidges=true,ScalarizationMethod=opts)
    sFE = 
      signalTimeFrequencyFeatureExtractor with properties:
    
       Properties
                  FrameSize: []
                  FrameRate: []
                 SampleRate: []
        IncompleteFrameRule: "drop"
              FeatureFormat: "matrix"
                  Transform: "Spectrogram"
        ScalarizationMethod: [1x1 timeFrequencyScalarFeatureOptions]
    
       Enabled Features
         SpectralCrest, SpectralFlatness, TFRidges
    
       Disabled Features
         SpectralKurtosis, SpectralSkewness, SpectralEntropy, InstantaneousBandwidth, InstantaneousFrequency, MeanEnvelopeEnergy
         InstantaneousEnergy, WaveletEntropy, TimeSpectrum, ScaleSpectrum
    
    
       
    

    Extract vectors and scalar features from the spectrogram of a signal. Observe the list of extracted features.

    x = exp(-(-4.5:0.15:4.5).^2);
    [features,indices] = extract(sFE,x);
    disp(indices)
                   SpectralCrest: [1 2 3 4 5]
           SpectralCrestKurtosis: 6
                SpectralFlatness: [7 8 9 10 11]
         SpectralFlatnessEntropy: 12
            SpectralFlatnessMean: 13
        SpectralFlatnessKurtosis: 14
                        TFRidges: [15 16 17 18 19]
                TFRidgesKurtosis: 20
    

    More About

    expand all

    Version History

    Introduced in R2024a