1 /*
2  * Copyright (C) 2004-2010 NXP Software
3  * Copyright (C) 2010 The Android Open Source Project
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #ifndef __LVDBE_COEFFS_H__
19 #define __LVDBE_COEFFS_H__
20 
21 
22 /************************************************************************************/
23 /*                                                                                  */
24 /* General                                                                          */
25 /*                                                                                  */
26 /************************************************************************************/
27 
28 #define LVDBE_SCALESHIFT                                    10         /* As a power of 2 */
29 
30 
31 /************************************************************************************/
32 /*                                                                                  */
33 /* High Pass Filter coefficients                                                    */
34 /*                                                                                  */
35 /************************************************************************************/
36 
37  /* Coefficients for centre frequency 55Hz */
38 #define HPF_Fs8000_Fc55_A0                         1029556328         /* Floating point value 0.958849 */
39 #define HPF_Fs8000_Fc55_A1                        -2059112655         /* Floating point value -1.917698 */
40 #define HPF_Fs8000_Fc55_A2                         1029556328         /* Floating point value 0.958849 */
41 #define HPF_Fs8000_Fc55_B1                        -2081986375         /* Floating point value -1.939001 */
42 #define HPF_Fs8000_Fc55_B2                         1010183914         /* Floating point value 0.940807 */
43 #define HPF_Fs11025_Fc55_A0                        1038210831         /* Floating point value 0.966909 */
44 #define HPF_Fs11025_Fc55_A1                       -2076421662         /* Floating point value -1.933818 */
45 #define HPF_Fs11025_Fc55_A2                        1038210831         /* Floating point value 0.966909 */
46 #define HPF_Fs11025_Fc55_B1                       -2099950710         /* Floating point value -1.955732 */
47 #define HPF_Fs11025_Fc55_B2                        1027238450         /* Floating point value 0.956690 */
48 #define HPF_Fs12000_Fc55_A0                        1040079943         /* Floating point value 0.968650 */
49 #define HPF_Fs12000_Fc55_A1                       -2080159885         /* Floating point value -1.937300 */
50 #define HPF_Fs12000_Fc55_A2                        1040079943         /* Floating point value 0.968650 */
51 #define HPF_Fs12000_Fc55_B1                       -2103811702         /* Floating point value -1.959327 */
52 #define HPF_Fs12000_Fc55_B2                        1030940477         /* Floating point value 0.960138 */
53 #define HPF_Fs16000_Fc55_A0                        1045381988         /* Floating point value 0.973588 */
54 #define HPF_Fs16000_Fc55_A1                       -2090763976         /* Floating point value -1.947176 */
55 #define HPF_Fs16000_Fc55_A2                        1045381988         /* Floating point value 0.973588 */
56 #define HPF_Fs16000_Fc55_B1                       -2114727793         /* Floating point value -1.969494 */
57 #define HPF_Fs16000_Fc55_B2                        1041478147         /* Floating point value 0.969952 */
58 #define HPF_Fs22050_Fc55_A0                        1049766523         /* Floating point value 0.977671 */
59 #define HPF_Fs22050_Fc55_A1                       -2099533046         /* Floating point value -1.955343 */
60 #define HPF_Fs22050_Fc55_A2                        1049766523         /* Floating point value 0.977671 */
61 #define HPF_Fs22050_Fc55_B1                       -2123714381         /* Floating point value -1.977863 */
62 #define HPF_Fs22050_Fc55_B2                        1050232780         /* Floating point value 0.978105 */
63 #define HPF_Fs24000_Fc55_A0                        1050711051         /* Floating point value 0.978551 */
64 #define HPF_Fs24000_Fc55_A1                       -2101422103         /* Floating point value -1.957102 */
65 #define HPF_Fs24000_Fc55_A2                        1050711051         /* Floating point value 0.978551 */
66 #define HPF_Fs24000_Fc55_B1                       -2125645498         /* Floating point value -1.979662 */
67 #define HPF_Fs24000_Fc55_B2                        1052123526         /* Floating point value 0.979866 */
68 #define HPF_Fs32000_Fc55_A0                        1053385759         /* Floating point value 0.981042 */
69 #define HPF_Fs32000_Fc55_A1                       -2106771519         /* Floating point value -1.962084 */
70 #define HPF_Fs32000_Fc55_A2                        1053385759         /* Floating point value 0.981042 */
71 #define HPF_Fs32000_Fc55_B1                       -2131104794         /* Floating point value -1.984746 */
72 #define HPF_Fs32000_Fc55_B2                        1057486949         /* Floating point value 0.984861 */
73 #define HPF_Fs44100_Fc55_A0                        1055592498         /* Floating point value 0.983097 */
74 #define HPF_Fs44100_Fc55_A1                       -2111184995         /* Floating point value -1.966194 */
75 #define HPF_Fs44100_Fc55_A2                        1055592498         /* Floating point value 0.983097 */
76 #define HPF_Fs44100_Fc55_B1                       -2135598658         /* Floating point value -1.988931 */
77 #define HPF_Fs44100_Fc55_B2                        1061922249         /* Floating point value 0.988992 */
78 #define HPF_Fs48000_Fc55_A0                        1056067276         /* Floating point value 0.983539 */
79 #define HPF_Fs48000_Fc55_A1                       -2112134551         /* Floating point value -1.967079 */
80 #define HPF_Fs48000_Fc55_A2                        1056067276         /* Floating point value 0.983539 */
81 #define HPF_Fs48000_Fc55_B1                       -2136564296         /* Floating point value -1.989831 */
82 #define HPF_Fs48000_Fc55_B2                        1062877714         /* Floating point value 0.989882 */
83 
84  /* Coefficients for centre frequency 66Hz */
85 #define HPF_Fs8000_Fc66_A0                         1023293271         /* Floating point value 0.953016 */
86 #define HPF_Fs8000_Fc66_A1                        -2046586542         /* Floating point value -1.906032 */
87 #define HPF_Fs8000_Fc66_A2                         1023293271         /* Floating point value 0.953016 */
88 #define HPF_Fs8000_Fc66_B1                        -2068896860         /* Floating point value -1.926810 */
89 #define HPF_Fs8000_Fc66_B2                          997931110         /* Floating point value 0.929396 */
90 #define HPF_Fs11025_Fc66_A0                        1033624228         /* Floating point value 0.962638 */
91 #define HPF_Fs11025_Fc66_A1                       -2067248455         /* Floating point value -1.925275 */
92 #define HPF_Fs11025_Fc66_A2                        1033624228         /* Floating point value 0.962638 */
93 #define HPF_Fs11025_Fc66_B1                       -2090448000         /* Floating point value -1.946881 */
94 #define HPF_Fs11025_Fc66_B2                        1018182305         /* Floating point value 0.948256 */
95 #define HPF_Fs12000_Fc66_A0                        1035857662         /* Floating point value 0.964718 */
96 #define HPF_Fs12000_Fc66_A1                       -2071715325         /* Floating point value -1.929435 */
97 #define HPF_Fs12000_Fc66_A2                        1035857662         /* Floating point value 0.964718 */
98 #define HPF_Fs12000_Fc66_B1                       -2095080333         /* Floating point value -1.951196 */
99 #define HPF_Fs12000_Fc66_B2                        1022587158         /* Floating point value 0.952359 */
100 #define HPF_Fs16000_Fc66_A0                        1042197528         /* Floating point value 0.970622 */
101 #define HPF_Fs16000_Fc66_A1                       -2084395056         /* Floating point value -1.941244 */
102 #define HPF_Fs16000_Fc66_A2                        1042197528         /* Floating point value 0.970622 */
103 #define HPF_Fs16000_Fc66_B1                       -2108177912         /* Floating point value -1.963394 */
104 #define HPF_Fs16000_Fc66_B2                        1035142690         /* Floating point value 0.964052 */
105 #define HPF_Fs22050_Fc66_A0                        1047445145         /* Floating point value 0.975509 */
106 #define HPF_Fs22050_Fc66_A1                       -2094890289         /* Floating point value -1.951019 */
107 #define HPF_Fs22050_Fc66_A2                        1047445145         /* Floating point value 0.975509 */
108 #define HPF_Fs22050_Fc66_B1                       -2118961025         /* Floating point value -1.973436 */
109 #define HPF_Fs22050_Fc66_B2                        1045593102         /* Floating point value 0.973784 */
110 #define HPF_Fs24000_Fc66_A0                        1048576175         /* Floating point value 0.976563 */
111 #define HPF_Fs24000_Fc66_A1                       -2097152349         /* Floating point value -1.953125 */
112 #define HPF_Fs24000_Fc66_A2                        1048576175         /* Floating point value 0.976563 */
113 #define HPF_Fs24000_Fc66_B1                       -2121278255         /* Floating point value -1.975594 */
114 #define HPF_Fs24000_Fc66_B2                        1047852379         /* Floating point value 0.975889 */
115 #define HPF_Fs32000_Fc66_A0                        1051780119         /* Floating point value 0.979547 */
116 #define HPF_Fs32000_Fc66_A1                       -2103560237         /* Floating point value -1.959093 */
117 #define HPF_Fs32000_Fc66_A2                        1051780119         /* Floating point value 0.979547 */
118 #define HPF_Fs32000_Fc66_B1                       -2127829187         /* Floating point value -1.981695 */
119 #define HPF_Fs32000_Fc66_B2                        1054265623         /* Floating point value 0.981861 */
120 #define HPF_Fs44100_Fc66_A0                        1054424722         /* Floating point value 0.982010 */
121 #define HPF_Fs44100_Fc66_A1                       -2108849444         /* Floating point value -1.964019 */
122 #define HPF_Fs44100_Fc66_A2                        1054424722         /* Floating point value 0.982010 */
123 #define HPF_Fs44100_Fc66_B1                       -2133221723         /* Floating point value -1.986718 */
124 #define HPF_Fs44100_Fc66_B2                        1059573993         /* Floating point value 0.986805 */
125 #define HPF_Fs48000_Fc66_A0                        1054993851         /* Floating point value 0.982540 */
126 #define HPF_Fs48000_Fc66_A1                       -2109987702         /* Floating point value -1.965079 */
127 #define HPF_Fs48000_Fc66_A2                        1054993851         /* Floating point value 0.982540 */
128 #define HPF_Fs48000_Fc66_B1                       -2134380475         /* Floating point value -1.987797 */
129 #define HPF_Fs48000_Fc66_B2                        1060718118         /* Floating point value 0.987871 */
130 
131  /* Coefficients for centre frequency 78Hz */
132 #define HPF_Fs8000_Fc78_A0                         1016504203         /* Floating point value 0.946693 */
133 #define HPF_Fs8000_Fc78_A1                        -2033008405         /* Floating point value -1.893387 */
134 #define HPF_Fs8000_Fc78_A2                         1016504203         /* Floating point value 0.946693 */
135 #define HPF_Fs8000_Fc78_B1                        -2054623390         /* Floating point value -1.913517 */
136 #define HPF_Fs8000_Fc78_B2                          984733853         /* Floating point value 0.917105 */
137 #define HPF_Fs11025_Fc78_A0                        1028643741         /* Floating point value 0.957999 */
138 #define HPF_Fs11025_Fc78_A1                       -2057287482         /* Floating point value -1.915998 */
139 #define HPF_Fs11025_Fc78_A2                        1028643741         /* Floating point value 0.957999 */
140 #define HPF_Fs11025_Fc78_B1                       -2080083769         /* Floating point value -1.937229 */
141 #define HPF_Fs11025_Fc78_B2                        1008393904         /* Floating point value 0.939140 */
142 #define HPF_Fs12000_Fc78_A0                        1031271067         /* Floating point value 0.960446 */
143 #define HPF_Fs12000_Fc78_A1                       -2062542133         /* Floating point value -1.920892 */
144 #define HPF_Fs12000_Fc78_A2                        1031271067         /* Floating point value 0.960446 */
145 #define HPF_Fs12000_Fc78_B1                       -2085557048         /* Floating point value -1.942326 */
146 #define HPF_Fs12000_Fc78_B2                        1013551620         /* Floating point value 0.943944 */
147 #define HPF_Fs16000_Fc78_A0                        1038734628         /* Floating point value 0.967397 */
148 #define HPF_Fs16000_Fc78_A1                       -2077469256         /* Floating point value -1.934794 */
149 #define HPF_Fs16000_Fc78_A2                        1038734628         /* Floating point value 0.967397 */
150 #define HPF_Fs16000_Fc78_B1                       -2101033380         /* Floating point value -1.956740 */
151 #define HPF_Fs16000_Fc78_B2                        1028275228         /* Floating point value 0.957656 */
152 #define HPF_Fs22050_Fc78_A0                        1044918584         /* Floating point value 0.973156 */
153 #define HPF_Fs22050_Fc78_A1                       -2089837169         /* Floating point value -1.946313 */
154 #define HPF_Fs22050_Fc78_A2                        1044918584         /* Floating point value 0.973156 */
155 #define HPF_Fs22050_Fc78_B1                       -2113775854         /* Floating point value -1.968607 */
156 #define HPF_Fs22050_Fc78_B2                        1040555007         /* Floating point value 0.969092 */
157 #define HPF_Fs24000_Fc78_A0                        1046252164         /* Floating point value 0.974398 */
158 #define HPF_Fs24000_Fc78_A1                       -2092504328         /* Floating point value -1.948797 */
159 #define HPF_Fs24000_Fc78_A2                        1046252164         /* Floating point value 0.974398 */
160 #define HPF_Fs24000_Fc78_B1                       -2116514229         /* Floating point value -1.971157 */
161 #define HPF_Fs24000_Fc78_B2                        1043212719         /* Floating point value 0.971568 */
162 #define HPF_Fs32000_Fc78_A0                        1050031301         /* Floating point value 0.977918 */
163 #define HPF_Fs32000_Fc78_A1                       -2100062603         /* Floating point value -1.955836 */
164 #define HPF_Fs32000_Fc78_A2                        1050031301         /* Floating point value 0.977918 */
165 #define HPF_Fs32000_Fc78_B1                       -2124255900         /* Floating point value -1.978367 */
166 #define HPF_Fs32000_Fc78_B2                        1050762639         /* Floating point value 0.978599 */
167 #define HPF_Fs44100_Fc78_A0                        1053152258         /* Floating point value 0.980824 */
168 #define HPF_Fs44100_Fc78_A1                       -2106304516         /* Floating point value -1.961649 */
169 #define HPF_Fs44100_Fc78_A2                        1053152258         /* Floating point value 0.980824 */
170 #define HPF_Fs44100_Fc78_B1                       -2130628742         /* Floating point value -1.984303 */
171 #define HPF_Fs44100_Fc78_B2                        1057018180         /* Floating point value 0.984425 */
172 #define HPF_Fs48000_Fc78_A0                        1053824087         /* Floating point value 0.981450 */
173 #define HPF_Fs48000_Fc78_A1                       -2107648173         /* Floating point value -1.962900 */
174 #define HPF_Fs48000_Fc78_A2                        1053824087         /* Floating point value 0.981450 */
175 #define HPF_Fs48000_Fc78_B1                       -2131998154         /* Floating point value -1.985578 */
176 #define HPF_Fs48000_Fc78_B2                        1058367200         /* Floating point value 0.985681 */
177 
178  /* Coefficients for centre frequency 90Hz */
179 #define HPF_Fs8000_Fc90_A0                         1009760053         /* Floating point value 0.940412 */
180 #define HPF_Fs8000_Fc90_A1                        -2019520105         /* Floating point value -1.880825 */
181 #define HPF_Fs8000_Fc90_A2                         1009760053         /* Floating point value 0.940412 */
182 #define HPF_Fs8000_Fc90_B1                        -2040357139         /* Floating point value -1.900231 */
183 #define HPF_Fs8000_Fc90_B2                          971711129         /* Floating point value 0.904977 */
184 #define HPF_Fs11025_Fc90_A0                        1023687217         /* Floating point value 0.953383 */
185 #define HPF_Fs11025_Fc90_A1                       -2047374434         /* Floating point value -1.906766 */
186 #define HPF_Fs11025_Fc90_A2                        1023687217         /* Floating point value 0.953383 */
187 #define HPF_Fs11025_Fc90_B1                       -2069722397         /* Floating point value -1.927579 */
188 #define HPF_Fs11025_Fc90_B2                         998699604         /* Floating point value 0.930111 */
189 #define HPF_Fs12000_Fc90_A0                        1026704754         /* Floating point value 0.956193 */
190 #define HPF_Fs12000_Fc90_A1                       -2053409508         /* Floating point value -1.912387 */
191 #define HPF_Fs12000_Fc90_A2                        1026704754         /* Floating point value 0.956193 */
192 #define HPF_Fs12000_Fc90_B1                       -2076035996         /* Floating point value -1.933459 */
193 #define HPF_Fs12000_Fc90_B2                        1004595918         /* Floating point value 0.935603 */
194 #define HPF_Fs16000_Fc90_A0                        1035283225         /* Floating point value 0.964183 */
195 #define HPF_Fs16000_Fc90_A1                       -2070566451         /* Floating point value -1.928365 */
196 #define HPF_Fs16000_Fc90_A2                        1035283225         /* Floating point value 0.964183 */
197 #define HPF_Fs16000_Fc90_B1                       -2093889811         /* Floating point value -1.950087 */
198 #define HPF_Fs16000_Fc90_B2                        1021453326         /* Floating point value 0.951303 */
199 #define HPF_Fs22050_Fc90_A0                        1042398116         /* Floating point value 0.970809 */
200 #define HPF_Fs22050_Fc90_A1                       -2084796232         /* Floating point value -1.941618 */
201 #define HPF_Fs22050_Fc90_A2                        1042398116         /* Floating point value 0.970809 */
202 #define HPF_Fs22050_Fc90_B1                       -2108591057         /* Floating point value -1.963778 */
203 #define HPF_Fs22050_Fc90_B2                        1035541188         /* Floating point value 0.964423 */
204 #define HPF_Fs24000_Fc90_A0                        1043933302         /* Floating point value 0.972239 */
205 #define HPF_Fs24000_Fc90_A1                       -2087866604         /* Floating point value -1.944477 */
206 #define HPF_Fs24000_Fc90_A2                        1043933302         /* Floating point value 0.972239 */
207 #define HPF_Fs24000_Fc90_B1                       -2111750495         /* Floating point value -1.966721 */
208 #define HPF_Fs24000_Fc90_B2                        1038593601         /* Floating point value 0.967266 */
209 #define HPF_Fs32000_Fc90_A0                        1048285391         /* Floating point value 0.976292 */
210 #define HPF_Fs32000_Fc90_A1                       -2096570783         /* Floating point value -1.952584 */
211 #define HPF_Fs32000_Fc90_A2                        1048285391         /* Floating point value 0.976292 */
212 #define HPF_Fs32000_Fc90_B1                       -2120682737         /* Floating point value -1.975040 */
213 #define HPF_Fs32000_Fc90_B2                        1047271295         /* Floating point value 0.975347 */
214 #define HPF_Fs44100_Fc90_A0                        1051881330         /* Floating point value 0.979641 */
215 #define HPF_Fs44100_Fc90_A1                       -2103762660         /* Floating point value -1.959282 */
216 #define HPF_Fs44100_Fc90_A2                        1051881330         /* Floating point value 0.979641 */
217 #define HPF_Fs44100_Fc90_B1                       -2128035809         /* Floating point value -1.981888 */
218 #define HPF_Fs44100_Fc90_B2                        1054468533         /* Floating point value 0.982050 */
219 #define HPF_Fs48000_Fc90_A0                        1052655619         /* Floating point value 0.980362 */
220 #define HPF_Fs48000_Fc90_A1                       -2105311238         /* Floating point value -1.960724 */
221 #define HPF_Fs48000_Fc90_A2                        1052655619         /* Floating point value 0.980362 */
222 #define HPF_Fs48000_Fc90_B1                       -2129615871         /* Floating point value -1.983359 */
223 #define HPF_Fs48000_Fc90_B2                        1056021492         /* Floating point value 0.983497 */
224 
225 
226 /************************************************************************************/
227 /*                                                                                  */
228 /* Band Pass Filter coefficients                                                    */
229 /*                                                                                  */
230 /************************************************************************************/
231 
232  /* Coefficients for centre frequency 55Hz */
233 #define BPF_Fs8000_Fc55_A0                            9875247         /* Floating point value 0.009197 */
234 #define BPF_Fs8000_Fc55_A1                                  0         /* Floating point value 0.000000 */
235 #define BPF_Fs8000_Fc55_A2                           -9875247         /* Floating point value -0.009197 */
236 #define BPF_Fs8000_Fc55_B1                        -2125519830         /* Floating point value -1.979545 */
237 #define BPF_Fs8000_Fc55_B2                         1053762629         /* Floating point value 0.981393 */
238 #define BPF_Fs11025_Fc55_A0                           7183952         /* Floating point value 0.006691 */
239 #define BPF_Fs11025_Fc55_A1                                 0         /* Floating point value 0.000000 */
240 #define BPF_Fs11025_Fc55_A2                          -7183952         /* Floating point value -0.006691 */
241 #define BPF_Fs11025_Fc55_B1                       -2131901658         /* Floating point value -1.985488 */
242 #define BPF_Fs11025_Fc55_B2                        1059207548         /* Floating point value 0.986464 */
243 #define BPF_Fs12000_Fc55_A0                           6603871         /* Floating point value 0.006150 */
244 #define BPF_Fs12000_Fc55_A1                                 0         /* Floating point value 0.000000 */
245 #define BPF_Fs12000_Fc55_A2                          -6603871         /* Floating point value -0.006150 */
246 #define BPF_Fs12000_Fc55_B1                       -2133238092         /* Floating point value -1.986733 */
247 #define BPF_Fs12000_Fc55_B2                        1060381143         /* Floating point value 0.987557 */
248 #define BPF_Fs16000_Fc55_A0                           4960591         /* Floating point value 0.004620 */
249 #define BPF_Fs16000_Fc55_A1                                 0         /* Floating point value 0.000000 */
250 #define BPF_Fs16000_Fc55_A2                          -4960591         /* Floating point value -0.004620 */
251 #define BPF_Fs16000_Fc55_B1                       -2136949052         /* Floating point value -1.990189 */
252 #define BPF_Fs16000_Fc55_B2                        1063705760         /* Floating point value 0.990653 */
253 #define BPF_Fs22050_Fc55_A0                           3604131         /* Floating point value 0.003357 */
254 #define BPF_Fs22050_Fc55_A1                                 0         /* Floating point value 0.000000 */
255 #define BPF_Fs22050_Fc55_A2                          -3604131         /* Floating point value -0.003357 */
256 #define BPF_Fs22050_Fc55_B1                       -2139929085         /* Floating point value -1.992964 */
257 #define BPF_Fs22050_Fc55_B2                        1066450095         /* Floating point value 0.993209 */
258 #define BPF_Fs24000_Fc55_A0                           3312207         /* Floating point value 0.003085 */
259 #define BPF_Fs24000_Fc55_A1                                 0         /* Floating point value 0.000000 */
260 #define BPF_Fs24000_Fc55_A2                          -3312207         /* Floating point value -0.003085 */
261 #define BPF_Fs24000_Fc55_B1                       -2140560606         /* Floating point value -1.993552 */
262 #define BPF_Fs24000_Fc55_B2                        1067040703         /* Floating point value 0.993759 */
263 #define BPF_Fs32000_Fc55_A0                           2486091         /* Floating point value 0.002315 */
264 #define BPF_Fs32000_Fc55_A1                                 0         /* Floating point value 0.000000 */
265 #define BPF_Fs32000_Fc55_A2                          -2486091         /* Floating point value -0.002315 */
266 #define BPF_Fs32000_Fc55_B1                       -2142328962         /* Floating point value -1.995199 */
267 #define BPF_Fs32000_Fc55_B2                        1068712067         /* Floating point value 0.995316 */
268 #define BPF_Fs44100_Fc55_A0                           1805125         /* Floating point value 0.001681 */
269 #define BPF_Fs44100_Fc55_A1                                 0         /* Floating point value 0.000000 */
270 #define BPF_Fs44100_Fc55_A2                          -1805125         /* Floating point value -0.001681 */
271 #define BPF_Fs44100_Fc55_B1                       -2143765772         /* Floating point value -1.996537 */
272 #define BPF_Fs44100_Fc55_B2                        1070089770         /* Floating point value 0.996599 */
273 #define BPF_Fs48000_Fc55_A0                           1658687         /* Floating point value 0.001545 */
274 #define BPF_Fs48000_Fc55_A1                                 0         /* Floating point value 0.000000 */
275 #define BPF_Fs48000_Fc55_A2                          -1658687         /* Floating point value -0.001545 */
276 #define BPF_Fs48000_Fc55_B1                       -2144072292         /* Floating point value -1.996823 */
277 #define BPF_Fs48000_Fc55_B2                        1070386036         /* Floating point value 0.996875 */
278 
279  /* Coefficients for centre frequency 66Hz */
280 #define BPF_Fs8000_Fc66_A0                           13580189         /* Floating point value 0.012648 */
281 #define BPF_Fs8000_Fc66_A1                                  0         /* Floating point value 0.000000 */
282 #define BPF_Fs8000_Fc66_A2                          -13580189         /* Floating point value -0.012648 */
283 #define BPF_Fs8000_Fc66_B1                        -2117161175         /* Floating point value -1.971760 */
284 #define BPF_Fs8000_Fc66_B2                         1046266945         /* Floating point value 0.974412 */
285 #define BPF_Fs11025_Fc66_A0                           9888559         /* Floating point value 0.009209 */
286 #define BPF_Fs11025_Fc66_A1                                 0         /* Floating point value 0.000000 */
287 #define BPF_Fs11025_Fc66_A2                          -9888559         /* Floating point value -0.009209 */
288 #define BPF_Fs11025_Fc66_B1                       -2125972738         /* Floating point value -1.979966 */
289 #define BPF_Fs11025_Fc66_B2                        1053735698         /* Floating point value 0.981368 */
290 #define BPF_Fs12000_Fc66_A0                           9091954         /* Floating point value 0.008468 */
291 #define BPF_Fs12000_Fc66_A1                                 0         /* Floating point value 0.000000 */
292 #define BPF_Fs12000_Fc66_A2                          -9091954         /* Floating point value -0.008468 */
293 #define BPF_Fs12000_Fc66_B1                       -2127818004         /* Floating point value -1.981685 */
294 #define BPF_Fs12000_Fc66_B2                        1055347356         /* Floating point value 0.982869 */
295 #define BPF_Fs16000_Fc66_A0                           6833525         /* Floating point value 0.006364 */
296 #define BPF_Fs16000_Fc66_A1                                 0         /* Floating point value 0.000000 */
297 #define BPF_Fs16000_Fc66_A2                          -6833525         /* Floating point value -0.006364 */
298 #define BPF_Fs16000_Fc66_B1                       -2132941739         /* Floating point value -1.986457 */
299 #define BPF_Fs16000_Fc66_B2                        1059916517         /* Floating point value 0.987124 */
300 #define BPF_Fs22050_Fc66_A0                           4967309         /* Floating point value 0.004626 */
301 #define BPF_Fs22050_Fc66_A1                                 0         /* Floating point value 0.000000 */
302 #define BPF_Fs22050_Fc66_A2                          -4967309         /* Floating point value -0.004626 */
303 #define BPF_Fs22050_Fc66_B1                       -2137056003         /* Floating point value -1.990288 */
304 #define BPF_Fs22050_Fc66_B2                        1063692170         /* Floating point value 0.990641 */
305 #define BPF_Fs24000_Fc66_A0                           4565445         /* Floating point value 0.004252 */
306 #define BPF_Fs24000_Fc66_A1                                 0         /* Floating point value 0.000000 */
307 #define BPF_Fs24000_Fc66_A2                          -4565445         /* Floating point value -0.004252 */
308 #define BPF_Fs24000_Fc66_B1                       -2137927842         /* Floating point value -1.991100 */
309 #define BPF_Fs24000_Fc66_B2                        1064505202         /* Floating point value 0.991398 */
310 #define BPF_Fs32000_Fc66_A0                           3427761         /* Floating point value 0.003192 */
311 #define BPF_Fs32000_Fc66_A1                                 0         /* Floating point value 0.000000 */
312 #define BPF_Fs32000_Fc66_A2                          -3427761         /* Floating point value -0.003192 */
313 #define BPF_Fs32000_Fc66_B1                       -2140369007         /* Floating point value -1.993374 */
314 #define BPF_Fs32000_Fc66_B2                        1066806920         /* Floating point value 0.993541 */
315 #define BPF_Fs44100_Fc66_A0                           2489466         /* Floating point value 0.002318 */
316 #define BPF_Fs44100_Fc66_A1                                 0         /* Floating point value 0.000000 */
317 #define BPF_Fs44100_Fc66_A2                          -2489466         /* Floating point value -0.002318 */
318 #define BPF_Fs44100_Fc66_B1                       -2142352342         /* Floating point value -1.995221 */
319 #define BPF_Fs44100_Fc66_B2                        1068705240         /* Floating point value 0.995309 */
320 #define BPF_Fs48000_Fc66_A0                           2287632         /* Floating point value 0.002131 */
321 #define BPF_Fs48000_Fc66_A1                                 0         /* Floating point value 0.000000 */
322 #define BPF_Fs48000_Fc66_A2                          -2287632         /* Floating point value -0.002131 */
323 #define BPF_Fs48000_Fc66_B1                       -2142775436         /* Floating point value -1.995615 */
324 #define BPF_Fs48000_Fc66_B2                        1069113581         /* Floating point value 0.995690 */
325 
326  /* Coefficients for centre frequency 78Hz */
327 #define BPF_Fs8000_Fc78_A0                           19941180         /* Floating point value 0.018572 */
328 #define BPF_Fs8000_Fc78_A1                                  0         /* Floating point value 0.000000 */
329 #define BPF_Fs8000_Fc78_A2                          -19941180         /* Floating point value -0.018572 */
330 #define BPF_Fs8000_Fc78_B1                        -2103186749         /* Floating point value -1.958745 */
331 #define BPF_Fs8000_Fc78_B2                         1033397648         /* Floating point value 0.962427 */
332 #define BPF_Fs11025_Fc78_A0                          14543934         /* Floating point value 0.013545 */
333 #define BPF_Fs11025_Fc78_A1                                 0         /* Floating point value 0.000000 */
334 #define BPF_Fs11025_Fc78_A2                         -14543934         /* Floating point value -0.013545 */
335 #define BPF_Fs11025_Fc78_B1                       -2115966638         /* Floating point value -1.970647 */
336 #define BPF_Fs11025_Fc78_B2                        1044317135         /* Floating point value 0.972596 */
337 #define BPF_Fs12000_Fc78_A0                          13376999         /* Floating point value 0.012458 */
338 #define BPF_Fs12000_Fc78_A1                                 0         /* Floating point value 0.000000 */
339 #define BPF_Fs12000_Fc78_A2                         -13376999         /* Floating point value -0.012458 */
340 #define BPF_Fs12000_Fc78_B1                       -2118651708         /* Floating point value -1.973148 */
341 #define BPF_Fs12000_Fc78_B2                        1046678029         /* Floating point value 0.974795 */
342 #define BPF_Fs16000_Fc78_A0                          10064222         /* Floating point value 0.009373 */
343 #define BPF_Fs16000_Fc78_A1                                 0         /* Floating point value 0.000000 */
344 #define BPF_Fs16000_Fc78_A2                         -10064222         /* Floating point value -0.009373 */
345 #define BPF_Fs16000_Fc78_B1                       -2126124342         /* Floating point value -1.980108 */
346 #define BPF_Fs16000_Fc78_B2                        1053380304         /* Floating point value 0.981037 */
347 #define BPF_Fs22050_Fc78_A0                           7321780         /* Floating point value 0.006819 */
348 #define BPF_Fs22050_Fc78_A1                                 0         /* Floating point value 0.000000 */
349 #define BPF_Fs22050_Fc78_A2                          -7321780         /* Floating point value -0.006819 */
350 #define BPF_Fs22050_Fc78_B1                       -2132143771         /* Floating point value -1.985714 */
351 #define BPF_Fs22050_Fc78_B2                        1058928700         /* Floating point value 0.986204 */
352 #define BPF_Fs24000_Fc78_A0                           6730640         /* Floating point value 0.006268 */
353 #define BPF_Fs24000_Fc78_A1                                 0         /* Floating point value 0.000000 */
354 #define BPF_Fs24000_Fc78_A2                          -6730640         /* Floating point value -0.006268 */
355 #define BPF_Fs24000_Fc78_B1                       -2133421607         /* Floating point value -1.986904 */
356 #define BPF_Fs24000_Fc78_B2                        1060124669         /* Floating point value 0.987318 */
357 #define BPF_Fs32000_Fc78_A0                           5055965         /* Floating point value 0.004709 */
358 #define BPF_Fs32000_Fc78_A1                                 0         /* Floating point value 0.000000 */
359 #define BPF_Fs32000_Fc78_A2                          -5055965         /* Floating point value -0.004709 */
360 #define BPF_Fs32000_Fc78_B1                       -2137003977         /* Floating point value -1.990240 */
361 #define BPF_Fs32000_Fc78_B2                        1063512802         /* Floating point value 0.990473 */
362 #define BPF_Fs44100_Fc78_A0                           3673516         /* Floating point value 0.003421 */
363 #define BPF_Fs44100_Fc78_A1                                 0         /* Floating point value 0.000000 */
364 #define BPF_Fs44100_Fc78_A2                          -3673516         /* Floating point value -0.003421 */
365 #define BPF_Fs44100_Fc78_B1                       -2139919394         /* Floating point value -1.992955 */
366 #define BPF_Fs44100_Fc78_B2                        1066309718         /* Floating point value 0.993078 */
367 #define BPF_Fs48000_Fc78_A0                           3375990         /* Floating point value 0.003144 */
368 #define BPF_Fs48000_Fc78_A1                                 0         /* Floating point value 0.000000 */
369 #define BPF_Fs48000_Fc78_A2                          -3375990         /* Floating point value -0.003144 */
370 #define BPF_Fs48000_Fc78_B1                       -2140541906         /* Floating point value -1.993535 */
371 #define BPF_Fs48000_Fc78_B2                        1066911660         /* Floating point value 0.993639 */
372 
373  /* Coefficients for centre frequency 90Hz */
374 #define BPF_Fs8000_Fc90_A0                           24438548         /* Floating point value 0.022760 */
375 #define BPF_Fs8000_Fc90_A1                                  0         /* Floating point value 0.000000 */
376 #define BPF_Fs8000_Fc90_A2                          -24438548         /* Floating point value -0.022760 */
377 #define BPF_Fs8000_Fc90_B1                        -2092801347         /* Floating point value -1.949073 */
378 #define BPF_Fs8000_Fc90_B2                         1024298757         /* Floating point value 0.953953 */
379 #define BPF_Fs11025_Fc90_A0                          17844385         /* Floating point value 0.016619 */
380 #define BPF_Fs11025_Fc90_A1                                 0         /* Floating point value 0.000000 */
381 #define BPF_Fs11025_Fc90_A2                         -17844385         /* Floating point value -0.016619 */
382 #define BPF_Fs11025_Fc90_B1                       -2108604921         /* Floating point value -1.963791 */
383 #define BPF_Fs11025_Fc90_B2                        1037639797         /* Floating point value 0.966377 */
384 #define BPF_Fs12000_Fc90_A0                          16416707         /* Floating point value 0.015289 */
385 #define BPF_Fs12000_Fc90_A1                                 0         /* Floating point value 0.000000 */
386 #define BPF_Fs12000_Fc90_A2                         -16416707         /* Floating point value -0.015289 */
387 #define BPF_Fs12000_Fc90_B1                       -2111922936         /* Floating point value -1.966882 */
388 #define BPF_Fs12000_Fc90_B2                        1040528216         /* Floating point value 0.969067 */
389 #define BPF_Fs16000_Fc90_A0                          12359883         /* Floating point value 0.011511 */
390 #define BPF_Fs16000_Fc90_A1                                 0         /* Floating point value 0.000000 */
391 #define BPF_Fs16000_Fc90_A2                         -12359883         /* Floating point value -0.011511 */
392 #define BPF_Fs16000_Fc90_B1                       -2121152162         /* Floating point value -1.975477 */
393 #define BPF_Fs16000_Fc90_B2                        1048735817         /* Floating point value 0.976711 */
394 #define BPF_Fs22050_Fc90_A0                           8997173         /* Floating point value 0.008379 */
395 #define BPF_Fs22050_Fc90_A1                                 0         /* Floating point value 0.000000 */
396 #define BPF_Fs22050_Fc90_A2                          -8997173         /* Floating point value -0.008379 */
397 #define BPF_Fs22050_Fc90_B1                       -2128580762         /* Floating point value -1.982395 */
398 #define BPF_Fs22050_Fc90_B2                        1055539113         /* Floating point value 0.983047 */
399 #define BPF_Fs24000_Fc90_A0                           8271818         /* Floating point value 0.007704 */
400 #define BPF_Fs24000_Fc90_A1                                 0         /* Floating point value 0.000000 */
401 #define BPF_Fs24000_Fc90_A2                          -8271818         /* Floating point value -0.007704 */
402 #define BPF_Fs24000_Fc90_B1                       -2130157013         /* Floating point value -1.983863 */
403 #define BPF_Fs24000_Fc90_B2                        1057006621         /* Floating point value 0.984414 */
404 #define BPF_Fs32000_Fc90_A0                           6215918         /* Floating point value 0.005789 */
405 #define BPF_Fs32000_Fc90_A1                                 0         /* Floating point value 0.000000 */
406 #define BPF_Fs32000_Fc90_A2                          -6215918         /* Floating point value -0.005789 */
407 #define BPF_Fs32000_Fc90_B1                       -2134574521         /* Floating point value -1.987977 */
408 #define BPF_Fs32000_Fc90_B2                        1061166033         /* Floating point value 0.988288 */
409 #define BPF_Fs44100_Fc90_A0                           4517651         /* Floating point value 0.004207 */
410 #define BPF_Fs44100_Fc90_A1                                 0         /* Floating point value 0.000000 */
411 #define BPF_Fs44100_Fc90_A2                          -4517651         /* Floating point value -0.004207 */
412 #define BPF_Fs44100_Fc90_B1                       -2138167926         /* Floating point value -1.991324 */
413 #define BPF_Fs44100_Fc90_B2                        1064601898         /* Floating point value 0.991488 */
414 #define BPF_Fs48000_Fc90_A0                           4152024         /* Floating point value 0.003867 */
415 #define BPF_Fs48000_Fc90_A1                                 0         /* Floating point value 0.000000 */
416 #define BPF_Fs48000_Fc90_A2                          -4152024         /* Floating point value -0.003867 */
417 #define BPF_Fs48000_Fc90_B1                       -2138935002         /* Floating point value -1.992038 */
418 #define BPF_Fs48000_Fc90_B2                        1065341620         /* Floating point value 0.992177 */
419 
420 
421 /************************************************************************************/
422 /*                                                                                  */
423 /* Automatic Gain Control time constants and gain settings                          */
424 /*                                                                                  */
425 /************************************************************************************/
426 
427 /* AGC Time constants */
428 #define AGC_ATTACK_Fs8000                               27571         /* Floating point value 0.841395 */
429 #define AGC_ATTACK_Fs11025                              28909         /* Floating point value 0.882223 */
430 #define AGC_ATTACK_Fs12000                              29205         /* Floating point value 0.891251 */
431 #define AGC_ATTACK_Fs16000                              30057         /* Floating point value 0.917276 */
432 #define AGC_ATTACK_Fs22050                              30778         /* Floating point value 0.939267 */
433 #define AGC_ATTACK_Fs24000                              30935         /* Floating point value 0.944061 */
434 #define AGC_ATTACK_Fs32000                              31383         /* Floating point value 0.957745 */
435 #define AGC_ATTACK_Fs44100                              31757         /* Floating point value 0.969158 */
436 #define AGC_ATTACK_Fs48000                              31838         /* Floating point value 0.971628 */
437 #define DECAY_SHIFT                                        10         /* As a power of 2 */
438 #define AGC_DECAY_Fs8000                                   44         /* Floating point value 0.000042 */
439 #define AGC_DECAY_Fs11025                                  32         /* Floating point value 0.000030 */
440 #define AGC_DECAY_Fs12000                                  29         /* Floating point value 0.000028 */
441 #define AGC_DECAY_Fs16000                                  22         /* Floating point value 0.000021 */
442 #define AGC_DECAY_Fs22050                                  16         /* Floating point value 0.000015 */
443 #define AGC_DECAY_Fs24000                                  15         /* Floating point value 0.000014 */
444 #define AGC_DECAY_Fs32000                                  11         /* Floating point value 0.000010 */
445 #define AGC_DECAY_Fs44100                                   8         /* Floating point value 0.000008 */
446 #define AGC_DECAY_Fs48000                                   7         /* Floating point value 0.000007 */
447 
448 /* AGC Gain settings */
449 #define AGC_GAIN_SCALE                                        31         /* As a power of 2 */
450 #define AGC_GAIN_SHIFT                                         4         /* As a power of 2 */
451 #define AGC_TARGETLEVEL                              33170337         /* Floating point value -0.100000dB */
452 #define AGC_HPFGAIN_0dB                             110739704         /* Floating point value 0.412538 */
453 #define AGC_GAIN_0dB                                        0         /* Floating point value 0.000000 */
454 #define AGC_HPFGAIN_1dB                             157006071         /* Floating point value 0.584893 */
455 #define AGC_GAIN_1dB                                 32754079         /* Floating point value 0.122018 */
456 #define AGC_HPFGAIN_2dB                             208917788         /* Floating point value 0.778279 */
457 #define AGC_GAIN_2dB                                 69504761         /* Floating point value 0.258925 */
458 #define AGC_HPFGAIN_3dB                             267163693         /* Floating point value 0.995262 */
459 #define AGC_GAIN_3dB                                110739704         /* Floating point value 0.412538 */
460 #define AGC_HPFGAIN_4dB                             332516674         /* Floating point value 1.238721 */
461 #define AGC_GAIN_4dB                                157006071         /* Floating point value 0.584893 */
462 #define AGC_HPFGAIN_5dB                             405843924         /* Floating point value 1.511886 */
463 #define AGC_GAIN_5dB                                208917788         /* Floating point value 0.778279 */
464 #define AGC_HPFGAIN_6dB                             488118451         /* Floating point value 1.818383 */
465 #define AGC_GAIN_6dB                                267163693         /* Floating point value 0.995262 */
466 #define AGC_HPFGAIN_7dB                             580431990         /* Floating point value 2.162278 */
467 #define AGC_GAIN_7dB                                332516674         /* Floating point value 1.238721 */
468 #define AGC_HPFGAIN_8dB                             684009483         /* Floating point value 2.548134 */
469 #define AGC_GAIN_8dB                                405843924         /* Floating point value 1.511886 */
470 #define AGC_HPFGAIN_9dB                             800225343         /* Floating point value 2.981072 */
471 #define AGC_GAIN_9dB                                488118451         /* Floating point value 1.818383 */
472 #define AGC_HPFGAIN_10dB                            930621681         /* Floating point value 3.466836 */
473 #define AGC_GAIN_10dB                               580431990         /* Floating point value 2.162278 */
474 #define AGC_HPFGAIN_11dB                           1076928780         /* Floating point value 4.011872 */
475 #define AGC_GAIN_11dB                               684009483         /* Floating point value 2.548134 */
476 #define AGC_HPFGAIN_12dB                           1241088045         /* Floating point value 4.623413 */
477 #define AGC_GAIN_12dB                               800225343         /* Floating point value 2.981072 */
478 #define AGC_HPFGAIN_13dB                           1425277769         /* Floating point value 5.309573 */
479 #define AGC_GAIN_13dB                               930621681         /* Floating point value 3.466836 */
480 #define AGC_HPFGAIN_14dB                           1631942039         /* Floating point value 6.079458 */
481 #define AGC_GAIN_14dB                              1076928780         /* Floating point value 4.011872 */
482 #define AGC_HPFGAIN_15dB                           1863823163         /* Floating point value 6.943282 */
483 #define AGC_GAIN_15dB                              1241088045         /* Floating point value 4.623413 */
484 
485 
486 /************************************************************************************/
487 /*                                                                                  */
488 /* Volume control                                                                   */
489 /*                                                                                  */
490 /************************************************************************************/
491 
492 /* Volume control gain */
493 #define VOLUME_MAX                                          0         /* In dBs */
494 #define VOLUME_SHIFT                                        0         /* In dBs */
495 
496 /* Volume control time constants */
497 #define VOL_TC_SHIFT                                       21         /* As a power of 2 */
498 #define VOL_TC_Fs8000                                   25889         /* Floating point value 0.024690 */
499 #define VOL_TC_Fs11025                                  18850         /* Floating point value 0.017977 */
500 #define VOL_TC_Fs12000                                  17331         /* Floating point value 0.016529 */
501 #define VOL_TC_Fs16000                                  13026         /* Floating point value 0.012422 */
502 #define VOL_TC_Fs22050                                   9468         /* Floating point value 0.009029 */
503 #define VOL_TC_Fs24000                                   8702         /* Floating point value 0.008299 */
504 #define VOL_TC_Fs32000                                   6533         /* Floating point value 0.006231 */
505 #define VOL_TC_Fs44100                                   4745         /* Floating point value 0.004525 */
506 #define VOL_TC_Fs48000                                   4360         /* Floating point value 0.004158 */
507 #define MIX_TC_Fs8000                                   29365         /* Floating point value 0.896151 */
508 #define MIX_TC_Fs11025                                  30230         /* Floating point value 0.922548 */
509 #define MIX_TC_Fs12000                                  30422         /* Floating point value 0.928415 */
510 #define MIX_TC_Fs16000                                  30978         /* Floating point value 0.945387 */
511 #define MIX_TC_Fs22050                                  31451         /* Floating point value 0.959804 */
512 #define MIX_TC_Fs24000                                  31554         /* Floating point value 0.962956 */
513 #define MIX_TC_Fs32000                                  31850         /* Floating point value 0.971973 */
514 #define MIX_TC_Fs44100                                  32097         /* Floating point value 0.979515 */
515 #define MIX_TC_Fs48000                                  32150         /* Floating point value 0.981150 */
516 
517 
518 #endif
519