Computer optimised multiharmonic signals are designed to match a specified power spectrum as closely as possible. Two types of such signals can be designed using the Frequency Domain System Identification Toolbox in MATLAB.
The first type is a multisine (sum of harmonics) signal; this can take any value within the range between its minimum and maximum values. For linear system identification, the relative phases between the harmonics are optimised in order to minimise the peak-to-peak amplitude of the signal.
The second type is a discrete-interval binary signal, in which the objective of the optimisation is to maximise the amount of power in the specified harmonics. Since the signal is binary, the peak-to-peak amplitude can be clearly defined, and it is generally lower than that of a multisine signal with the same harmonic specification. However, for a binary signal, it is inevitable that some of the total signal power appears in the non-specified harmonics.
Multilevel multiharmonic signals are designed to retain the advantages of each type of signal, while reducing the disadvantages (McCormack, A. S., Godfrey, K. R. and Flower, J. O.: 'The design of multilevel multiharmonic signals for system identification', IEE Proceedings – Control Theory and Applications, 1995, 142, (3), pp. 247 – 252). The method described in this paper uses an algorithm based on swapping between the time and frequency domains, which maximises the minimum ratio between actual and specified Fourier coefficients. This may not be suitable for all applications, and this current version optimises the Time Factor of the signal instead. The Time Factor provides an indication of the time taken to achieve a minimum estimation accuracy of the frequency response of a system, at any of the specified harmonics (Pintelon, R. and Schoukens, J.: System Identification - A Frequency Domain Approach. John Wiley & Sons, Inc., Hoboken, NJ, 2012, 2nd edition, Section 5.2.1).
To run the multilev_new program, download the folder at the bottom of the page. Change the "Current Directory" in MATLAB to the location of the folder. The GUI is then run by typing "multilev" in the MATLAB command window. The use of the GUI requires MATLAB version 6.5 or above. However, for lower versions of MATLAB, the program can be run by typing "multilev_new" in the MATLAB command window; user input is through the keyboard.
If you make use of the multilev_new program in your research, you may like to include the following citation in your publication:
Tan, A. H. and Godfrey, K. R.: ‘An improved routine for designing multi-level multi-harmonic signals’, UKACC International Conference on Control, Bath, UK, 6 – 9 September 2004, Paper ID–027.