tomwalters@0: /* tomwalters@0: Copyright (c) Applied Psychology Unit, Medical Research Council. 1988, 1989 tomwalters@0: =========================================================================== tomwalters@0: tomwalters@0: Permission to use, copy, modify, and distribute this software without fee tomwalters@0: is hereby granted for research purposes, provided that this copyright tomwalters@0: notice appears in all copies and in all supporting documentation, and that tomwalters@0: the software is not redistributed for any fee (except for a nominal shipping tomwalters@0: charge). Anyone wanting to incorporate all or part of this software in a tomwalters@0: commercial product must obtain a license from the Medical Research Council. tomwalters@0: tomwalters@0: The MRC makes no representations about the suitability of this tomwalters@0: software for any purpose. It is provided "as is" without express or implied tomwalters@0: warranty. tomwalters@0: tomwalters@0: THE MRC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING tomwalters@0: ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE tomwalters@0: A.P.U. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY tomwalters@0: DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN tomwalters@0: AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF tomwalters@0: OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. tomwalters@0: */ tomwalters@0: tomwalters@0: /* tomwalters@0: Acknowledgment: tomwalters@0: ============== tomwalters@0: tomwalters@0: The source code provided in this file was originally developed by tomwalters@0: Christian Giguere as part of a Ph.D degree at the Department of tomwalters@0: Engineering of the University of Cambridge from April 1990 to tomwalters@0: November 1993. The code was subsequently adapted under a grant tomwalters@0: from the Hearing Research Trust for full compatibility with tomwalters@0: AIM Release 6.15. tomwalters@0: tomwalters@0: Christian Giguere 25/03/94 tomwalters@0: tomwalters@0: */ tomwalters@0: tomwalters@0: /* tomwalters@0: ============================================================= tomwalters@0: wdf_tl.h tomwalters@0: ============================================================= tomwalters@0: tomwalters@0: Wave digital filter (WDF) implementation of the cochlear tomwalters@0: transmission line (TL) network. tomwalters@0: tomwalters@0: Author : Christian Giguere tomwalters@0: First written : 19th March, 1991 tomwalters@0: Last edited : 18th February, 1994 tomwalters@0: ============================================================= tomwalters@0: */ tomwalters@0: tomwalters@0: #ifndef _WDF_TL_H_ tomwalters@0: tomwalters@0: tomwalters@0: /***** defines *****/ tomwalters@0: tomwalters@0: #define _WDF_TL_H_ tomwalters@0: tomwalters@0: #define DISPLACEMENT ( 0 ) tomwalters@0: #define VELOCITY ( 1 ) tomwalters@0: tomwalters@0: tomwalters@0: /***** private data structure for WDF-TL module *****/ tomwalters@0: tomwalters@0: typedef struct _wdf_filter_state WDFilterState ; tomwalters@0: tomwalters@0: struct _wdf_filter_state { tomwalters@0: double gamma231 ; /* WDF multiplier coefficients (Adaptors 23-25) */ tomwalters@0: double gamma241 ; tomwalters@0: double gamma251, gamma252 ; tomwalters@0: char *states; /* WDF state vector */ tomwalters@0: char *coeffs ; /* WDF coefficient vector (not used) */ tomwalters@0: double out_scale_disp ; /* scaling to convert output to BM displacement */ tomwalters@0: double out_scale_vel ; /* scaling to convert output to BM velocity */ tomwalters@0: double OHC_gain ; /* normalized OHC feedback gain */ tomwalters@0: double OHC_sat ; /* normalized OHC half-saturation displacement */ tomwalters@0: int active ; /* is channel active for display ? (0=no, 1=yes) */ tomwalters@0: double rms ; /* BM rms vibration amplitude */ tomwalters@0: long sample ; /* sample size in rms computation */ tomwalters@0: } ; tomwalters@0: tomwalters@0: tomwalters@0: /***** externals *****/ tomwalters@0: tomwalters@0: extern WDFilterState *WDFilter() ; tomwalters@0: extern void DoWDFdataArray(), CloseWDF() ; tomwalters@0: tomwalters@0: #endif tomwalters@0: