g168models.h

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

Generated on Tue Jul 24 11:29:28 2007 for libspandsp by  doxygen 1.5.2