checkin before refactoring authored by Lee McCuller's avatar Lee McCuller
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
> `v1.fit_sequence` > `v1.fit_sequence`
Version 1 smart fitter in IIRrational library. Uses SVD method with high order over fitting, then switches to nonlinear fits with heuristics to remove poles and zeros down to a reasonable system order. Version 1 smart fitter in iirrational library. Uses SVD method with high order over-fitting, then switches to nonlinear fits with heuristics to remove poles and zeros down to a reasonable system order.
## `1` initial ## `1` initial
...@@ -34,21 +34,21 @@ Performs the SVD for a rough initial guess ...@@ -34,21 +34,21 @@ Performs the SVD for a rough initial guess
> `if` > `if`
Chose the Poles SVD fitter as it had the smaller residual of 4.87e+02 vs. 2.35e+03 for the zeros Chose the Poles SVD fitter as it had the smaller residual of 8.74e+03 vs. 1.08e+04 for the zeros
### `1.5` seq_iter_3 ### `1.5` seq_iter_3
> `IIRrational.fit_poles, IIRrational.fit_zeros` > `RationalDiscFilter.fit_poles, RationalDiscFilter.fit_zeros`
First iterations, enforcing stabilized poles residual of 1.91e+02 First iterations, enforcing stabilized poles residual of 1.21e+03
![](plot-1-5.png) ![](plot-1-5.png)
### `1.6` seq_iter_4 ### `1.6` seq_iter_4
> `IIRrational.fit_poles, IIRrational.fit_zeros` > `RationalDiscFilter.fit_poles, RationalDiscFilter.fit_zeros`
First iterations, enforcing stabilized poles residual of 1.89e+02 First iterations, enforcing stabilized poles residual of 1.07e+03
![](plot-1-6.png) ![](plot-1-6.png)
...@@ -65,21 +65,20 @@ it requires gratuitous overfitting to reliably get good fits. ...@@ -65,21 +65,20 @@ it requires gratuitous overfitting to reliably get good fits.
![](plot-1-7.png) ![](plot-1-7.png)
## `2` optimize nonlinear ## `2` nonlinear pre-reduce and optimize
> `MultiReprFilter.optimize` > `MultiReprFilter.optimize`
ing nonlinear parameterizations, initial conservative order reduction (for speed), followed by a nonlinear optimization.
TODO: describe as used
![](plot-2.png) ![](plot-2.png)
## `3` optimize nonlinear minBW ## `3` optimize nonlinear after bandwidth limiting
> `MultiReprFilter.optimize` > `MultiReprFilter.optimize`
ing nonlinear parameterizations, ths limited in the nonlinear representation to half of the local average the frequency spacing.
TODO: describe as used Nonlinear optimization then applied.
![](plot-3.png) ![](plot-3.png)
...@@ -93,20 +92,22 @@ ID Pairs for order reduction ...@@ -93,20 +92,22 @@ ID Pairs for order reduction
![](plot-4-1.png) ![](plot-4-1.png)
### `4.2` duals_ID_2 ## `5` remove_negroots
> `MultiReprFilter.optimize` ## `6` remove_weakroots
ID Pairs for order reduction ## `7` remove_negroots
## `8` remove_negroots
![](plot-4-2.png) ## `9` flip mindelay
## `5` final ## `10` final
> `MultiReprFilter.optimize` > `MultiReprFilter.optimize`
ing nonlinear parameterizations, ing nonlinear parameterizations,
TODO: describe as used TODO: describe as used
![](plot-5.png) ![](plot-10.png)