00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #if !defined(_SPANDSP_G168MODELS_H_)
00030 #define _SPANDSP_G168MODELS_H_
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 const int32_t line_model_d2_coeffs[] =
00043 {
00044 -436, -829, -2797, -4208, -17968, -11215, 46150, 34480,
00045 -10427, 9049, -1309, -6320, 390, -8191, -1751, -6051,
00046 -3796, -4055, -3948, -2557, -3372, -1808, -2259, -1300,
00047 -1098, -618, -340, -61, 323, 419, 745, 716,
00048 946, 880, 1014, 976, 1033, 1091, 1053, 1042,
00049 794, 831, 899, 716, 390, 313, 304, 304,
00050 73, -119, -109, -176, -359, -407, -512, -580,
00051 -704, -618, -685, -791, -772, -820, -839, -724
00052 };
00053 #define LINE_MODEL_D2_GAIN 1.39E-5f
00054
00055
00056
00057
00058
00059
00060
00061
00062 const int32_t line_model_d3_coeffs[] =
00063 {
00064 -381, 658, 1730, -51, -3511, -1418, 7660, 8861,
00065 -8106, -21370, -5307, 23064, 24020, 1020, -12374, -16296,
00066 -19524, -7480, 13509, 17115, 13952, 13952, 97, -9326,
00067 -9046, -15208, -9853, -3858, -1979, 6029, 5616, 7214,
00068 6820, 3935, 3919, 921, 1316, -693, -759, -1517,
00069 -2176, -2028, -2654, -1814, -2077, -1468, -1221, -842,
00070 -463, -298, -68, 64, 493, 723, 789, 954,
00071 756, 839, 872, 1020, 789, 822, 558, 658,
00072 476, 377, 377, 262, 97, -68, -183, -232,
00073 -331, -347, -430, -314, -430, -463, -463, -414,
00074 -381, -479, -479, -512, -479, -397, -430, -397,
00075 -298, -265, -249, -216, -249, -265, -166, -232
00076 };
00077 #define LINE_MODEL_D3_GAIN 1.44E-5f
00078
00079
00080
00081
00082
00083
00084
00085
00086 const int32_t line_model_d4_coeffs[] =
00087 {
00088 -448, -436, 2230, 2448, -4178, -7050, 5846, 18581,
00089 2322, -26261, -16249, 21637, 25649, -2267, -10311, -4693,
00090 -12690, -7428, 14164, 13467, 4438, 8627, 456, -11879,
00091 -6352, -5104, -7496, 3271, 6566, 4277, 11131, 7562,
00092 1475, 3728, -3525, -7301, -3101, -9269, -6146, -2553,
00093 -6272, 811, 124, 788, 5147, 2172, 5387, 4598,
00094 3535, 4004, 2311, 2150, 1017, 330, -139, -573,
00095 -1100, -1157, -1180, -1455, -1123, -1386, -1123, -1066,
00096 -1020, -1100, -1008, -1077, -1088, -917, -917, -963,
00097 -814, -871, -734, -642, -562, -356, -379, -345,
00098 -230, -233, -333, -356, -390, -310, -265, -368,
00099 -310, -310, -390, -482, -459, -482, -551, -573
00100 };
00101 #define LINE_MODEL_D4_GAIN 1.52E-5f
00102
00103
00104
00105
00106
00107
00108
00109
00110 const int32_t line_model_d5_coeffs[] =
00111 {
00112 160, 312, -241, -415, 897, 908, -1326, -1499,
00113 2405, 3347, -3624, -7733, 4041, 14484, -1477, -21739,
00114 -4470, 25356, 11458, -19696, -11800, 5766, 789, 6633,
00115 14624, -6975, -17156, -187, 149, 1515, 14907, 4345,
00116 -7128, -2757, -10185, -7083, 6850, 3944, 6969, 8694,
00117 -4068, -3852, -5793, -9371, 453, 1060, 3965, 9463,
00118 2393, 2784, -892, -7366, -3376, -5847, -2399, 3011,
00119 1537, 6623, 4205, 1602, 1592, -4752, -3646, -5207,
00120 -5577, -501, -1174, 4041, 5647, 4628, 7252, 2123,
00121 2654, -881, -4113, -3244, -7289, -3830, -4600, -2508,
00122 431, -144, 4184, 2372, 4617, 3576, 2382, 2839,
00123 -404, 539, -1803, -1401, -1705, -2269, -783, -1608,
00124 -220, -306, 257, 615, 225, 561, 8, 344,
00125 127, -57, 182, 41, 203, -111, 95, -79,
00126 30, 84, -13, -68, -241, -68, -24, 19,
00127 -57, -24, 30, -68, 84, -155, -68, 19
00128 };
00129 #define LINE_MODEL_D5_GAIN 1.77E-5f
00130
00131
00132
00133
00134
00135
00136
00137
00138 const int32_t line_model_d6_coeffs[] =
00139 {
00140 293, 268, 475, 460, 517, 704, 581, 879,
00141 573, 896, 604, 787, 561, 538, 440, 97,
00142 265, -385, 20, -938, -523, -1438, -1134, -1887,
00143 -1727, -1698, -4266, -22548, -43424, 2743, 25897, 7380,
00144 21499, 11983, 10400, 11667, 3889, 7241, 925, 2018,
00145 -821, -2068, -2236, -4283, -3406, -5022, -4039, -4842,
00146 -4104, -4089, -3582, -2978, -2734, -1805, -1608, -645,
00147 -495, 279, 471, 947, 1186, 1438, 1669, 1640,
00148 1901, 1687, 1803, 1543, 1566, 1342, 1163, 963,
00149 733, 665, 323, 221, -14, -107, -279, -379,
00150 -468, -513, -473, -588, -612, -652, -616, -566,
00151 -515, -485, -404, -344, -290, -202, -180, -123
00152 };
00153 #define LINE_MODEL_D6_GAIN 9.33E-6f
00154
00155
00156
00157
00158
00159
00160
00161
00162 const int32_t line_model_d7_coeffs[] =
00163 {
00164 29, 109, -83, 198, -294, -135, -415, -202,
00165 -444, -337, -313, -450, -105, -503, 145, -490,
00166 267, -231, 340, 77, 343, 783, 158, 1341,
00167 195, 1798, 344, 1845, 629, 1604, 1182, 940,
00168 5163, 19522, 8421, -50953, -9043, 18046, -13553, 13336,
00169 -3471, -107, 1788, -7409, 2469, -7994, 490, -3860,
00170 -837, 490, -636, 3682, 1141, 5019, 2635, 5025,
00171 3946, 4414, 4026, 3005, 3380, 1616, 2007, 158,
00172 388, -1198, -1117, -2134, -2547, -2589, -3310, -2778,
00173 -3427, -2779, -3116, -2502, -2399, -1956, -1539, -1239,
00174 -570, -377, 251, 331, 964, 1177, 1449, 1564,
00175 1724, 1871, 1767, 1802, 1630, 1632, 1379, 1271,
00176 1063, 856, 711, 482, 289, 54, -137, -321,
00177 -490, -638, -764, -836, -800, -859, -838, -837,
00178 -834, -740, -673, -581, -493, -436, -327, -201
00179 };
00180 #define LINE_MODEL_D7_GAIN 1.51E-5f
00181
00182
00183
00184
00185
00186
00187
00188
00189 const int32_t line_model_d8_coeffs[] =
00190 {
00191 258, -111, 337, -319, 347, -434, 192, -450,
00192 -108, -343, -596, -177, -1187, -52, -1781, -147,
00193 -1959, -326, -1601, -1389, -13620, -720, 33818, -10683,
00194 -6742, 12489, -9862, 8950, -1574, 758, 3526, -3118,
00195 2421, -8966, -4901, 11385, 18072, -14410, -7473, 19836,
00196 -16854, -3115, 9483, -17799, 7399, -4342, -7415, 7929,
00197 -10726, 6239, -2526, -1317, 5345, -4565, 6868, -2195,
00198 3425, 1969, -109, 3963, -1275, 3087, -892, 1239,
00199 2, -427, 596, -1184, 551, -1244, 141, -743,
00200 -415, -372, -769, -183, -785, -270, -659, -377,
00201 -523, -325, -245, -255, -60, 35, 218, 149,
00202 340, 233, 365, 303, 251, 230, 209, 179
00203 };
00204 #define LINE_MODEL_D8_GAIN 2.33E-5f
00205
00206
00207
00208
00209
00210
00211
00212
00213 const int32_t line_model_d9_coeffs[] =
00214 {
00215 80, 31, 4, 42, 42, -61, -81, -64,
00216 121, -102, -26, 1002, -9250, -22562, 39321, 35681,
00217 -35289, 25312, -1457, -229, 15659, -6786, 16791, 3860,
00218 2239, -28730, -11885, 33871, -176, -16421, 18173, -9669,
00219 -10163, 9941, -19365, 3592, -5907, -10257, 5336, -12933,
00220 4348, -4802, -1791, 3035, -4433, 5553, -2596, 3992,
00221 1255, 1450, 4079, 324, 4340, 1059, 3083, 1917,
00222 1756, 2478, 1027, 1871, 845, 1284, 813, 806,
00223 869, 471, 646, 438, 449, 432, 473, 394,
00224 452, 538, 717, 723, 850, 756, 753, 899,
00225 555, 669, 619, 500, 650, 615, 516, 492,
00226 427, 291, 356, 147, 107, -50, -88, -59,
00227 -238, -165, -183
00228 };
00229 #define LINE_MODEL_D9_GAIN 1.33E-5f
00230
00231
00232
00233
00234
00235 const float level_measurement_bp_coeffs[] =
00236 {
00237 0.0000, 0.0006, 0.0005, 0.0004, 0.0011,
00238 0.0000, 0.0015, -0.0003, 0.0012, -0.0002,
00239 0.0000, 0.0002, -0.0020, 0.0005, -0.0040,
00240 0.0000, -0.0047, -0.0019, -0.0033, -0.0047,
00241 0.0000, -0.0068, 0.0036, -0.0057, 0.0054,
00242 0.0000, 0.0044, 0.0095, 0.0017, 0.0188,
00243 0.0000, 0.0225, 0.0024, 0.0163, 0.0092,
00244 0.0000, 0.0164, -0.0210, 0.0161, -0.0375,
00245 0.0000, -0.0406, -0.0357, -0.0267, -0.0871,
00246 0.0000, -0.1420, 0.0289, -0.1843, 0.0475,
00247 0.8006, 0.0475, -0.1843, 0.0289, -0.1420,
00248 0.0000, -0.0871, -0.0267, -0.0357, -0.0406,
00249 0.0000, -0.0375, 0.0161, -0.0210, 0.0164,
00250 0.0000, 0.0092, 0.0163, 0.0024, 0.0225,
00251 0.0000, 0.0188, 0.0017, 0.0095, 0.0044,
00252 0.0000, 0.0054, -0.0057, 0.0036, -0.0068,
00253 0.0000, -0.0047, -0.0033, -0.0019, -0.0047,
00254 0.0000, -0.0040, 0.0005, -0.0020, 0.0002,
00255 0.0000, -0.0002, 0.0012, -0.0003, 0.0015,
00256 0.0000, 0.0011, 0.0004, 0.0005, 0.0006,
00257 0.0000
00258 };
00259
00260
00261
00262
00263 const int css_c1[] =
00264 {
00265 -155, 276, 517, 578, 491, 302, 86, -103,
00266 -207, -198, 60, 190, 543, 948, 1362, 1741,
00267 2043, 2276, 2422, 2500, 2552, 2595, 2655, 2758,
00268 2896, 3060, 3224, 3370, 3500, 3569, 3603, 3603,
00269 3595, 3586, 3595, 3638, 3724, 3819, 3922, 4000,
00270 4043, 4034, 3974, 3862, 3724, 3577, 3439, 3336,
00271 3267, 3224, 3198, 3172, 3129, 3043, 2914, 2750,
00272 2560, 2353, 2155, 1991, 1853, 1750, 1672, 1603,
00273 1534, 1440, 1310, 1146, 965, 776, 603, 448,
00274 345, 276, 250, 250, 267, 267, 241, 190,
00275 103, -9, -138, -267, -388, -491, -569, -638,
00276 -698, -759, -813, -888, -957, -1034, -1103, -1146,
00277 -1181, -1190, -1198, -1215, -1259, -1327, -1457, -1629,
00278 -1853, -2121, -2414, -2707, -3017, -3319, -3612, -3913,
00279 -4224, -4560, -4922, -5301, -5715, -6137, -6560, -6948,
00280 -7301, -7568, -7732, -7758, -7620, -7310, -6810, -6155,
00281 -5344, -4439, -3474, -2508, -1595, -802
00282 };
00283
00284
00285
00286
00287 const int css_c3[] =
00288 {
00289 -198, -112, -9, 103, 233, 388, 543, 724,
00290 896, 1060, 1233, 1388, 1517, 1638, 1747, 1810,
00291 1845, 1845, 1802, 1707, 1569, 1379, 1146, 871,
00292 560, 233, -121, -491, -871, -1250, -1638, -2043,
00293 -2465, -2896, -3345, -3819, -4310, -4810, -5319, -5836,
00294 -6353, -6853, -7353, -7836, -8292, -8715, -9077, -9370,
00295 -9542, -9542, -9361, -8956, -8327, -7465, -6396, -5163,
00296 -3827, -2448, -1103, 155, 1293, 2241, 3034, 3655,
00297 4138, 4517, 4827, 5094, 5344, 5594, 5827, 6043,
00298 6215, 6344, 6413, 6422, 6379, 6310, 6215, 6120,
00299 6051, 6000, 5991, 5991, 6000, 6008, 5991, 5939,
00300 5853, 5715, 5560, 5387, 5215, 5043, 4879, 4732,
00301 4586, 4439, 4276, 4086, 3870, 3629, 3370, 3086,
00302 2801, 2534, 2267, 2034, 1819, 1612, 1422, 1224,
00303 1026, 819, 603, 388, 181, 9, -181, -328,
00304 -448, -543, -629, -707, -784, -871, -948, -1026,
00305 -1112, -1181, -1241, -1276, -1293, -1302, -1293, -1267,
00306 -1250, -1233, -1224, -1224, -1224, -1224, -1215, -1198,
00307 -1172, -1129, -1077, -1026, -974, -922, -888, -871,
00308 -845, -828, -810, -793, -767, -741, -698, -672,
00309 -638, -603, -595, -586, -595, -603, -621, -629,
00310 -938, -638, -638, -638, -638, -638, -647, -664,
00311 -690, -724, -767, -793, -819, -845, -853, -871,
00312 -879, -888, -896, -922, -948, -974, -1009, -1026,
00313 -1052, -1069, -1077, -1069, -1060, -1060, -1052, -1043,
00314 -1043, -1052, -1060, -1060, -1060, -1052, -1034, -1017,
00315 -991, -957, -931, -905, -888, -862, -845, -819,
00316 -793, -767, -724, -672, -621, -560, -509, -457,
00317 -397, -345, -276, -207, -112
00318 };
00319
00320
00321
00322
00323
00324 const int tones_6_4_2_7[][2] =
00325 {
00326 { 697, 0},
00327 { 941, 0},
00328 {1336, 0},
00329 {1633, 0},
00330 { 697, 1209},
00331 { 770, 1336},
00332 { 852, 1477},
00333 { 941, 1633},
00334 { 0, 0}
00335 };
00336
00337 #endif
00338