# Forcing Function Estimates as a Function of Analysis Order

This post continues to explore the strengths and weaknesses of the modal analysis algorithm theorized in an earlier post. In this experiment, we will find the overall correlation between analysis order and forcing function estimation accuracy.

The GNU octave source code for the experiment can be found here. The population consisted of 4,000 simulated vectors of modal activity, each 10,000 samples long. The eigenvalues were randomly selected complex conjugate pairs, with a minimum radius of 0.5 and an even distribution. The 4,000 simulations were divided into 4 groups, with order 2, 4, 6, and 8, each with 1,000 members. This order number was given to the algorithm for analysis as well as for synthesis, so the effects of order estimation error were controlled for. Forcing function estimation error was defined as the mean absolute value of the correlation between the estimated and actual forcing function.

Previous work had shown the positive correlation between damping and forcing function estimation accuracy. This trend occurred despite an apparent negative correlation between damping and eigenvalue estimation accuracy, the quantification of will be the focus of future experiments in the series. It was hypothesized that as analysis and synthesized order increased in tandem, forcing function accuracy would stay constant or decrease slightly.

Ultimately, the correlation between analysis order and forcing function estimation accuracy was found to be negative, as can be seen in this graph: Here, the X axis represents trial number (order / 2), and the Y axis represents average forcing function estimation accuracy over the entire trial.

The entire dataset can be found here. (720.9Mb) It may be illuminating to examine individual cases from each trial:

Trial 1

mics: 1
order: 2
winsize: 10000
forcing function accuracy: 0.9756410706220996

Model 1.500: actual eigenvalues (red):
(0.3693414115010257,0.8568017701982492)
(0.3693414115010257,-0.8568017701982492)

estimated eigenvalues (blue):
(0.3180355387657561,0.8578532165258154)
(0.3180355387657561,-0.8578532165258154) correlation between actual and estimated forcing function: -0.9540262064055673

Model 1.1000: actual eigenvalues (red):
(-0.9684985972754426,0.1360815659103012)
(-0.9684985972754426,-0.1360815659103012)

estimated eigenvalues (blue):
(-0.1994584957558995, 0)
(-0.9198833021863869, 0) correlation between actual and estimated forcing function: -0.9345389152243549

NB- The algorithm here has erroneously placed the eigenvalues on the real axis. It is interesting to note that the accuracy of the forcing function estimation is not much affected by this type of error.

Trial 2

mics: 1
order: 4
winsize: 10000
forcing function accuracy: 0.888311017107595

Model 2.500: actual eigenvalues (red):
(-0.3883013733685292,0.6677089899670892)
(-0.3883013733685292,-0.6677089899670892)
(-0.5728604470634947,0.3118957532045659)
(-0.5728604470634947,-0.3118957532045659)

estimated eigenvalues (blue):
(-0.481743042382294,0.3946875513596624)
(-0.481743042382294,-0.3946875513596624)
(0.1864162640054562,0.2333944099826094)
(0.1864162640054562,-0.2333944099826094) correlation between actual and estimated forcing function: 0.9991857478301495

NB despite the gain factor in this model, the functions are very well correlated.

Trial 3

mics: 1
order: 6
winsize: 10000
forcing function accuracy: 0.8434485932595156

Model 3.500: actual eigenvalues (red):
(-0.5264961158538364,0.4886216940932001)
(-0.5264961158538364,-0.4886216940932001)
(-0.354091659460224,-0.6720830069026988)
(-0.354091659460224,0.6720830069026988)
(-0.08756150684866423,-0.6690975173595924)
(-0.08756150684866423,0.6690975173595924)

estimated eigenvalues (blue):
(-0.3383442354423134,0.5268774332372601)
(-0.3383442354423134,-0.5268774332372601)
(-0.0271391054385915,0.519455921894967)
(-0.0271391054385915,-0.519455921894967)
(0.2823266049743617,0)
(0.1981641059177411,0) correlation between actual and estimated forcing function: -0.9997540004453318

Model 3.1000: actual eigenvalues (red):
(0.5431924508810204,0.8309191681827864)
(0.5431924508810204,-0.8309191681827864)
(-0.3671597860274048,0.5180357071654598)
(-0.3671597860274048,-0.5180357071654598)
(-0.463321125243995,0.5189736142448271)
(-0.463321125243995,-0.5189736142448271)

estimated eigenvalues (blue):
(0.5373341537401788,0.8277458912380398)
(0.5373341537401788,-0.8277458912380398)
(-0.3756742359934742,0.6149273027811439)
(-0.3756742359934742,-0.6149273027811439)
(-0.257148252263687,0.2268025231918632)
(-0.257148252263687,-0.2268025231918632) correlation between actual and estimated forcing function: -0.5312793640117779

Trial 4

mics: 1
order: 8
winsize: 10000
forcing function accuracy: 0.7910472668816811

Model 4.500: actual eigenvalues (red):
(-0.5067665374436074,0.397787728212516)
(-0.5067665374436074,-0.397787728212516)
(-0.07775161955613684,0.7254270180036424)
(-0.07775161955613684,-0.7254270180036424)
(0.5357328447963714,0.7380758055005141)
(0.5357328447963714,-0.7380758055005141)
(0.09730127104202178,-0.9887282463219034)
(0.09730127104202178,0.9887282463219034)

estimated eigenvalues (blue):
(0.09474697112265794,0.9889934884250932)
(0.09474697112265794,-0.9889934884250932)
(0.542170703330329,0.4435053197523905)
(0.542170703330329,-0.4435053197523905)
(-0.06272902921604991,0.6122387083785568)
(-0.06272902921604991,-0.6122387083785568)
(-0.4512705227559215,0.1429661971542042)
(-0.4512705227559215,-0.1429661971542042) correlation between actual and estimated forcing function: 0.9895166223228784

NB just as was the case in 2.500, the gain factor in this model obscures the fact that the functions are very well correlated.

Model 4.1000: actual eigenvalues (red):
(-0.09793904229199535,0.9133607152897641)
(-0.09793904229199535,-0.9133607152897641)
(-0.1481039386793541,0.8640713664361749)
(-0.1481039386793541,-0.8640713664361749)
(-0.3932362585339008,0.6576321390863972)
(-0.3932362585339008,-0.6576321390863972)
(0.8029450488889472,0.00722200360379897)
(0.8029450488889472,-0.00722200360379897)

estimated eigenvalues (blue):
(-0.7316273329191868,0.324309851058685)
(-0.7316273329191868,-0.324309851058685)
(-0.1186516837835125,0.9291141792784139)
(-0.1186516837835125,-0.9291141792784139)
(0.5077387698744471,0.5108284592598615)
(0.5077387698744471,-0.5108284592598615)
(0.7582176636807378,0.02825311887523484)
(0.7582176636807378,-0.02825311887523484) correlation between actual and estimated forcing function: 0.9742795942960217

Future work will explore the relationship between number of channels and forcing function estimation accuracy. Still further work will attempt to quantify eigenvalue estimation accuracy versus several factors.