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: scales_tl.c tomwalters@0: =========================================================== tomwalters@0: tomwalters@0: Supplements "scales.c" tomwalters@0: (for use with WDF-TLF cochlear filterbank) tomwalters@0: tomwalters@0: Author : Christian Giguere tomwalters@0: First written : 29th March, 1991 tomwalters@0: Last edited : tomwalters@0: =========================================================== tomwalters@0: */ tomwalters@0: tomwalters@0: tomwalters@0: /***** includes *****/ tomwalters@0: tomwalters@0: #include "scales_tl.h" tomwalters@0: tomwalters@0: tomwalters@0: /***** defines *****/ tomwalters@0: tomwalters@0: tomwalters@0: /***** functions *****/ tomwalters@0: tomwalters@0: /************************************************************************* tomwalters@0: * DensityOnScale() tomwalters@0: * tomwalters@0: * Returns the density of channels of a filterbank (# per CB-rate unit). tomwalters@0: * tomwalters@0: * argument-name: comments: tomwalters@0: * minOnScale minimum channel freq. on arbitrary linear scale tomwalters@0: * maxOnScale maximum channel freq. on arbitrary linear scale tomwalters@0: * channels total number of channels tomwalters@0: **************************************************************************/ tomwalters@0: tomwalters@0: double DensityOnScale( minOnScale, maxOnScale, channels ) tomwalters@0: double minOnScale, maxOnScale ; tomwalters@0: int channels ; tomwalters@0: { tomwalters@0: if( channels == 1 ) { tomwalters@0: tomwalters@0: if( maxOnScale == minOnScale ) { tomwalters@0: tomwalters@0: return ( 0. ) ; /* arbitrary */ tomwalters@0: } tomwalters@0: else tomwalters@0: return ( 1. / ( maxOnScale - minOnScale ) ) ; tomwalters@0: } tomwalters@0: tomwalters@0: else tomwalters@0: return ( ( channels - 1. ) / ( maxOnScale - minOnScale ) ) ; tomwalters@0: tomwalters@0: }