spandsp  0.0.6
private/echo.h
Go to the documentation of this file.
1 /*
2  * SpanDSP - a series of DSP components for telephony
3  *
4  * private/echo.h - An echo cancellor, suitable for electrical and acoustic
5  * cancellation. This code does not currently comply with
6  * any relevant standards (e.g. G.164/5/7/8).
7  *
8  * Written by Steve Underwood <steveu@coppice.org>
9  *
10  * Copyright (C) 2001 Steve Underwood
11  *
12  * All rights reserved.
13  *
14  * This program is free software; you can redistribute it and/or modify
15  * it under the terms of the GNU Lesser General Public License version 2.1,
16  * as published by the Free Software Foundation.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU Lesser General Public License for more details.
22  *
23  * You should have received a copy of the GNU Lesser General Public
24  * License along with this program; if not, write to the Free Software
25  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26  */
27 
28 /*! \file */
29 
30 #if !defined(_SPANDSP_PRIVATE_ECHO_H_)
31 #define _SPANDSP_PRIVATE_ECHO_H_
32 
33 /*!
34  G.168 echo canceller descriptor. This defines the working state for a line
35  echo canceller.
36 */
38 {
39  int tx_power[4];
40  int rx_power[3];
41  int clean_rx_power;
42 
43  int rx_power_threshold;
44  int nonupdate_dwell;
45 
46  int curr_pos;
47 
48  int taps;
49  int tap_mask;
50  int adaption_mode;
51 
52  int32_t supp_test1;
53  int32_t supp_test2;
54  int32_t supp1;
55  int32_t supp2;
56  int vad;
57  int cng;
58 
59  int16_t geigel_max;
60  int geigel_lag;
61  int dtd_onset;
62  int tap_set;
63  int tap_rotate_counter;
64 
65  int32_t latest_correction; /* Indication of the magnitude of the latest
66  adaption, or a code to indicate why adaption
67  was skipped, for test purposes */
68  int32_t last_acf[28];
69  int narrowband_count;
70  int narrowband_score;
71 
72  fir16_state_t fir_state;
73  /*! Echo FIR taps (16 bit version) */
74  int16_t *fir_taps16[4];
75  /*! Echo FIR taps (32 bit version) */
76  int32_t *fir_taps32;
77 
78  /* DC and near DC blocking filter states */
79  int32_t tx_hpf[2];
80  int32_t rx_hpf[2];
81 
82  /* Parameters for the optional Hoth noise generator */
83  int cng_level;
84  int cng_rndnum;
85  int cng_filter;
86 
87  /* Snapshot sample of coeffs used for development */
88  int16_t *snapshot;
89 };
90 
91 #endif
92 /*- End of file ------------------------------------------------------------*/
Definition: private/echo.h:37
Definition: fir.h:45
int16_t * fir_taps16[4]
Definition: private/echo.h:74
int32_t * fir_taps32
Definition: private/echo.h:76