ASC Home | Architecture | Generative Modeling | Example System | Publications

Example Self-Adaptive System


These concepts can be readily demonstrated by a simple adaptive signal analyzer application depicted below. In this application, the adaptable system is a bank of filter pairs: a simple band filter followed by an adaptive notch filter. The idea is to have one such pair for each spectral component in the input signal. The wider band filter filters out the other components and the adaptive notch filter zooms in on the exact spectral peak and effectively measures the frequency with high accuracy.

The evaluator contains an FFT and a peak detector. They provide a rough estimation of the frequency spectrum of the signal. The evaluator adapts the system, so that there is exactly one filter pair configured for each spectral peak. If the input signal changes, one of two things can happen. If the change is just a small migration of peaks, then the notch filters will adapt themselves accordingly. However, if a new spectral component appears or an existing disappears, or the frequency change of an existing component is significant enough to show up in the FFT, then the system reconfigures itself by removing and/or adding filters.

This example application has been implemented using the standard MGA toolset. A simple modeling paradigm has been defined using the MGA metamodeling environment. The modeling paradigm is hierarchical signal flow environment extended with generative modeling capabilities. The figure below shows the metamodel of this paradigm.

The figure below shows the models of the example application in the top right corner. The basic architecture discussed above has been extended with some plotting capabilities to demonstrate the application visually. The bottom window shows the model of the adaptive filter bank. The components are not hooked up together, instead they are connected to the generator "SplitAndMerge". Part of the generator script is shown in the top left corner. Currently, a C++ API has been defined to serve as the interface to the models. It makes it possible to create and/or delete models and connections and to access object attributes. Notice that the generator is also hooked up to an architectural parameter called "Order". This is the parameter the evaluator can modify at runtime to change the structure of the filter bank.

The figure below shows the running application. The plots show the source signal, its spectrum, the output signal of the filter bank and its spectrum. In the bottom right hand corner, four pairs of numbers are displayed. They indicate that currently there are four band/notch filter branches in the filter bank. The first number is the current frequency of a spectral peak, while the number in parentheses is the original FFT estimation of the same peak.


ASC Home | Architecture | Generative Modeling | Example System | Publications