1 /* libSoX CVSD (Continuously Variable Slope Delta modulation)
4 * The CVSD format is described in the MIL Std 188 113, which is
5 * available from http://bbs.itsi.disa.mil:5580/T3564
8 * Thomas Sailer (sailer@ife.ee.ethz.ch) (HB9JNX/AE4WA)
9 * Swiss Federal Institute of Technology, Electronics Lab
11 * This library is free software; you can redistribute it and/or modify it
12 * under the terms of the GNU Lesser General Public License as published by
13 * the Free Software Foundation; either version 2.1 of the License, or (at
14 * your option) any later version.
16 * This library is distributed in the hope that it will be useful, but
17 * WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
19 * General Public License for more details.
21 * You should have received a copy of the GNU Lesser General Public License
22 * along with this library; if not, write to the Free Software Foundation,
23 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
26 static const float dec_filter_16
[48] = {
27 0.001102, 0.001159, 0.000187, -0.000175,
28 0.002097, 0.006543, 0.009384, 0.008004,
29 0.006562, 0.013569, 0.030745, 0.047053,
30 0.050491, 0.047388, 0.062171, 0.109115,
31 0.167120, 0.197144, 0.195471, 0.222098,
32 0.354745, 0.599184, 0.849632, 0.956536,
33 0.849632, 0.599184, 0.354745, 0.222098,
34 0.195471, 0.197144, 0.167120, 0.109115,
35 0.062171, 0.047388, 0.050491, 0.047053,
36 0.030745, 0.013569, 0.006562, 0.008004,
37 0.009384, 0.006543, 0.002097, -0.000175,
38 0.000187, 0.001159, 0.001102, 0.000000
41 /* ---------------------------------------------------------------------- */
43 static const float dec_filter_32
[48] = {
44 0.001950, 0.004180, 0.006331, 0.007907,
45 0.008510, 0.008342, 0.008678, 0.011827,
46 0.020282, 0.035231, 0.055200, 0.075849,
47 0.091585, 0.098745, 0.099031, 0.101287,
48 0.120058, 0.170672, 0.262333, 0.392047,
49 0.542347, 0.684488, 0.786557, 0.823702,
50 0.786557, 0.684488, 0.542347, 0.392047,
51 0.262333, 0.170672, 0.120058, 0.101287,
52 0.099031, 0.098745, 0.091585, 0.075849,
53 0.055200, 0.035231, 0.020282, 0.011827,
54 0.008678, 0.008342, 0.008510, 0.007907,
55 0.006331, 0.004180, 0.001950, -0.000000
58 /* ---------------------------------------------------------------------- */
60 static const float enc_filter_16_0
[16] = {
61 -0.000362, 0.004648, 0.001381, 0.008312,
62 0.041490, -0.001410, 0.124061, 0.247446,
63 -0.106761, -0.236326, -0.023798, -0.023506,
64 -0.030097, 0.001493, -0.005363, -0.001672
67 static const float enc_filter_16_1
[16] = {
68 0.001672, 0.005363, -0.001493, 0.030097,
69 0.023506, 0.023798, 0.236326, 0.106761,
70 -0.247446, -0.124061, 0.001410, -0.041490,
71 -0.008312, -0.001381, -0.004648, 0.000362
74 static const float *enc_filter_16
[2] = {
75 enc_filter_16_0
, enc_filter_16_1
78 /* ---------------------------------------------------------------------- */
80 static const float enc_filter_32_0
[16] = {
81 -0.000289, 0.002112, 0.001421, 0.002235,
82 0.021003, 0.001237, 0.047132, 0.129636,
83 -0.027328, -0.126462, -0.021456, -0.008069,
84 -0.017959, 0.000301, -0.002538, -0.001278
87 static const float enc_filter_32_1
[16] = {
88 -0.000010, 0.002787, 0.000055, 0.006813,
89 0.020249, -0.000995, 0.077912, 0.112870,
90 -0.076980, -0.106971, -0.005096, -0.015449,
91 -0.012591, 0.000813, -0.003003, -0.000527
94 static const float enc_filter_32_2
[16] = {
95 0.000527, 0.003003, -0.000813, 0.012591,
96 0.015449, 0.005096, 0.106971, 0.076980,
97 -0.112870, -0.077912, 0.000995, -0.020249,
98 -0.006813, -0.000055, -0.002787, 0.000010
101 static const float enc_filter_32_3
[16] = {
102 0.001278, 0.002538, -0.000301, 0.017959,
103 0.008069, 0.021456, 0.126462, 0.027328,
104 -0.129636, -0.047132, -0.001237, -0.021003,
105 -0.002235, -0.001421, -0.002112, 0.000289
108 static const float *enc_filter_32
[4] = {
109 enc_filter_32_0
, enc_filter_32_1
, enc_filter_32_2
, enc_filter_32_3
112 /* ---------------------------------------------------------------------- */