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