jAudioFeatureExtractor.AudioFeatures
Class PowerSpectrum

java.lang.Object
  extended by jAudioFeatureExtractor.AudioFeatures.FeatureExtractor
      extended by jAudioFeatureExtractor.AudioFeatures.PowerSpectrum

public class PowerSpectrum
extends FeatureExtractor

A feature extractor that extracts the FFT power spectrum from a set of samples. This is a good measure of the power of different frequency components within a window.

The power spectrum is found by first calculating the FFT with a Hanning window. The magnitude spectrum value for each bin is found by first summing the squares of the real and imaginary components. The result is divided by the number of bins.

The dimensions of this feature depend on the number of FFT bins, which depend on the number of input samples. The dimensions are stored in the definition field are therefore 0, in order to indicate this variability.

No extracted feature values are stored in objects of this class.

Author:
Cory McKay

Field Summary
 
Fields inherited from class jAudioFeatureExtractor.AudioFeatures.FeatureExtractor
definition, dependencies, offsets, parent
 
Constructor Summary
PowerSpectrum()
          Basic constructor that sets the definition and dependencies (and their offsets) of this feature.
 
Method Summary
 java.lang.Object clone()
          Create an identical copy of this feature.
 double[] extractFeature(double[] samples, double sampling_rate, double[][] other_feature_values)
          Extracts this feature from the given samples at the given sampling rate and given the other feature values.
 
Methods inherited from class jAudioFeatureExtractor.AudioFeatures.FeatureExtractor
getDepenedencies, getDepenedencyOffsets, getElement, getFeatureDefinition, setElement, setParent, setWindow
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PowerSpectrum

public PowerSpectrum()
Basic constructor that sets the definition and dependencies (and their offsets) of this feature.

Method Detail

extractFeature

public double[] extractFeature(double[] samples,
                               double sampling_rate,
                               double[][] other_feature_values)
                        throws java.lang.Exception
Extracts this feature from the given samples at the given sampling rate and given the other feature values.

In the case of this feature, the sampling_rate and other_feature_values parameters are ignored.

Specified by:
extractFeature in class FeatureExtractor
Parameters:
samples - The samples to extract the feature from.
sampling_rate - The sampling rate that the samples are encoded with.
other_feature_values - The values of other features that are needed to calculate this value. The order and offsets of these features must be the same as those returned by this class's getDependencies and getDependencyOffsets methods respectively. The first indice indicates the feature/window and the second indicates the value.
Returns:
The extracted feature value(s).
Throws:
java.lang.Exception - Throws an informative exception if the feature cannot be calculated.

clone

public java.lang.Object clone()
Create an identical copy of this feature. This permits FeatureExtractor to use the prototype pattern to create new composite features using metafeatures.

Specified by:
clone in class FeatureExtractor