ARMA Modules

Now that we have talked about ARMA in detail, let us provide a few caveats. It is not always beneficial to use ARMA parameter estimation as a feature extraction. In ARMA, poles and zeros can cancel each other, causing numerical issues, or compete to represent the spectral shape, causing different feature representations of a given spectral shape. There may be some situations, such as when the data is known to be ARMA, or in human speech (especially nasal vowels), where ARMA model can be more compact. But, even if the number of parameters for a non-ARMA model is much higher, such as MA, AR, or MFCC features, it can still be a more robust and reproduceable representation than ARMA. Still, we provide modules for circular and non-circular ARMA feature extraction.

For non-circular ARMA features, see software/module_arma.m, software/module_arma_synth.m. The function software/module_arma_test.m provides a comprehensive set of tests including acid test. Note that often the ARMA parameter estimation algorithm can remove a cancelling pole/zero pair, especially for small $N$, which causes the acid test to abort. Try:

  module_arma_test('acid',512,2,2);

For circular ARMA features, see software/module_armacirc.m, software/module_armacirc_synth.m, and software/module_armacirc_test.m. Like the non-circular ARMA feature extraction, especially for small $N$, the ARMA parameter estimation algorithm can remove a cancelling pole/zero pair, which causes the acid test to abort.

  module_armacirc_test('acid',512,2,2);