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

Generated on Fri Nov 10 09:40:23 2006 for libspandsp by  doxygen 1.5.1