comparison intercom/aec.h @ 3:c6c5a16ce2f2

compilation fixes
author Peter Meerwald <pmeerw@cosy.sbg.ac.at>
date Fri, 25 Jun 2010 09:59:25 +0200
parents 13be24d74cd2
children
comparison
equal deleted inserted replaced
2:13be24d74cd2 3:c6c5a16ce2f2
301 * in x: loudspeaker sample (PCM as REALing point value) 301 * in x: loudspeaker sample (PCM as REALing point value)
302 * return: from 0 for doubletalk to 1.0 for single talk 302 * return: from 0 for doubletalk to 1.0 for single talk
303 */ 303 */
304 float dtd(REAL d, REAL x); 304 float dtd(REAL d, REAL x);
305 305
306 void AEC::leaky(); 306 void leaky();
307 307
308 /* Normalized Least Mean Square Algorithm pre-whitening (NLMS-pw) 308 /* Normalized Least Mean Square Algorithm pre-whitening (NLMS-pw)
309 * The LMS algorithm was developed by Bernard Widrow 309 * The LMS algorithm was developed by Bernard Widrow
310 * book: Haykin, Adaptive Filter Theory, 4. edition, Prentice Hall, 2002 310 * book: Haykin, Adaptive Filter Theory, 4. edition, Prentice Hall, 2002
311 * 311 *
325 /* Acoustic Echo Cancellation and Suppression of one sample 325 /* Acoustic Echo Cancellation and Suppression of one sample
326 * in d: microphone signal with echo 326 * in d: microphone signal with echo
327 * in x: loudspeaker signal 327 * in x: loudspeaker signal
328 * return: echo cancelled microphone signal 328 * return: echo cancelled microphone signal
329 */ 329 */
330 int AEC::doAEC(int d_, int x_); 330 int doAEC(int d_, int x_);
331 331
332 float AEC::getambient() { 332 float getambient() {
333 return dfast; 333 return dfast;
334 }; 334 };
335 void AEC::setambient(float Min_xf) { 335 void setambient(float Min_xf) {
336 dotp_xf_xf -= delta; // subtract old delta 336 dotp_xf_xf -= delta; // subtract old delta
337 delta = (NLMS_LEN-1) * Min_xf * Min_xf; 337 delta = (NLMS_LEN-1) * Min_xf * Min_xf;
338 dotp_xf_xf += delta; // add new delta 338 dotp_xf_xf += delta; // add new delta
339 }; 339 };
340 void AEC::setgain(float gain_) { 340 void setgain(float gain_) {
341 gain = gain_; 341 gain = gain_;
342 }; 342 };
343 void AEC::openwdisplay(); 343 void openwdisplay();
344 void AEC::setaes(float aes_y2_) { 344 void setaes(float aes_y2_) {
345 aes_y2 = aes_y2_; 345 aes_y2 = aes_y2_;
346 }; 346 };
347 double AEC::max_dotp_xf_xf(double u); 347 double max_dotp_xf_xf(double u);
348 }; 348 };
349 349
350 #define _AEC_H 350 #define _AEC_H
351 #endif 351 #endif

Repositories maintained by Peter Meerwald, pmeerw@pmeerw.net.