notebooks update authored by Lee McCuller's avatar Lee McCuller
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
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
### `1.1` initial_direct ### `1.1` initial_direct
...@@ -13,8 +12,7 @@ Version 1 smart fitter in IIRrational library. Uses SVD method with high order o ...@@ -13,8 +12,7 @@ Version 1 smart fitter in IIRrational library. Uses SVD method with high order o
initial guess without SVD technique initial guess without SVD technique
![](plot-1-1.png)
![Fitttt](plot-1-1.png)
### `1.2` initial_poles ### `1.2` initial_poles
...@@ -22,8 +20,7 @@ initial guess without SVD technique ...@@ -22,8 +20,7 @@ initial guess without SVD technique
Performs the SVD for a rough initial guess Performs the SVD for a rough initial guess
![](plot-1-2.png)
![Fitttt](plot-1-2.png)
### `1.3` initial_zeros ### `1.3` initial_zeros
...@@ -31,270 +28,85 @@ Performs the SVD for a rough initial guess ...@@ -31,270 +28,85 @@ Performs the SVD for a rough initial guess
Performs the SVD for a rough initial guess Performs the SVD for a rough initial guess
![](plot-1-3.png)
![Fitttt](plot-1-3.png) ### `1.4` choose poles
### `1.4` choose direct
> `if` > `if`
Chose the direct (non-SVD) fitter as it had the smallest residual of 2.94e+02 Chose the Poles SVD fitter as it had the smaller residual of 4.87e+02 vs. 2.35e+03 for the zeros
### `1.5` seq_iter_1 ### `1.5` seq_iter_3
> `IIRrational.fit_poles, IIRrational.fit_zeros` > `IIRrational.fit_poles, IIRrational.fit_zeros`
First iterations, enforcing mindelay and stabilized poles residual of 1.46e+13 First iterations, enforcing stabilized poles residual of 1.91e+02
![](plot-1-5.png)
![Fitttt](plot-1-5.png) ### `1.6` seq_iter_4
### `1.6` seq_iter_2
> `IIRrational.fit_poles, IIRrational.fit_zeros` > `IIRrational.fit_poles, IIRrational.fit_zeros`
First iterations, enforcing stabilized poles residual of 2.81e+02 First iterations, enforcing stabilized poles residual of 1.89e+02
![Fitttt](plot-1-6.png)
### `1.7` seq_iter_3
> `IIRrational.fit_poles, IIRrational.fit_zeros`
First iterations, enforcing stabilized poles residual of 4.56e+02
![Fitttt](plot-1-7.png)
### `1.8` seq_iter_4
> `IIRrational.fit_poles, IIRrational.fit_zeros`
First iterations, enforcing stabilized poles residual of 5.51e+02
![Fitttt](plot-1-8.png) ![](plot-1-6.png)
### `1.9` Final ### `1.7` Final
> `SVD_method` > `SVD_method`
Uses SVD to create initial guess of fit for data, followed by several iterative fits create initial guess of fit for data, followed by several iterative fits
(see reference ???). (see reference ???).
* It is a linear method, finding global optimum (nonlocal). This makes it get stuck if systematics are bad. To prevent this, * It is a linear method, finding global optimum (nonlocal). This makes it get stuck if systematics are bad. To prevent this,
it requires gratuitous overfitting to reliably get good fits. it requires gratuitous overfitting to reliably get good fits.
* It requires a nyquist frequency that is very low, near the last data point. This can cause artifacts due to phasing discontinuity near the nyquist. * It requires a nyquist frequency that is very low, near the last data point. This can cause artifacts due to phasing discontinuity near the nyquist.
* The provided nyquist frequency is shifted up at the end, removing the real poles/zeros that are typically due to phasing discontinuity * The provided nyquist frequency is shifted up at the end, removing the real poles/zeros that are typically due to phasing discontinuity
![](plot-1-7.png)
![Fitttt](plot-1-9.png)
## `2` optimize nonlinear ## `2` optimize nonlinear
> `MultiReprFilter.optimize` > `MultiReprFilter.optimize`
Optimizes using nonlinear parameterizations, ing nonlinear parameterizations,
TODO: describe as used TODO: describe as used
![](plot-2.png)
![Fitttt](plot-2.png) ## `3` optimize nonlinear minBW
## `3` order_reduce 1
### `3.1` duals_ID_1
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-1.png)
### `3.2` duals_ID_2
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-2.png)
### `3.3` duals_ID_3
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-3.png)
### `3.4` duals_ID_4
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-4.png)
### `3.5` duals_ID_5
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-5.png)
### `3.6` duals_ID_6
> `MultiReprFilter.optimize` > `MultiReprFilter.optimize`
ID Pairs for order reduction ing nonlinear parameterizations,
TODO: describe as used
![Fitttt](plot-3-6.png)
### `3.7` duals_ID_7
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-7.png)
### `3.8` duals_ID_8
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-8.png)
### `3.9` duals_ID_9
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-9.png)
### `3.10` duals_ID_10
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-10.png)
### `3.11` duals_ID_11
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-11.png)
### `3.12` duals_ID_12
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-12.png)
### `3.13` duals_ID_13
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-13.png)
### `3.14` duals_ID_14
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-14.png)
### `3.15` duals_ID_15
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-15.png)
### `3.16` duals_ID_16
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-16.png)
### `3.17` duals_ID_17
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-17.png)
### `3.18` duals_ID_18
> `MultiReprFilter.optimize`
ID Pairs for order reduction
![Fitttt](plot-3-18.png)
## `4` flip mindelay
## `5` remove_weakroots ![](plot-3.png)
## `6` order_reduce 2 ## `4` order_reduce 1
### `6.1` duals_ID_1 ### `4.1` duals_ID_1
> `MultiReprFilter.optimize` > `MultiReprFilter.optimize`
ID Pairs for order reduction ID Pairs for order reduction
![](plot-4-1.png)
![Fitttt](plot-6-1.png) ### `4.2` duals_ID_2
### `6.2` duals_ID_2
> `MultiReprFilter.optimize` > `MultiReprFilter.optimize`
ID Pairs for order reduction ID Pairs for order reduction
![](plot-4-2.png)
![Fitttt](plot-6-2.png) ## `5` final
### `6.3` duals_ID_3
> `MultiReprFilter.optimize` > `MultiReprFilter.optimize`
ID Pairs for order reduction ing nonlinear parameterizations,
TODO: describe as used
![Fitttt](plot-6-3.png) ![](plot-5.png)