added mixer.*;clean olds; added lpf3, etc

This commit is contained in:
2022-09-10 22:38:13 +02:00
parent f3e30f3aa7
commit 13f9b3f8de
6 changed files with 70 additions and 77 deletions
+23 -2
View File
@@ -6,7 +6,7 @@
#include <math.h>
#include <filter.h>
void lpf_init(lpf_t *lpf, double freq) {
void lpf2_init(lpf2_t *lpf, double freq) {
lpf->x0 = 0.0;
lpf->x1 = 0.0;
@@ -16,7 +16,7 @@ void lpf_init(lpf_t *lpf, double freq) {
}
double lpf_apply(lpf_t *lpf, double x2, double dt) {
double lpf2_apply(lpf2_t *lpf, double x2, double dt) {
double k = dt / (lpf->rc + dt);
@@ -24,3 +24,24 @@ double lpf_apply(lpf_t *lpf, double x2, double dt) {
lpf->x0 = lpf->x0 + k * (lpf->x1 - lpf->x0);
return lpf->x0;
}
void lpf3_init(lpf3_t *lpf, double freq) {
lpf->x1 = 0.0;
lpf->x2 = 0.0;
lpf->x3 = 0.0;
double order = 2.0;
double c = 1.0 / sqrt(powf(2.0, 1.0 / order) - 1.0);
lpf->rc = 1.0 / (2.0 * c * M_PI * freq);
}
double lpf3_apply(lpf3_t *lpf, double x0, double dt) {
double k = dt / (lpf->rc + dt);
lpf->x1 = lpf->x1 + k * (x0 - lpf->x1);
lpf->x2 = lpf->x2 + k * (lpf->x1 - lpf->x2);
lpf->x3 = lpf->x3 + k * (lpf->x2 - lpf->x3);
return lpf->x3;
}