From 05408915b17a2ba2c31666614d1895c338b8b841 Mon Sep 17 00:00:00 2001 From: Matt Jenkins Date: Tue, 2 Oct 2018 00:13:22 +0100 Subject: [PATCH] Improved 96000 coefficients --- iircoeff | 76 --- iircoeff.c | 133 +++++ iircoeff.pl | 76 +++ src/davaguine/jeq/core/IIRBase.java | 894 ++++++++++++++-------------- 4 files changed, 660 insertions(+), 519 deletions(-) delete mode 100755 iircoeff create mode 100644 iircoeff.c create mode 100755 iircoeff.pl diff --git a/iircoeff b/iircoeff deleted file mode 100755 index 85d75f5..0000000 --- a/iircoeff +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/perl - -use Math::Trig; - -my $fs = 96000; - -printCo(0, 20, 25, $fs); -printCo(20, 25, 31.5, $fs); -printCo(25, 31.5, 40, $fs); -printCo(31.5, 40, 50, $fs); -printCo(40, 50, 63, $fs); -printCo(50, 63, 80, $fs); -printCo(63, 80, 100, $fs); -printCo(80, 100, 125, $fs); -printCo(100, 125, 160, $fs); -printCo(125, 160, 200, $fs); -printCo(160, 200, 250, $fs); -printCo(200, 250, 315, $fs); -printCo(250, 315, 400, $fs); -printCo(315, 400, 500, $fs); -printCo(400, 500, 630, $fs); -printCo(500, 630, 800, $fs); -printCo(630, 800, 1000, $fs); -printCo(800, 1000, 1250, $fs); -printCo(1000, 1250, 1600, $fs); -printCo(1250, 1600, 2000, $fs); -printCo(1600, 2000, 2500, $fs); -printCo(2000, 2500, 3150, $fs); -printCo(2500, 3150, 4000, $fs); -printCo(3150, 4000, 5000, $fs); -printCo(4000, 5000, 6300, $fs); -printCo(5000, 6300, 8000, $fs); -printCo(6300, 8000, 10000, $fs); -printCo(8000, 10000, 12500, $fs); -printCo(10000, 12500, 16000, $fs); -printCo(12500, 16000, 20000, $fs); -printCo(16000, 20000, $fs / 2, $fs); - -sub printCo($$$$) { - my $fl = shift; - my $f0 = shift; - my $fh = shift; - my $fs = shift; - - my $f1 = $f0 - (($f0 - $fl) / 2); - my $f2 = $f0 + (($fh - $f0) / 2); - - @coeff = coefficient($f0, $fs, $f1, $f2); - print "/* $f0 Hz */\n"; - printf("new IIRCoefficients(%.10e, %.10e, %.10e),\n" , $coeff[1] * 2, $coeff[0] * 2, $coeff[2] * 2); -} - - -sub coefficient($$$$) { - my $f0 = shift; - my $fs = shift; - my $f1 = shift; - my $f2 = shift; - - my $q = $f0 / ($f2 - $f1); - - my $pi = 3.141592653; - - my $theta0 = 2 * $pi * ($f0 / $fs); - - my $thetaOverTwoQ = $theta0 / (2 * $q); - - my $beta = 0.5 * ((1 - tan($thetaOverTwoQ)) / (1 + tan($thetaOverTwoQ))); - - my $gamma = (0.5 + $beta) * cos($theta0); - - my $alpha = (0.5 - $beta) / 2; - - return ($alpha, $beta, $gamma); -} - diff --git a/iircoeff.c b/iircoeff.c new file mode 100644 index 0000000..c54f159 --- /dev/null +++ b/iircoeff.c @@ -0,0 +1,133 @@ +/* + * Copyright (C) 2002-2006 Felipe Rivera + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * + * Coefficient stuff + * + * $Id: iir_cfs.c,v 1.2 2006/01/15 00:17:46 liebremx Exp $ + */ + +#include +#include +#include + +static const double band_f031[] = +{ 20,25,31.5,40,50,63,80,100,125,160,200,250,315,400,500,630,800, + 1000,1250,1600,2000,2500,3150,4000,5000,6300,8000,10000,12500,16000,20000 +}; + +#define GAIN_F0 1.0 +#define GAIN_F1 GAIN_F0 / M_SQRT2 + +#define SAMPLING_FREQ 44100.0 +#define TETA(f) (2*M_PI*(double)f/sample_frequency) +#define TWOPOWER(value) (value * value) + +#define BETA2(tf0, tf) \ +(TWOPOWER(GAIN_F1)*TWOPOWER(cos(tf0)) \ + - 2.0 * TWOPOWER(GAIN_F1) * cos(tf) * cos(tf0) \ + + TWOPOWER(GAIN_F1) \ + - TWOPOWER(GAIN_F0) * TWOPOWER(sin(tf))) +#define BETA1(tf0, tf) \ + (2.0 * TWOPOWER(GAIN_F1) * TWOPOWER(cos(tf)) \ + + TWOPOWER(GAIN_F1) * TWOPOWER(cos(tf0)) \ + - 2.0 * TWOPOWER(GAIN_F1) * cos(tf) * cos(tf0) \ + - TWOPOWER(GAIN_F1) + TWOPOWER(GAIN_F0) * TWOPOWER(sin(tf))) +#define BETA0(tf0, tf) \ + (0.25 * TWOPOWER(GAIN_F1) * TWOPOWER(cos(tf0)) \ + - 0.5 * TWOPOWER(GAIN_F1) * cos(tf) * cos(tf0) \ + + 0.25 * TWOPOWER(GAIN_F1) \ + - 0.25 * TWOPOWER(GAIN_F0) * TWOPOWER(sin(tf))) + +#define GAMMA(beta, tf0) ((0.5 + beta) * cos(tf0)) +#define ALPHA(beta) ((0.5 - beta)/2.0) + +/************* + * Functions * + *************/ + +/* Get the band_f031 at both sides of F0. These will be cut at -3dB */ +static void find_f1_and_f2(double f0, double octave_percent, double *f1, double *f2) +{ + double octave_factor = pow(2.0, octave_percent/2.0); + *f1 = f0/octave_factor; + *f2 = f0*octave_factor; +} + +/* Find the quadratic root + * Always return the smallest root */ +static int find_root(double a, double b, double c, double *x0) { + double k = c-((b*b)/(4.*a)); + double h = -(b/(2.*a)); + double x1 = 0.; + if (-(k/a) < 0.) + return -1; + *x0 = h - sqrt(-(k/a)); + x1 = h + sqrt(-(k/a)); + if (x1 < *x0) + *x0 = x1; + return 0; +} + +void calc_coeffs(double sample_frequency) +{ + int i, n; + double f1, f2; + double x0; + + printf(" public final static IIRCoefficients iir_cf31_%d[] = {\n", (int)sample_frequency); + for (i = 0; i < 31; i++) { + + /* Find -3dB frequencies for the center freq */ + find_f1_and_f2(band_f031[i], 1.0/3.0, &f1, &f2); + /* Find Beta */ + if ( find_root( + BETA2(TETA(band_f031[i]), TETA(f1)), + BETA1(TETA(band_f031[i]), TETA(f1)), + BETA0(TETA(band_f031[i]), TETA(f1)), + &x0) == 0) + { + /* Got a solution, now calculate the rest of the factors */ + /* Take the smallest root always (find_root returns the smallest one) + * + * NOTE: The IIR equation is + * y[n] = 2 * (alpha*(x[n]-x[n-2]) + gamma*y[n-1] - beta*y[n-2]) + * Now the 2 factor has been distributed in the coefficients + */ + /* Now store the coefficients */ + printf(" /* %.1f Hz */\n", band_f031[i]); + printf(" new IIRCoefficients(%.10e, %010e, %.10e),\n", + (double)(2.0 * x0), + (double)(2.0 * ALPHA(x0)), + (double)(2.0 * GAMMA(x0, TETA(band_f031[i]))) + ); + } else { + printf(" **** Where are the roots?\n"); + } + }// for i + printf(" };\n"); +} + +int main(int argc, char **argv) { + if (argc != 2) { + printf("Usage: iircoeff \n"); + return -1; + } + + double f = strtod(argv[1], NULL); + calc_coeffs(f); +} diff --git a/iircoeff.pl b/iircoeff.pl new file mode 100755 index 0000000..2f31b94 --- /dev/null +++ b/iircoeff.pl @@ -0,0 +1,76 @@ +#!/usr/bin/perl + +use Math::Trig; + +my $fs = 48000; +my $q = 1.414; + +printCo(20, $fs, $q); +printCo(25, $fs, $q); +printCo(31.5, $fs, $q); +printCo(40, $fs, $q); +printCo(50, $fs, $q); +printCo(63, $fs, $q); +printCo(80, $fs, $q); +printCo(100, $fs, $q); +printCo(125, $fs, $q); +printCo(160, $fs, $q); +printCo(200, $fs, $q); +printCo(250, $fs, $q); +printCo(315, $fs, $q); +printCo(400, $fs, $q); +printCo(500, $fs, $q); +printCo(630, $fs, $q); +printCo(800, $fs, $q); +printCo(1000, $fs, $q); +printCo(1250, $fs, $q); +printCo(1600, $fs, $q); +printCo(2000, $fs, $q); +printCo(2500, $fs, $q); +printCo(3150, $fs, $q); +printCo(4000, $fs, $q); +printCo(5000, $fs, $q); +printCo(6300, $fs, $q); +printCo(8000, $fs, $q); +printCo(10000, $fs, $q); +printCo(12500, $fs, $q); +printCo(16000, $fs, $q); +printCo(20000, $fs, $q); + +sub printCo($$$$) { + my $f0 = shift; + my $fs = shift; + my $q = shift; + + + @coeff = coefficient($f0, $fs, $q); + print "/* $f0 Hz */\n"; + printf("new IIRCoefficients(%.10e, %.10e, %.10e),\n" , $coeff[1] * 2, $coeff[0] * 2, $coeff[2] * 2); +} + + +sub coefficient($$$$) { + my $f0 = shift; + my $fs = shift; + my $q = shift; + + my $q2 = $q * $q; + + my $f1 = $f0 * (sqrt(1 + (1 / (4 * $q2))) - (1 / (2 * $q))); + my $f2 = $f0 * (sqrt(1 + (1 / (4 * $q2))) + (1 / (2 * $q))); + + my $pi = 3.141592653; + + my $theta0 = 2 * $pi * ($f0 / $fs); + + my $thetaOverTwoQ = $theta0 / (2 * $q); + + my $beta = 0.5 * ((1 - tan($thetaOverTwoQ)) / (1 + tan($thetaOverTwoQ))); + + my $gamma = (0.5 + $beta) * cos($theta0); + + my $alpha = (0.5 - $beta) / 2; + + return ($alpha, $beta, $gamma); +} + diff --git a/src/davaguine/jeq/core/IIRBase.java b/src/davaguine/jeq/core/IIRBase.java index e557ac5..73134bb 100644 --- a/src/davaguine/jeq/core/IIRBase.java +++ b/src/davaguine/jeq/core/IIRBase.java @@ -26,453 +26,461 @@ package davaguine.jeq.core; public class IIRBase { /* BETA, ALPHA, GAMMA */ public final static IIRCoefficients iir_cf10_11k_11025[] = { - /* 31 Hz*/ - new IIRCoefficients(9.8758524689e-01, 6.2073765555e-03, 1.9872750693e+00), - /* 62 Hz*/ - new IIRCoefficients(9.7532461998e-01, 1.2337690008e-02, 1.9740916593e+00), - /* 125 Hz*/ - new IIRCoefficients(9.5087485437e-01, 2.4562572817e-02, 1.9459267562e+00), - /* 250 Hz*/ - new IIRCoefficients(9.0416308662e-01, 4.7918456688e-02, 1.8848691023e+00), - /* 500 Hz*/ - new IIRCoefficients(8.1751373987e-01, 9.1243130064e-02, 1.7442229115e+00), - /* 1k Hz*/ - new IIRCoefficients(6.6840529852e-01, 1.6579735074e-01, 1.4047189863e+00), - /* 2k Hz*/ - new IIRCoefficients(4.4858358977e-01, 2.7570820511e-01, 6.0517475334e-01), - /* 3k Hz*/ - new IIRCoefficients(3.1012671838e-01, 3.4493664081e-01, -1.8141012760e-01), - /* 4k Hz*/ - new IIRCoefficients(2.4198119087e-01, 3.7900940457e-01, -8.0845085113e-01), - /* 5.5k Hz*/ - new IIRCoefficients(3.3453245058e-01, 3.3273377471e-01, -1.3344985880e+00) + /* 31 Hz*/ + new IIRCoefficients(9.8758524689e-01, 6.2073765555e-03, 1.9872750693e+00), + /* 62 Hz*/ + new IIRCoefficients(9.7532461998e-01, 1.2337690008e-02, 1.9740916593e+00), + /* 125 Hz*/ + new IIRCoefficients(9.5087485437e-01, 2.4562572817e-02, 1.9459267562e+00), + /* 250 Hz*/ + new IIRCoefficients(9.0416308662e-01, 4.7918456688e-02, 1.8848691023e+00), + /* 500 Hz*/ + new IIRCoefficients(8.1751373987e-01, 9.1243130064e-02, 1.7442229115e+00), + /* 1k Hz*/ + new IIRCoefficients(6.6840529852e-01, 1.6579735074e-01, 1.4047189863e+00), + /* 2k Hz*/ + new IIRCoefficients(4.4858358977e-01, 2.7570820511e-01, 6.0517475334e-01), + /* 3k Hz*/ + new IIRCoefficients(3.1012671838e-01, 3.4493664081e-01, -1.8141012760e-01), + /* 4k Hz*/ + new IIRCoefficients(2.4198119087e-01, 3.7900940457e-01, -8.0845085113e-01), + /* 5.5k Hz*/ + new IIRCoefficients(3.3453245058e-01, 3.3273377471e-01, -1.3344985880e+00) }; public final static IIRCoefficients iir_cf10_22k_22050[] = { - /* 31 Hz*/ - new IIRCoefficients(9.9377323686e-01, 3.1133815717e-03, 1.9936954495e+00), - /* 62 Hz*/ - new IIRCoefficients(9.8758524689e-01, 6.2073765555e-03, 1.9872750693e+00), - /* 125 Hz*/ - new IIRCoefficients(9.7512812040e-01, 1.2435939802e-02, 1.9738753198e+00), - /* 250 Hz*/ - new IIRCoefficients(9.5087485437e-01, 2.4562572817e-02, 1.9459267562e+00), - /* 500 Hz*/ - new IIRCoefficients(9.0416308662e-01, 4.7918456688e-02, 1.8848691023e+00), - /* 1k Hz*/ - new IIRCoefficients(8.1751373987e-01, 9.1243130064e-02, 1.7442229115e+00), - /* 2k Hz*/ - new IIRCoefficients(6.6840529852e-01, 1.6579735074e-01, 1.4047189863e+00), - /* 4k Hz*/ - new IIRCoefficients(4.4858358977e-01, 2.7570820511e-01, 6.0517475334e-01), - /* 8k Hz*/ - new IIRCoefficients(2.4198119087e-01, 3.7900940457e-01, -8.0845085113e-01), - /* 11k Hz*/ - new IIRCoefficients(3.3453245058e-01, 3.3273377471e-01, -1.3344985880e+00) + /* 31 Hz*/ + new IIRCoefficients(9.9377323686e-01, 3.1133815717e-03, 1.9936954495e+00), + /* 62 Hz*/ + new IIRCoefficients(9.8758524689e-01, 6.2073765555e-03, 1.9872750693e+00), + /* 125 Hz*/ + new IIRCoefficients(9.7512812040e-01, 1.2435939802e-02, 1.9738753198e+00), + /* 250 Hz*/ + new IIRCoefficients(9.5087485437e-01, 2.4562572817e-02, 1.9459267562e+00), + /* 500 Hz*/ + new IIRCoefficients(9.0416308662e-01, 4.7918456688e-02, 1.8848691023e+00), + /* 1k Hz*/ + new IIRCoefficients(8.1751373987e-01, 9.1243130064e-02, 1.7442229115e+00), + /* 2k Hz*/ + new IIRCoefficients(6.6840529852e-01, 1.6579735074e-01, 1.4047189863e+00), + /* 4k Hz*/ + new IIRCoefficients(4.4858358977e-01, 2.7570820511e-01, 6.0517475334e-01), + /* 8k Hz*/ + new IIRCoefficients(2.4198119087e-01, 3.7900940457e-01, -8.0845085113e-01), + /* 11k Hz*/ + new IIRCoefficients(3.3453245058e-01, 3.3273377471e-01, -1.3344985880e+00) }; - public final static IIRCoefficients iir_cf10_44100[] = { - /* 31 Hz*/ - new IIRCoefficients(9.9688176273e-01, 1.5591186337e-03, 1.9968622855e+00), - /* 62 Hz*/ - new IIRCoefficients(9.9377323686e-01, 3.1133815717e-03, 1.9936954495e+00), - /* 125 Hz*/ - new IIRCoefficients(9.8748575691e-01, 6.2571215431e-03, 1.9871705722e+00), - /* 250 Hz*/ - new IIRCoefficients(9.7512812040e-01, 1.2435939802e-02, 1.9738753198e+00), - /* 500 Hz*/ - new IIRCoefficients(9.5087485437e-01, 2.4562572817e-02, 1.9459267562e+00), - /* 1k Hz*/ - new IIRCoefficients(9.0416308662e-01, 4.7918456688e-02, 1.8848691023e+00), - /* 2k Hz*/ - new IIRCoefficients(8.1751373987e-01, 9.1243130064e-02, 1.7442229115e+00), - /* 4k Hz*/ - new IIRCoefficients(6.6840529852e-01, 1.6579735074e-01, 1.4047189863e+00), - /* 8k Hz*/ - new IIRCoefficients(4.4858358977e-01, 2.7570820511e-01, 6.0517475334e-01), - /* 16k Hz*/ - new IIRCoefficients(2.4198119087e-01, 3.7900940457e-01, -8.0845085113e-01) - }; - public final static IIRCoefficients iir_cf10_48000[] = { - /* 31 Hz*/ - new IIRCoefficients(9.9713475915e-01, 1.4326204244e-03, 1.9971183163e+00), - /* 62 Hz*/ - new IIRCoefficients(9.9427771143e-01, 2.8611442874e-03, 1.9942120343e+00), - /* 125 Hz*/ - new IIRCoefficients(9.8849666727e-01, 5.7516663664e-03, 1.9882304829e+00), - /* 250 Hz*/ - new IIRCoefficients(9.7712566171e-01, 1.1437169144e-02, 1.9760670839e+00), - /* 500 Hz*/ - new IIRCoefficients(9.5477456091e-01, 2.2612719547e-02, 1.9505892385e+00), - /* 1k Hz*/ - new IIRCoefficients(9.1159452679e-01, 4.4202736607e-02, 1.8952405706e+00), - /* 2k Hz*/ - new IIRCoefficients(8.3100647694e-01, 8.4496761532e-02, 1.7686164442e+00), - /* 4k Hz*/ - new IIRCoefficients(6.9062328809e-01, 1.5468835596e-01, 1.4641227157e+00), - /* 8k Hz*/ - new IIRCoefficients(4.7820368352e-01, 2.6089815824e-01, 7.3910184176e-01), - /* 16k Hz*/ - new IIRCoefficients(2.5620076154e-01, 3.7189961923e-01, -6.2810038077e-01) - }; - public final static IIRCoefficients iir_cf15_44100[] = { - /* 25 Hz*/ - new IIRCoefficients(9.9834072702e-01, 8.2963648917e-04, 1.9983280505e+00), - /* 40 Hz*/ - new IIRCoefficients(9.9734652663e-01, 1.3267366865e-03, 1.9973140908e+00), - /* 63 Hz*/ - new IIRCoefficients(9.9582396353e-01, 2.0880182333e-03, 1.9957435641e+00), - /* 100 Hz*/ - new IIRCoefficients(9.9337951306e-01, 3.3102434709e-03, 1.9931771947e+00), - /* 160 Hz*/ - new IIRCoefficients(9.8942832039e-01, 5.2858398053e-03, 1.9889114258e+00), - /* 250 Hz*/ - new IIRCoefficients(9.8353109588e-01, 8.2344520610e-03, 1.9822729654e+00), - /* 400 Hz*/ - new IIRCoefficients(9.7378088082e-01, 1.3109559588e-02, 1.9705764276e+00), - /* 630 Hz*/ - new IIRCoefficients(9.5901979676e-01, 2.0490101620e-02, 1.9511333590e+00), - /* 1k Hz*/ - new IIRCoefficients(9.3574903986e-01, 3.2125480071e-02, 1.9161350100e+00), - /* 1.6k Hz*/ - new IIRCoefficients(8.9923630641e-01, 5.0381846793e-02, 1.8501014162e+00), - /* 2.5k Hz*/ - new IIRCoefficients(8.4722457681e-01, 7.6387711593e-02, 1.7312785699e+00), - /* 4k Hz*/ - new IIRCoefficients(7.6755471307e-01, 1.1622264346e-01, 1.4881981417e+00), - /* 6.3k Hz*/ - new IIRCoefficients(6.6125377473e-01, 1.6937311263e-01, 1.0357747868e+00), - /* 10k Hz*/ - new IIRCoefficients(5.2683267950e-01, 2.3658366025e-01, 2.2218349322e-01), - /* 16k Hz*/ - new IIRCoefficients(4.0179628792e-01, 2.9910185604e-01, -9.1248032613e-01) - }; - public final static IIRCoefficients iir_cf15_48000[] = { - /* 25 Hz*/ - new IIRCoefficients(9.9847546664e-01, 7.6226668143e-04, 1.9984647656e+00), - /* 40 Hz*/ - new IIRCoefficients(9.9756184654e-01, 1.2190767289e-03, 1.9975344645e+00), - /* 63 Hz*/ - new IIRCoefficients(9.9616261379e-01, 1.9186931041e-03, 1.9960947369e+00), - /* 100 Hz*/ - new IIRCoefficients(9.9391578543e-01, 3.0421072865e-03, 1.9937449618e+00), - /* 160 Hz*/ - new IIRCoefficients(9.9028307215e-01, 4.8584639242e-03, 1.9898465702e+00), - /* 250 Hz*/ - new IIRCoefficients(9.8485897264e-01, 7.5705136795e-03, 1.9837962543e+00), - /* 400 Hz*/ - new IIRCoefficients(9.7588512657e-01, 1.2057436715e-02, 1.9731772447e+00), - /* 630 Hz*/ - new IIRCoefficients(9.6228521814e-01, 1.8857390928e-02, 1.9556164694e+00), - /* 1k Hz*/ - new IIRCoefficients(9.4080933132e-01, 2.9595334338e-02, 1.9242054384e+00), - /* 1.6k Hz*/ - new IIRCoefficients(9.0702059196e-01, 4.6489704022e-02, 1.8653476166e+00), - /* 2.5k Hz*/ - new IIRCoefficients(8.5868004289e-01, 7.0659978553e-02, 1.7600401337e+00), - /* 4k Hz*/ - new IIRCoefficients(7.8409610788e-01, 1.0795194606e-01, 1.5450725522e+00), - /* 6.3k Hz*/ - new IIRCoefficients(6.8332861002e-01, 1.5833569499e-01, 1.1426447155e+00), - /* 10k Hz*/ - new IIRCoefficients(5.5267518228e-01, 2.2366240886e-01, 4.0186190803e-01), - /* 16k Hz*/ - new IIRCoefficients(4.1811888447e-01, 2.9094055777e-01, -7.0905944223e-01) - }; - public final static IIRCoefficients iir_cf25_44100[] = { - /* 20 Hz*/ - new IIRCoefficients(9.9934037157e-01, 3.2981421662e-04, 1.9993322545e+00), - /* 31.5 Hz*/ - new IIRCoefficients(9.9896129025e-01, 5.1935487310e-04, 1.9989411587e+00), - /* 40 Hz*/ - new IIRCoefficients(9.9868118265e-01, 6.5940867495e-04, 1.9986487252e+00), - /* 50 Hz*/ - new IIRCoefficients(9.9835175161e-01, 8.2412419683e-04, 1.9983010452e+00), - /* 80 Hz*/ - new IIRCoefficients(9.9736411067e-01, 1.3179446674e-03, 1.9972343673e+00), - /* 100 Hz*/ - new IIRCoefficients(9.9670622662e-01, 1.6468866919e-03, 1.9965035707e+00), - /* 125 Hz*/ - new IIRCoefficients(9.9588448566e-01, 2.0577571681e-03, 1.9955679690e+00), - /* 160 Hz*/ - new IIRCoefficients(9.9473519326e-01, 2.6324033689e-03, 1.9942169198e+00), - /* 250 Hz*/ - new IIRCoefficients(9.9178600786e-01, 4.1069960678e-03, 1.9905226414e+00), - /* 315 Hz*/ - new IIRCoefficients(9.8966154150e-01, 5.1692292513e-03, 1.9876580847e+00), - /* 400 Hz*/ - new IIRCoefficients(9.8689036168e-01, 6.5548191616e-03, 1.9836646251e+00), - /* 500 Hz*/ - new IIRCoefficients(9.8364027156e-01, 8.1798642207e-03, 1.9786090689e+00), - /* 800 Hz*/ - new IIRCoefficients(9.7395577681e-01, 1.3022111597e-02, 1.9611472340e+00), - /* 1k Hz*/ - new IIRCoefficients(9.6755437936e-01, 1.6222810321e-02, 1.9476180811e+00), - /* 1.25k Hz*/ - new IIRCoefficients(9.5961458750e-01, 2.0192706249e-02, 1.9286193446e+00), - /* 1.6k Hz*/ - new IIRCoefficients(9.4861481164e-01, 2.5692594182e-02, 1.8982024567e+00), - /* 2.5k Hz*/ - new IIRCoefficients(9.2095325455e-01, 3.9523372724e-02, 1.8003794694e+00), - /* 3.15k Hz*/ - new IIRCoefficients(9.0153642498e-01, 4.9231787512e-02, 1.7132251201e+00), - /* 4k Hz*/ - new IIRCoefficients(8.7685876255e-01, 6.1570618727e-02, 1.5802270232e+00), - /* 5k Hz*/ - new IIRCoefficients(8.4886734822e-01, 7.5566325889e-02, 1.3992391376e+00), - /* 8k Hz*/ - new IIRCoefficients(7.7175298860e-01, 1.1412350570e-01, 7.4018523020e-01), - /* 10k Hz*/ - new IIRCoefficients(7.2627049462e-01, 1.3686475269e-01, 2.5120552756e-01), - /* 12.5k Hz*/ - new IIRCoefficients(6.7674787974e-01, 1.6162606013e-01, -3.4978377639e-01), - /* 16k Hz*/ - new IIRCoefficients(6.2482197550e-01, 1.8758901225e-01, -1.0576558797e+00), - /* 20k Hz*/ - new IIRCoefficients(6.1776148240e-01, 1.9111925880e-01, -1.5492465594e+00) - }; - public final static IIRCoefficients iir_cf25_48000[] = { - /* 20 Hz*/ - new IIRCoefficients(9.9939388451e-01, 3.0305774630e-04, 1.9993870327e+00), - /* 31.5 Hz*/ - new IIRCoefficients(9.9904564663e-01, 4.7717668529e-04, 1.9990286528e+00), - /* 40 Hz*/ - new IIRCoefficients(9.9878827195e-01, 6.0586402557e-04, 1.9987608731e+00), - /* 50 Hz*/ - new IIRCoefficients(9.9848556942e-01, 7.5721528829e-04, 1.9984427652e+00), - /* 80 Hz*/ - new IIRCoefficients(9.9757801538e-01, 1.2109923088e-03, 1.9974684869e+00), - /* 100 Hz*/ - new IIRCoefficients(9.9697343933e-01, 1.5132803374e-03, 1.9968023538e+00), - /* 125 Hz*/ - new IIRCoefficients(9.9621823598e-01, 1.8908820086e-03, 1.9959510180e+00), - /* 160 Hz*/ - new IIRCoefficients(9.9516191728e-01, 2.4190413595e-03, 1.9947243453e+00), - /* 250 Hz*/ - new IIRCoefficients(9.9245085008e-01, 3.7745749576e-03, 1.9913840669e+00), - /* 315 Hz*/ - new IIRCoefficients(9.9049749914e-01, 4.7512504310e-03, 1.9888056233e+00), - /* 400 Hz*/ - new IIRCoefficients(9.8794899744e-01, 6.0255012789e-03, 1.9852245824e+00), - /* 500 Hz*/ - new IIRCoefficients(9.8495930023e-01, 7.5203498850e-03, 1.9807093500e+00), - /* 800 Hz*/ - new IIRCoefficients(9.7604570090e-01, 1.1977149551e-02, 1.9652207158e+00), - /* 1k Hz*/ - new IIRCoefficients(9.7014963927e-01, 1.4925180364e-02, 1.9532947360e+00), - /* 1.25k Hz*/ - new IIRCoefficients(9.6283181641e-01, 1.8584091793e-02, 1.9366149237e+00), - /* 1.6k Hz*/ - new IIRCoefficients(9.5268463224e-01, 2.3657683878e-02, 1.9100137880e+00), - /* 2.5k Hz*/ - new IIRCoefficients(9.2711765003e-01, 3.6441174983e-02, 1.8248457659e+00), - /* 3.15k Hz*/ - new IIRCoefficients(9.0912548757e-01, 4.5437256213e-02, 1.7491177803e+00), - /* 4k Hz*/ - new IIRCoefficients(8.8619860800e-01, 5.6900696000e-02, 1.6334959111e+00), - /* 5k Hz*/ - new IIRCoefficients(8.6010264114e-01, 6.9948679430e-02, 1.4757186436e+00), - /* 8k Hz*/ - new IIRCoefficients(7.8757448309e-01, 1.0621275845e-01, 8.9378724155e-01), - /* 10k Hz*/ - new IIRCoefficients(7.4415362476e-01, 1.2792318762e-01, 4.5142017567e-01), - /* 12.5k Hz*/ - new IIRCoefficients(6.9581428034e-01, 1.5209285983e-01, -1.1091156053e-01), - /* 16k Hz*/ - new IIRCoefficients(6.4120506488e-01, 1.7939746756e-01, -8.2060253244e-01), - /* 20k Hz*/ - new IIRCoefficients(6.0884213704e-01, 1.9557893148e-01, -1.3932981614e+00) - }; - public final static IIRCoefficients iir_cf31_44100[] = { - /* 20 Hz*/ - new IIRCoefficients(9.9934037157e-01, 3.2981421662e-04, 1.9993322545e+00), - /* 25 Hz*/ - new IIRCoefficients(9.9917555233e-01, 4.1222383516e-04, 1.9991628705e+00), - /* 31.5 Hz*/ - new IIRCoefficients(9.9896129025e-01, 5.1935487310e-04, 1.9989411587e+00), - /* 40 Hz*/ - new IIRCoefficients(9.9868118265e-01, 6.5940867495e-04, 1.9986487252e+00), - /* 50 Hz*/ - new IIRCoefficients(9.9835175161e-01, 8.2412419683e-04, 1.9983010452e+00), - /* 63 Hz*/ - new IIRCoefficients(9.9792365217e-01, 1.0381739160e-03, 1.9978431682e+00), - /* 80 Hz*/ - new IIRCoefficients(9.9736411067e-01, 1.3179446674e-03, 1.9972343673e+00), - /* 100 Hz*/ - new IIRCoefficients(9.9670622662e-01, 1.6468866919e-03, 1.9965035707e+00), - /* 125 Hz*/ - new IIRCoefficients(9.9588448566e-01, 2.0577571681e-03, 1.9955679690e+00), - /* 160 Hz*/ - new IIRCoefficients(9.9473519326e-01, 2.6324033689e-03, 1.9942169198e+00), - /* 200 Hz*/ - new IIRCoefficients(9.9342335280e-01, 3.2883236020e-03, 1.9926141028e+00), - /* 250 Hz*/ - new IIRCoefficients(9.9178600786e-01, 4.1069960678e-03, 1.9905226414e+00), - /* 315 Hz*/ - new IIRCoefficients(9.8966154150e-01, 5.1692292513e-03, 1.9876580847e+00), - /* 400 Hz*/ - new IIRCoefficients(9.8689036168e-01, 6.5548191616e-03, 1.9836646251e+00), - /* 500 Hz*/ - new IIRCoefficients(9.8364027156e-01, 8.1798642207e-03, 1.9786090689e+00), - /* 630 Hz*/ - new IIRCoefficients(9.7943153305e-01, 1.0284233476e-02, 1.9714629236e+00), - /* 800 Hz*/ - new IIRCoefficients(9.7395577681e-01, 1.3022111597e-02, 1.9611472340e+00), - /* 1k Hz*/ - new IIRCoefficients(9.6755437936e-01, 1.6222810321e-02, 1.9476180811e+00), - /* 1.25k Hz*/ - new IIRCoefficients(9.5961458750e-01, 2.0192706249e-02, 1.9286193446e+00), - /* 1.6k Hz*/ - new IIRCoefficients(9.4861481164e-01, 2.5692594182e-02, 1.8982024567e+00), - /* 2k Hz*/ - new IIRCoefficients(9.3620971896e-01, 3.1895140519e-02, 1.8581325022e+00), - /* 2.5k Hz*/ - new IIRCoefficients(9.2095325455e-01, 3.9523372724e-02, 1.8003794694e+00), - /* 3.15k Hz*/ - new IIRCoefficients(9.0153642498e-01, 4.9231787512e-02, 1.7132251201e+00), - /* 4k Hz*/ - new IIRCoefficients(8.7685876255e-01, 6.1570618727e-02, 1.5802270232e+00), - /* 5k Hz*/ - new IIRCoefficients(8.4886734822e-01, 7.5566325889e-02, 1.3992391376e+00), - /* 6.3k Hz*/ - new IIRCoefficients(8.1417575446e-01, 9.2912122771e-02, 1.1311200817e+00), - /* 8k Hz*/ - new IIRCoefficients(7.7175298860e-01, 1.1412350570e-01, 7.4018523020e-01), - /* 10k Hz*/ - new IIRCoefficients(7.2627049462e-01, 1.3686475269e-01, 2.5120552756e-01), - /* 12.5k Hz*/ - new IIRCoefficients(6.7674787974e-01, 1.6162606013e-01, -3.4978377639e-01), - /* 16k Hz*/ - new IIRCoefficients(6.2482197550e-01, 1.8758901225e-01, -1.0576558797e+00), - /* 20k Hz*/ - new IIRCoefficients(6.1776148240e-01, 1.9111925880e-01, -1.5492465594e+00) - }; - public final static IIRCoefficients iir_cf31_48000[] = { - /* 20 Hz*/ - new IIRCoefficients(9.9939388451e-01, 3.0305774630e-04, 1.9993870327e+00), - /* 25 Hz*/ - new IIRCoefficients(9.9924247917e-01, 3.7876041632e-04, 1.9992317740e+00), - /* 31.5 Hz*/ - new IIRCoefficients(9.9904564663e-01, 4.7717668529e-04, 1.9990286528e+00), - /* 40 Hz*/ - new IIRCoefficients(9.9878827195e-01, 6.0586402557e-04, 1.9987608731e+00), - /* 50 Hz*/ - new IIRCoefficients(9.9848556942e-01, 7.5721528829e-04, 1.9984427652e+00), - /* 63 Hz*/ - new IIRCoefficients(9.9809219264e-01, 9.5390367779e-04, 1.9980242502e+00), - /* 80 Hz*/ - new IIRCoefficients(9.9757801538e-01, 1.2109923088e-03, 1.9974684869e+00), - /* 100 Hz*/ - new IIRCoefficients(9.9697343933e-01, 1.5132803374e-03, 1.9968023538e+00), - /* 125 Hz*/ - new IIRCoefficients(9.9621823598e-01, 1.8908820086e-03, 1.9959510180e+00), - /* 160 Hz*/ - new IIRCoefficients(9.9516191728e-01, 2.4190413595e-03, 1.9947243453e+00), - /* 200 Hz*/ - new IIRCoefficients(9.9395607757e-01, 3.0219612131e-03, 1.9932727986e+00), - /* 250 Hz*/ - new IIRCoefficients(9.9245085008e-01, 3.7745749576e-03, 1.9913840669e+00), - /* 315 Hz*/ - new IIRCoefficients(9.9049749914e-01, 4.7512504310e-03, 1.9888056233e+00), - /* 400 Hz*/ - new IIRCoefficients(9.8794899744e-01, 6.0255012789e-03, 1.9852245824e+00), - /* 500 Hz*/ - new IIRCoefficients(9.8495930023e-01, 7.5203498850e-03, 1.9807093500e+00), - /* 630 Hz*/ - new IIRCoefficients(9.8108651246e-01, 9.4567437704e-03, 1.9743538683e+00), - /* 800 Hz*/ - new IIRCoefficients(9.7604570090e-01, 1.1977149551e-02, 1.9652207158e+00), - /* 1k Hz*/ - new IIRCoefficients(9.7014963927e-01, 1.4925180364e-02, 1.9532947360e+00), - /* 1.25k Hz*/ - new IIRCoefficients(9.6283181641e-01, 1.8584091793e-02, 1.9366149237e+00), - /* 1.6k Hz*/ - new IIRCoefficients(9.5268463224e-01, 2.3657683878e-02, 1.9100137880e+00), - /* 2k Hz*/ - new IIRCoefficients(9.4122788957e-01, 2.9386055213e-02, 1.8750821533e+00), - /* 2.5k Hz*/ - new IIRCoefficients(9.2711765003e-01, 3.6441174983e-02, 1.8248457659e+00), - /* 3.15k Hz*/ - new IIRCoefficients(9.0912548757e-01, 4.5437256213e-02, 1.7491177803e+00), - /* 4k Hz*/ - new IIRCoefficients(8.8619860800e-01, 5.6900696000e-02, 1.6334959111e+00), - /* 5k Hz*/ - new IIRCoefficients(8.6010264114e-01, 6.9948679430e-02, 1.4757186436e+00), - /* 6.3k Hz*/ - new IIRCoefficients(8.2760520925e-01, 8.6197395374e-02, 1.2405797786e+00), - /* 8k Hz*/ - new IIRCoefficients(7.8757448309e-01, 1.0621275845e-01, 8.9378724155e-01), - /* 10k Hz*/ - new IIRCoefficients(7.4415362476e-01, 1.2792318762e-01, 4.5142017567e-01), - /* 12.5k Hz*/ - new IIRCoefficients(6.9581428034e-01, 1.5209285983e-01, -1.1091156053e-01), - /* 16k Hz*/ - new IIRCoefficients(6.4120506488e-01, 1.7939746756e-01, -8.2060253244e-01), - /* 20k Hz*/ - new IIRCoefficients(6.0884213704e-01, 1.9557893148e-01, -1.3932981614e+00), - }; - public final static IIRCoefficients iir_cf31_96000[] = { -/* 20 Hz */ -new IIRCoefficients(9.9918221139e-01, 4.0889430323e-04, 1.9991804986e+00), -/* 25 Hz */ -new IIRCoefficients(9.9962373418e-01, 1.8813291151e-04, 1.9996210574e+00), -/* 31.5 Hz */ -new IIRCoefficients(9.9950924659e-01, 2.4537670644e-04, 1.9995049971e+00), -/* 40 Hz */ -new IIRCoefficients(9.9939477210e-01, 3.0261394841e-04, 1.9993879203e+00), -/* 50 Hz */ -new IIRCoefficients(9.9924760988e-01, 3.7619506167e-04, 1.9992369047e+00), -/* 63 Hz */ -new IIRCoefficients(9.9901873389e-01, 4.9063305250e-04, 1.9990017403e+00), -/* 80 Hz */ -new IIRCoefficients(9.9878991029e-01, 6.0504485723e-04, 1.9987625114e+00), -/* 100 Hz */ -new IIRCoefficients(9.9852846169e-01, 7.3576915625e-04, 1.9984856565e+00), -/* 125 Hz */ -new IIRCoefficients(9.9803842973e-01, 9.8078513561e-04, 1.9979715632e+00), -/* 160 Hz */ -new IIRCoefficients(9.9754863778e-01, 1.2256811083e-03, 1.9974391109e+00), -/* 200 Hz */ -new IIRCoefficients(9.9705908562e-01, 1.4704571921e-03, 1.9968879927e+00), -/* 250 Hz */ -new IIRCoefficients(9.9624369754e-01, 1.8781512307e-03, 1.9959764762e+00), -/* 315 Hz */ -new IIRCoefficients(9.9510327003e-01, 2.4483649847e-03, 1.9946792773e+00), -/* 400 Hz */ -new IIRCoefficients(9.9396414160e-01, 3.0179291997e-03, 1.9932808599e+00), -/* 500 Hz */ -new IIRCoefficients(9.9250145198e-01, 3.7492740081e-03, 1.9914346418e+00), -/* 630 Hz */ -new IIRCoefficients(9.9023040090e-01, 4.8847995509e-03, 1.9885387521e+00), -/* 800 Hz */ -new IIRCoefficients(9.8796449555e-01, 6.0177522243e-03, 1.9852400593e+00), -/* 1000 Hz */ -new IIRCoefficients(9.8538116034e-01, 7.3094198292e-03, 1.9811303069e+00), -/* 1250 Hz */ -new IIRCoefficients(9.8055531891e-01, 9.7223405432e-03, 1.9739308353e+00), -/* 1600 Hz */ -new IIRCoefficients(9.7575264994e-01, 1.2123675032e-02, 1.9649292702e+00), -/* 2000 Hz */ -new IIRCoefficients(9.7097292946e-01, 1.4513535269e-02, 1.9541109828e+00), -/* 2500 Hz */ -new IIRCoefficients(9.6305712557e-01, 1.8471437214e-02, 1.9368372235e+00), -/* 3150 Hz */ -new IIRCoefficients(9.5207914671e-01, 2.3960426645e-02, 1.9107394812e+00), -/* 4000 Hz */ -new IIRCoefficients(9.4122023318e-01, 2.9389883411e-02, 1.8750747578e+00), -/* 5000 Hz */ -new IIRCoefficients(9.2742950588e-01, 3.6285247058e-02, 1.8251410716e+00), -/* 6300 Hz */ -new IIRCoefficients(9.0634716904e-01, 4.6826415482e-02, 1.7465723184e+00), -/* 8000 Hz */ -new IIRCoefficients(8.8569806727e-01, 5.7150966366e-02, 1.6330624302e+00), -/* 10000 Hz */ -new IIRCoefficients(8.6260593228e-01, 6.8697033860e-02, 1.4777046382e+00), -/* 12500 Hz */ -new IIRCoefficients(8.2067879086e-01, 8.9660604570e-02, 1.2446020061e+00), -/* 16000 Hz */ -new IIRCoefficients(7.8040765969e-01, 1.0979617015e-01, 8.9020383015e-01), -/* 20000 Hz */ -new IIRCoefficients(2.6794919254e-01, 3.6602540373e-01, 3.2816939955e-01), + public final static IIRCoefficients iir_cf10_44100[] = { + /* 31 Hz*/ + new IIRCoefficients(9.9688176273e-01, 1.5591186337e-03, 1.9968622855e+00), + /* 62 Hz*/ + new IIRCoefficients(9.9377323686e-01, 3.1133815717e-03, 1.9936954495e+00), + /* 125 Hz*/ + new IIRCoefficients(9.8748575691e-01, 6.2571215431e-03, 1.9871705722e+00), + /* 250 Hz*/ + new IIRCoefficients(9.7512812040e-01, 1.2435939802e-02, 1.9738753198e+00), + /* 500 Hz*/ + new IIRCoefficients(9.5087485437e-01, 2.4562572817e-02, 1.9459267562e+00), + /* 1k Hz*/ + new IIRCoefficients(9.0416308662e-01, 4.7918456688e-02, 1.8848691023e+00), + /* 2k Hz*/ + new IIRCoefficients(8.1751373987e-01, 9.1243130064e-02, 1.7442229115e+00), + /* 4k Hz*/ + new IIRCoefficients(6.6840529852e-01, 1.6579735074e-01, 1.4047189863e+00), + /* 8k Hz*/ + new IIRCoefficients(4.4858358977e-01, 2.7570820511e-01, 6.0517475334e-01), + /* 16k Hz*/ + new IIRCoefficients(2.4198119087e-01, 3.7900940457e-01, -8.0845085113e-01) + }; + + public final static IIRCoefficients iir_cf10_48000[] = { + /* 31 Hz*/ + new IIRCoefficients(9.9713475915e-01, 1.4326204244e-03, 1.9971183163e+00), + /* 62 Hz*/ + new IIRCoefficients(9.9427771143e-01, 2.8611442874e-03, 1.9942120343e+00), + /* 125 Hz*/ + new IIRCoefficients(9.8849666727e-01, 5.7516663664e-03, 1.9882304829e+00), + /* 250 Hz*/ + new IIRCoefficients(9.7712566171e-01, 1.1437169144e-02, 1.9760670839e+00), + /* 500 Hz*/ + new IIRCoefficients(9.5477456091e-01, 2.2612719547e-02, 1.9505892385e+00), + /* 1k Hz*/ + new IIRCoefficients(9.1159452679e-01, 4.4202736607e-02, 1.8952405706e+00), + /* 2k Hz*/ + new IIRCoefficients(8.3100647694e-01, 8.4496761532e-02, 1.7686164442e+00), + /* 4k Hz*/ + new IIRCoefficients(6.9062328809e-01, 1.5468835596e-01, 1.4641227157e+00), + /* 8k Hz*/ + new IIRCoefficients(4.7820368352e-01, 2.6089815824e-01, 7.3910184176e-01), + /* 16k Hz*/ + new IIRCoefficients(2.5620076154e-01, 3.7189961923e-01, -6.2810038077e-01) + }; + + public final static IIRCoefficients iir_cf15_44100[] = { + /* 25 Hz*/ + new IIRCoefficients(9.9834072702e-01, 8.2963648917e-04, 1.9983280505e+00), + /* 40 Hz*/ + new IIRCoefficients(9.9734652663e-01, 1.3267366865e-03, 1.9973140908e+00), + /* 63 Hz*/ + new IIRCoefficients(9.9582396353e-01, 2.0880182333e-03, 1.9957435641e+00), + /* 100 Hz*/ + new IIRCoefficients(9.9337951306e-01, 3.3102434709e-03, 1.9931771947e+00), + /* 160 Hz*/ + new IIRCoefficients(9.8942832039e-01, 5.2858398053e-03, 1.9889114258e+00), + /* 250 Hz*/ + new IIRCoefficients(9.8353109588e-01, 8.2344520610e-03, 1.9822729654e+00), + /* 400 Hz*/ + new IIRCoefficients(9.7378088082e-01, 1.3109559588e-02, 1.9705764276e+00), + /* 630 Hz*/ + new IIRCoefficients(9.5901979676e-01, 2.0490101620e-02, 1.9511333590e+00), + /* 1k Hz*/ + new IIRCoefficients(9.3574903986e-01, 3.2125480071e-02, 1.9161350100e+00), + /* 1.6k Hz*/ + new IIRCoefficients(8.9923630641e-01, 5.0381846793e-02, 1.8501014162e+00), + /* 2.5k Hz*/ + new IIRCoefficients(8.4722457681e-01, 7.6387711593e-02, 1.7312785699e+00), + /* 4k Hz*/ + new IIRCoefficients(7.6755471307e-01, 1.1622264346e-01, 1.4881981417e+00), + /* 6.3k Hz*/ + new IIRCoefficients(6.6125377473e-01, 1.6937311263e-01, 1.0357747868e+00), + /* 10k Hz*/ + new IIRCoefficients(5.2683267950e-01, 2.3658366025e-01, 2.2218349322e-01), + /* 16k Hz*/ + new IIRCoefficients(4.0179628792e-01, 2.9910185604e-01, -9.1248032613e-01) + }; + + public final static IIRCoefficients iir_cf15_48000[] = { + /* 25 Hz*/ + new IIRCoefficients(9.9847546664e-01, 7.6226668143e-04, 1.9984647656e+00), + /* 40 Hz*/ + new IIRCoefficients(9.9756184654e-01, 1.2190767289e-03, 1.9975344645e+00), + /* 63 Hz*/ + new IIRCoefficients(9.9616261379e-01, 1.9186931041e-03, 1.9960947369e+00), + /* 100 Hz*/ + new IIRCoefficients(9.9391578543e-01, 3.0421072865e-03, 1.9937449618e+00), + /* 160 Hz*/ + new IIRCoefficients(9.9028307215e-01, 4.8584639242e-03, 1.9898465702e+00), + /* 250 Hz*/ + new IIRCoefficients(9.8485897264e-01, 7.5705136795e-03, 1.9837962543e+00), + /* 400 Hz*/ + new IIRCoefficients(9.7588512657e-01, 1.2057436715e-02, 1.9731772447e+00), + /* 630 Hz*/ + new IIRCoefficients(9.6228521814e-01, 1.8857390928e-02, 1.9556164694e+00), + /* 1k Hz*/ + new IIRCoefficients(9.4080933132e-01, 2.9595334338e-02, 1.9242054384e+00), + /* 1.6k Hz*/ + new IIRCoefficients(9.0702059196e-01, 4.6489704022e-02, 1.8653476166e+00), + /* 2.5k Hz*/ + new IIRCoefficients(8.5868004289e-01, 7.0659978553e-02, 1.7600401337e+00), + /* 4k Hz*/ + new IIRCoefficients(7.8409610788e-01, 1.0795194606e-01, 1.5450725522e+00), + /* 6.3k Hz*/ + new IIRCoefficients(6.8332861002e-01, 1.5833569499e-01, 1.1426447155e+00), + /* 10k Hz*/ + new IIRCoefficients(5.5267518228e-01, 2.2366240886e-01, 4.0186190803e-01), + /* 16k Hz*/ + new IIRCoefficients(4.1811888447e-01, 2.9094055777e-01, -7.0905944223e-01) + }; + + public final static IIRCoefficients iir_cf25_44100[] = { + /* 20 Hz*/ + new IIRCoefficients(9.9934037157e-01, 3.2981421662e-04, 1.9993322545e+00), + /* 31.5 Hz*/ + new IIRCoefficients(9.9896129025e-01, 5.1935487310e-04, 1.9989411587e+00), + /* 40 Hz*/ + new IIRCoefficients(9.9868118265e-01, 6.5940867495e-04, 1.9986487252e+00), + /* 50 Hz*/ + new IIRCoefficients(9.9835175161e-01, 8.2412419683e-04, 1.9983010452e+00), + /* 80 Hz*/ + new IIRCoefficients(9.9736411067e-01, 1.3179446674e-03, 1.9972343673e+00), + /* 100 Hz*/ + new IIRCoefficients(9.9670622662e-01, 1.6468866919e-03, 1.9965035707e+00), + /* 125 Hz*/ + new IIRCoefficients(9.9588448566e-01, 2.0577571681e-03, 1.9955679690e+00), + /* 160 Hz*/ + new IIRCoefficients(9.9473519326e-01, 2.6324033689e-03, 1.9942169198e+00), + /* 250 Hz*/ + new IIRCoefficients(9.9178600786e-01, 4.1069960678e-03, 1.9905226414e+00), + /* 315 Hz*/ + new IIRCoefficients(9.8966154150e-01, 5.1692292513e-03, 1.9876580847e+00), + /* 400 Hz*/ + new IIRCoefficients(9.8689036168e-01, 6.5548191616e-03, 1.9836646251e+00), + /* 500 Hz*/ + new IIRCoefficients(9.8364027156e-01, 8.1798642207e-03, 1.9786090689e+00), + /* 800 Hz*/ + new IIRCoefficients(9.7395577681e-01, 1.3022111597e-02, 1.9611472340e+00), + /* 1k Hz*/ + new IIRCoefficients(9.6755437936e-01, 1.6222810321e-02, 1.9476180811e+00), + /* 1.25k Hz*/ + new IIRCoefficients(9.5961458750e-01, 2.0192706249e-02, 1.9286193446e+00), + /* 1.6k Hz*/ + new IIRCoefficients(9.4861481164e-01, 2.5692594182e-02, 1.8982024567e+00), + /* 2.5k Hz*/ + new IIRCoefficients(9.2095325455e-01, 3.9523372724e-02, 1.8003794694e+00), + /* 3.15k Hz*/ + new IIRCoefficients(9.0153642498e-01, 4.9231787512e-02, 1.7132251201e+00), + /* 4k Hz*/ + new IIRCoefficients(8.7685876255e-01, 6.1570618727e-02, 1.5802270232e+00), + /* 5k Hz*/ + new IIRCoefficients(8.4886734822e-01, 7.5566325889e-02, 1.3992391376e+00), + /* 8k Hz*/ + new IIRCoefficients(7.7175298860e-01, 1.1412350570e-01, 7.4018523020e-01), + /* 10k Hz*/ + new IIRCoefficients(7.2627049462e-01, 1.3686475269e-01, 2.5120552756e-01), + /* 12.5k Hz*/ + new IIRCoefficients(6.7674787974e-01, 1.6162606013e-01, -3.4978377639e-01), + /* 16k Hz*/ + new IIRCoefficients(6.2482197550e-01, 1.8758901225e-01, -1.0576558797e+00), + /* 20k Hz*/ + new IIRCoefficients(6.1776148240e-01, 1.9111925880e-01, -1.5492465594e+00) + }; + + public final static IIRCoefficients iir_cf25_48000[] = { + /* 20 Hz*/ + new IIRCoefficients(9.9939388451e-01, 3.0305774630e-04, 1.9993870327e+00), + /* 31.5 Hz*/ + new IIRCoefficients(9.9904564663e-01, 4.7717668529e-04, 1.9990286528e+00), + /* 40 Hz*/ + new IIRCoefficients(9.9878827195e-01, 6.0586402557e-04, 1.9987608731e+00), + /* 50 Hz*/ + new IIRCoefficients(9.9848556942e-01, 7.5721528829e-04, 1.9984427652e+00), + /* 80 Hz*/ + new IIRCoefficients(9.9757801538e-01, 1.2109923088e-03, 1.9974684869e+00), + /* 100 Hz*/ + new IIRCoefficients(9.9697343933e-01, 1.5132803374e-03, 1.9968023538e+00), + /* 125 Hz*/ + new IIRCoefficients(9.9621823598e-01, 1.8908820086e-03, 1.9959510180e+00), + /* 160 Hz*/ + new IIRCoefficients(9.9516191728e-01, 2.4190413595e-03, 1.9947243453e+00), + /* 250 Hz*/ + new IIRCoefficients(9.9245085008e-01, 3.7745749576e-03, 1.9913840669e+00), + /* 315 Hz*/ + new IIRCoefficients(9.9049749914e-01, 4.7512504310e-03, 1.9888056233e+00), + /* 400 Hz*/ + new IIRCoefficients(9.8794899744e-01, 6.0255012789e-03, 1.9852245824e+00), + /* 500 Hz*/ + new IIRCoefficients(9.8495930023e-01, 7.5203498850e-03, 1.9807093500e+00), + /* 800 Hz*/ + new IIRCoefficients(9.7604570090e-01, 1.1977149551e-02, 1.9652207158e+00), + /* 1k Hz*/ + new IIRCoefficients(9.7014963927e-01, 1.4925180364e-02, 1.9532947360e+00), + /* 1.25k Hz*/ + new IIRCoefficients(9.6283181641e-01, 1.8584091793e-02, 1.9366149237e+00), + /* 1.6k Hz*/ + new IIRCoefficients(9.5268463224e-01, 2.3657683878e-02, 1.9100137880e+00), + /* 2.5k Hz*/ + new IIRCoefficients(9.2711765003e-01, 3.6441174983e-02, 1.8248457659e+00), + /* 3.15k Hz*/ + new IIRCoefficients(9.0912548757e-01, 4.5437256213e-02, 1.7491177803e+00), + /* 4k Hz*/ + new IIRCoefficients(8.8619860800e-01, 5.6900696000e-02, 1.6334959111e+00), + /* 5k Hz*/ + new IIRCoefficients(8.6010264114e-01, 6.9948679430e-02, 1.4757186436e+00), + /* 8k Hz*/ + new IIRCoefficients(7.8757448309e-01, 1.0621275845e-01, 8.9378724155e-01), + /* 10k Hz*/ + new IIRCoefficients(7.4415362476e-01, 1.2792318762e-01, 4.5142017567e-01), + /* 12.5k Hz*/ + new IIRCoefficients(6.9581428034e-01, 1.5209285983e-01, -1.1091156053e-01), + /* 16k Hz*/ + new IIRCoefficients(6.4120506488e-01, 1.7939746756e-01, -8.2060253244e-01), + /* 20k Hz*/ + new IIRCoefficients(6.0884213704e-01, 1.9557893148e-01, -1.3932981614e+00) + }; + + public final static IIRCoefficients iir_cf31_44100[] = { + /* 20 Hz*/ + new IIRCoefficients(9.9934037157e-01, 3.2981421662e-04, 1.9993322545e+00), + /* 25 Hz*/ + new IIRCoefficients(9.9917555233e-01, 4.1222383516e-04, 1.9991628705e+00), + /* 31.5 Hz*/ + new IIRCoefficients(9.9896129025e-01, 5.1935487310e-04, 1.9989411587e+00), + /* 40 Hz*/ + new IIRCoefficients(9.9868118265e-01, 6.5940867495e-04, 1.9986487252e+00), + /* 50 Hz*/ + new IIRCoefficients(9.9835175161e-01, 8.2412419683e-04, 1.9983010452e+00), + /* 63 Hz*/ + new IIRCoefficients(9.9792365217e-01, 1.0381739160e-03, 1.9978431682e+00), + /* 80 Hz*/ + new IIRCoefficients(9.9736411067e-01, 1.3179446674e-03, 1.9972343673e+00), + /* 100 Hz*/ + new IIRCoefficients(9.9670622662e-01, 1.6468866919e-03, 1.9965035707e+00), + /* 125 Hz*/ + new IIRCoefficients(9.9588448566e-01, 2.0577571681e-03, 1.9955679690e+00), + /* 160 Hz*/ + new IIRCoefficients(9.9473519326e-01, 2.6324033689e-03, 1.9942169198e+00), + /* 200 Hz*/ + new IIRCoefficients(9.9342335280e-01, 3.2883236020e-03, 1.9926141028e+00), + /* 250 Hz*/ + new IIRCoefficients(9.9178600786e-01, 4.1069960678e-03, 1.9905226414e+00), + /* 315 Hz*/ + new IIRCoefficients(9.8966154150e-01, 5.1692292513e-03, 1.9876580847e+00), + /* 400 Hz*/ + new IIRCoefficients(9.8689036168e-01, 6.5548191616e-03, 1.9836646251e+00), + /* 500 Hz*/ + new IIRCoefficients(9.8364027156e-01, 8.1798642207e-03, 1.9786090689e+00), + /* 630 Hz*/ + new IIRCoefficients(9.7943153305e-01, 1.0284233476e-02, 1.9714629236e+00), + /* 800 Hz*/ + new IIRCoefficients(9.7395577681e-01, 1.3022111597e-02, 1.9611472340e+00), + /* 1k Hz*/ + new IIRCoefficients(9.6755437936e-01, 1.6222810321e-02, 1.9476180811e+00), + /* 1.25k Hz*/ + new IIRCoefficients(9.5961458750e-01, 2.0192706249e-02, 1.9286193446e+00), + /* 1.6k Hz*/ + new IIRCoefficients(9.4861481164e-01, 2.5692594182e-02, 1.8982024567e+00), + /* 2k Hz*/ + new IIRCoefficients(9.3620971896e-01, 3.1895140519e-02, 1.8581325022e+00), + /* 2.5k Hz*/ + new IIRCoefficients(9.2095325455e-01, 3.9523372724e-02, 1.8003794694e+00), + /* 3.15k Hz*/ + new IIRCoefficients(9.0153642498e-01, 4.9231787512e-02, 1.7132251201e+00), + /* 4k Hz*/ + new IIRCoefficients(8.7685876255e-01, 6.1570618727e-02, 1.5802270232e+00), + /* 5k Hz*/ + new IIRCoefficients(8.4886734822e-01, 7.5566325889e-02, 1.3992391376e+00), + /* 6.3k Hz*/ + new IIRCoefficients(8.1417575446e-01, 9.2912122771e-02, 1.1311200817e+00), + /* 8k Hz*/ + new IIRCoefficients(7.7175298860e-01, 1.1412350570e-01, 7.4018523020e-01), + /* 10k Hz*/ + new IIRCoefficients(7.2627049462e-01, 1.3686475269e-01, 2.5120552756e-01), + /* 12.5k Hz*/ + new IIRCoefficients(6.7674787974e-01, 1.6162606013e-01, -3.4978377639e-01), + /* 16k Hz*/ + new IIRCoefficients(6.2482197550e-01, 1.8758901225e-01, -1.0576558797e+00), + /* 20k Hz*/ + new IIRCoefficients(6.1776148240e-01, 1.9111925880e-01, -1.5492465594e+00) + }; + + public final static IIRCoefficients iir_cf31_48000[] = { + /* 20 Hz*/ + new IIRCoefficients(9.9939388451e-01, 3.0305774630e-04, 1.9993870327e+00), + /* 25 Hz*/ + new IIRCoefficients(9.9924247917e-01, 3.7876041632e-04, 1.9992317740e+00), + /* 31.5 Hz*/ + new IIRCoefficients(9.9904564663e-01, 4.7717668529e-04, 1.9990286528e+00), + /* 40 Hz*/ + new IIRCoefficients(9.9878827195e-01, 6.0586402557e-04, 1.9987608731e+00), + /* 50 Hz*/ + new IIRCoefficients(9.9848556942e-01, 7.5721528829e-04, 1.9984427652e+00), + /* 63 Hz*/ + new IIRCoefficients(9.9809219264e-01, 9.5390367779e-04, 1.9980242502e+00), + /* 80 Hz*/ + new IIRCoefficients(9.9757801538e-01, 1.2109923088e-03, 1.9974684869e+00), + /* 100 Hz*/ + new IIRCoefficients(9.9697343933e-01, 1.5132803374e-03, 1.9968023538e+00), + /* 125 Hz*/ + new IIRCoefficients(9.9621823598e-01, 1.8908820086e-03, 1.9959510180e+00), + /* 160 Hz*/ + new IIRCoefficients(9.9516191728e-01, 2.4190413595e-03, 1.9947243453e+00), + /* 200 Hz*/ + new IIRCoefficients(9.9395607757e-01, 3.0219612131e-03, 1.9932727986e+00), + /* 250 Hz*/ + new IIRCoefficients(9.9245085008e-01, 3.7745749576e-03, 1.9913840669e+00), + /* 315 Hz*/ + new IIRCoefficients(9.9049749914e-01, 4.7512504310e-03, 1.9888056233e+00), + /* 400 Hz*/ + new IIRCoefficients(9.8794899744e-01, 6.0255012789e-03, 1.9852245824e+00), + /* 500 Hz*/ + new IIRCoefficients(9.8495930023e-01, 7.5203498850e-03, 1.9807093500e+00), + /* 630 Hz*/ + new IIRCoefficients(9.8108651246e-01, 9.4567437704e-03, 1.9743538683e+00), + /* 800 Hz*/ + new IIRCoefficients(9.7604570090e-01, 1.1977149551e-02, 1.9652207158e+00), + /* 1k Hz*/ + new IIRCoefficients(9.7014963927e-01, 1.4925180364e-02, 1.9532947360e+00), + /* 1.25k Hz*/ + new IIRCoefficients(9.6283181641e-01, 1.8584091793e-02, 1.9366149237e+00), + /* 1.6k Hz*/ + new IIRCoefficients(9.5268463224e-01, 2.3657683878e-02, 1.9100137880e+00), + /* 2k Hz*/ + new IIRCoefficients(9.4122788957e-01, 2.9386055213e-02, 1.8750821533e+00), + /* 2.5k Hz*/ + new IIRCoefficients(9.2711765003e-01, 3.6441174983e-02, 1.8248457659e+00), + /* 3.15k Hz*/ + new IIRCoefficients(9.0912548757e-01, 4.5437256213e-02, 1.7491177803e+00), + /* 4k Hz*/ + new IIRCoefficients(8.8619860800e-01, 5.6900696000e-02, 1.6334959111e+00), + /* 5k Hz*/ + new IIRCoefficients(8.6010264114e-01, 6.9948679430e-02, 1.4757186436e+00), + /* 6.3k Hz*/ + new IIRCoefficients(8.2760520925e-01, 8.6197395374e-02, 1.2405797786e+00), + /* 8k Hz*/ + new IIRCoefficients(7.8757448309e-01, 1.0621275845e-01, 8.9378724155e-01), + /* 10k Hz*/ + new IIRCoefficients(7.4415362476e-01, 1.2792318762e-01, 4.5142017567e-01), + /* 12.5k Hz*/ + new IIRCoefficients(6.9581428034e-01, 1.5209285983e-01, -1.1091156053e-01), + /* 16k Hz*/ + new IIRCoefficients(6.4120506488e-01, 1.7939746756e-01, -8.2060253244e-01), + /* 20k Hz*/ + new IIRCoefficients(6.0884213704e-01, 1.9557893148e-01, -1.3932981614e+00), + }; + + public final static IIRCoefficients iir_cf31_96000[] = { + /* 20.0 Hz */ + new IIRCoefficients(9.9969659208e-01, 1.517040e-04, 1.9996948789e+00), + /* 25.0 Hz */ + new IIRCoefficients(9.9962116126e-01, 1.894194e-04, 1.9996184845e+00), + /* 31.5 Hz */ + new IIRCoefficients(9.9952283343e-01, 2.385833e-04, 1.9995185840e+00), + /* 40.0 Hz */ + new IIRCoefficients(9.9939398196e-01, 3.030090e-04, 1.9993871301e+00), + /* 50.0 Hz */ + new IIRCoefficients(9.9924251688e-01, 3.787416e-04, 1.9992318117e+00), + /* 63.0 Hz */ + new IIRCoefficients(9.9904565182e-01, 4.771741e-04, 1.9990286580e+00), + /* 80.0 Hz */ + new IIRCoefficients(9.9878828573e-01, 6.058571e-04, 1.9987608868e+00), + /* 100.0 Hz */ + new IIRCoefficients(9.9848557077e-01, 7.572146e-04, 1.9984427665e+00), + /* 125.0 Hz */ + new IIRCoefficients(9.9810732562e-01, 9.463372e-04, 1.9980404568e+00), + /* 160.0 Hz */ + new IIRCoefficients(9.9757801618e-01, 1.210992e-03, 1.9974684877e+00), + /* 200.0 Hz */ + new IIRCoefficients(9.9697343858e-01, 1.513281e-03, 1.9968023530e+00), + /* 250.0 Hz */ + new IIRCoefficients(9.9621823615e-01, 1.890882e-03, 1.9959510182e+00), + /* 315.0 Hz */ + new IIRCoefficients(9.9523733132e-01, 2.381334e-03, 1.9948133101e+00), + /* 400.0 Hz */ + new IIRCoefficients(9.9395607744e-01, 3.021961e-03, 1.9932727985e+00), + /* 500.0 Hz */ + new IIRCoefficients(9.9245084999e-01, 3.774575e-03, 1.9913840669e+00), + /* 630.0 Hz */ + new IIRCoefficients(9.9049749915e-01, 4.751250e-03, 1.9888056234e+00), + /* 800.0 Hz */ + new IIRCoefficients(9.8794899744e-01, 6.025501e-03, 1.9852245824e+00), + /* 1000.0 Hz */ + new IIRCoefficients(9.8495930024e-01, 7.520350e-03, 1.9807093500e+00), + /* 1250.0 Hz */ + new IIRCoefficients(9.8123517675e-01, 9.382412e-03, 1.9746084192e+00), + /* 1600.0 Hz */ + new IIRCoefficients(9.7604570090e-01, 1.197715e-02, 1.9652207158e+00), + /* 2000.0 Hz */ + new IIRCoefficients(9.7014963927e-01, 1.492518e-02, 1.9532947360e+00), + /* 2500.0 Hz */ + new IIRCoefficients(9.6283181641e-01, 1.858409e-02, 1.9366149237e+00), + /* 3150.0 Hz */ + new IIRCoefficients(9.5340564248e-01, 2.329718e-02, 1.9120378855e+00), + /* 4000.0 Hz */ + new IIRCoefficients(9.4122788957e-01, 2.938606e-02, 1.8750821533e+00), + /* 5000.0 Hz */ + new IIRCoefficients(9.2711765003e-01, 3.644117e-02, 1.8248457659e+00), + /* 6300.0 Hz */ + new IIRCoefficients(9.0912548757e-01, 4.543726e-02, 1.7491177803e+00), + /* 8000.0 Hz */ + new IIRCoefficients(8.8619860800e-01, 5.690070e-02, 1.6334959111e+00), + /* 10000.0 Hz */ + new IIRCoefficients(8.6010264114e-01, 6.994868e-02, 1.4757186436e+00), + /* 12500.0 Hz */ + new IIRCoefficients(8.2882509035e-01, 8.558745e-02, 1.2501707535e+00), + /* 16000.0 Hz */ + new IIRCoefficients(7.8757448309e-01, 1.062128e-01, 8.9378724155e-01), + /* 20000.0 Hz */ + new IIRCoefficients(7.4415362476e-01, 1.279232e-01, 4.5142017567e-01), }; }