... | @@ -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
|
|
|
|
|
|
|
|

|
|

|
|
|
|
|
|
|
|
### `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
|
|
|
|
|
|
|
|

|
|

|
|
|
|
|
|
|
|
### `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
|
|
|
|
|
|
|
|

|
|
|
|
|
|

|
|
### `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
|
|
|
|
|
|
|
|

|
|
|
|
|
|

|
|
### `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
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `1.7` seq_iter_3
|
|
|
|
|
|
|
|
> `IIRrational.fit_poles, IIRrational.fit_zeros`
|
|
|
|
|
|
|
|
First iterations, enforcing stabilized poles residual of 4.56e+02
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `1.8` seq_iter_4
|
|
|
|
|
|
|
|
> `IIRrational.fit_poles, IIRrational.fit_zeros`
|
|
|
|
|
|
|
|
First iterations, enforcing stabilized poles residual of 5.51e+02
|
|
|
|
|
|
|
|
|
|
|
|

|
|

|
|
|
|
|
|
### `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
|
|
|
|
|
|
|
|

|
|

|
|
|
|
|
|
|
|
## `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
|
|
|
|
|
|
|
|

|
|
|
|
|
|

|
|
## `3` optimize nonlinear minBW
|
|
|
|
|
|
## `3` order_reduce 1
|
|
|
|
|
|
|
|
### `3.1` duals_ID_1
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.2` duals_ID_2
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.3` duals_ID_3
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.4` duals_ID_4
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.5` duals_ID_5
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.6` duals_ID_6
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
ID Pairs for order reduction
|
|
ing nonlinear parameterizations,
|
|
|
|
TODO: describe as used
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.7` duals_ID_7
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.8` duals_ID_8
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.9` duals_ID_9
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.10` duals_ID_10
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.11` duals_ID_11
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.12` duals_ID_12
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.13` duals_ID_13
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.14` duals_ID_14
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.15` duals_ID_15
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.16` duals_ID_16
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.17` duals_ID_17
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### `3.18` duals_ID_18
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
## `4` flip mindelay
|
|
|
|
|
|
|
|
## `5` remove_weakroots
|
|

|
|
|
|
|
|
## `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
|
|
|
|
|
|
|
|

|
|
|
|
|
|

|
|
### `4.2` duals_ID_2
|
|
|
|
|
|
### `6.2` duals_ID_2
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
ID Pairs for order reduction
|
|
ID Pairs for order reduction
|
|
|
|
|
|
|
|

|
|
|
|
|
|

|
|
## `5` final
|
|
|
|
|
|
### `6.3` duals_ID_3
|
|
|
|
|
|
|
|
> `MultiReprFilter.optimize`
|
|
> `MultiReprFilter.optimize`
|
|
|
|
|
|
ID Pairs for order reduction
|
|
ing nonlinear parameterizations,
|
|
|
|
TODO: describe as used
|
|
|
|
|
|

|
|

|
|
|
|
|