diff options
| author | wukong <wukong@longaeva> | 2026-04-10 23:46:12 -0700 |
|---|---|---|
| committer | wukong <wukong@longaeva> | 2026-04-10 23:46:12 -0700 |
| commit | 4c4eb1bd8f003b3b57707badd2dd089ed193a896 (patch) | |
| tree | 15b62907fffd70c46a9b4369df93ab33c6aa88ac /kalman_init.awk | |
| parent | e7d1781578e846a7b1d634cd43c8fab00a67b883 (diff) | |
renamed fir window generators;
minor edits to whitespace and comments for more consistent style;
Diffstat (limited to 'kalman_init.awk')
| -rw-r--r-- | kalman_init.awk | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/kalman_init.awk b/kalman_init.awk index 57f7bbd..757d80b 100644 --- a/kalman_init.awk +++ b/kalman_init.awk @@ -1,7 +1,8 @@ #!/usr/bin/awk -f -### kalman.awk -# kalman csv experiemnt +### kalman_init.awk +# kalman filter csv experiemnt + BEGIN { sign = "[+-]?" @@ -11,6 +12,8 @@ BEGIN { number = "^" sign "(" decimal "|" fraction ")" exponent "$" } + +# column headers NR == 1 { header_nf = NF for (n=1; n<=NF; n++) { @@ -18,12 +21,12 @@ NR == 1 { } } -NF != 0 { + +NF > 0 { print ORS NR ":" OFS $0 ORS - if (NF > max_nf) - max_nf = NF + (NF > nf_max) ? nf_max = NF : nf_max = nf_max - ### iterate over columns + # columns for (n=1; n<=max_nf; n++) { if ($n ~ number) { count[n] = ($n ~ number) + (last[n] ~ number) + (last2[n] ~ number) @@ -42,7 +45,7 @@ NF != 0 { meas_err[n] = sqrt(var[n]/count[n]) } - ### error covariance + # error covariance for (m=1; m<=max_nf; m++) { count[m,n]++ sum_xy[m,n] += 1 @@ -52,7 +55,7 @@ NF != 0 { print meas_cov[m,n], est_err_last_cov[m,n] } - ### kalman gain + # kalman gain if (count[n] <= 1) { Gk[n] = 1 est_err[n] = sqrt(diff[n]*diff[n]) + 2.0*sqrt(diff2[n]*diff2[n]) @@ -61,17 +64,17 @@ NF != 0 { else Gk[n] = est_err_last[n]/(est_err_last[n] + meas_err[n]) - ### update estimate and estimated error + # update estimate and estimated error est[n] = est_last[n] + Gk[n]*($n - est_last[n]) est_err[n] = (1.0 - Gk[n])*est_err_last[n] - ### visual check + # visual check printf "meas: " OFS OFMT OFS OFMT OFS OFMT, $n, meas_err[n], count[n] printf "d1: " OFS OFMT, diff[n] printf "d2: " OFS OFMT, diff2[n] printf "est: " OFS OFMT OFS OFMT OFS OFMT, est[n], est_err[n], Gk[n] - ### update previously remembered values + # update previously remembered values last2[n] = last[n] last[n] = $n diff_last2[n] = diff_last[n] @@ -86,3 +89,4 @@ NF != 0 { } } } + |
