annotate src/Modules/Output/Graphics/Scale/ScaleLogScaled.h @ 153:9a98efa01965

small change in python aimc data write
author hamel.phil
date Mon, 10 Jan 2011 16:01:10 +0000
parents 9d880fb93c39
children 73c6d61440ad
rev   line source
tomwalters@116 1 /*!
tomwalters@116 2 * \file
tomwalters@116 3 * \brief Log frequency scale for generating filter banks and their frequencies. Based on the scaling of the ERB scale
tomwalters@116 4 *
tomwalters@116 5 * \author Tom Walters <tcw24@cam.ac.uk>
tomwalters@116 6 * \date created 2006/09/26
tomwalters@116 7 * \version \$Id: ScaleLogScaled.h 459 2007-11-08 11:50:04Z tom $
tomwalters@116 8 */
tomwalters@116 9 /* (c) 2006, University of Cambridge, Medical Research Council
tomwalters@116 10 * http://www.pdn.cam.ac.uk/groups/cnbh/aimmanual
tomwalters@116 11 */
tomwalters@116 12 #ifndef __MODULE_SCALE_LOGSCALED_H__
tomwalters@116 13 #define __MODULE_SCALE_LOGSCALED_H__
tomwalters@116 14
tomwalters@116 15 #include <math.h>
tomwalters@116 16
tom@119 17 #include "Modules/Output/Graphics/Scale/Scale.h"
tom@119 18
tom@119 19 namespace aimc {
tomwalters@116 20
tomwalters@116 21 /*!
tomwalters@116 22 * \class ScaleERB "Modules/Scale/ScaleERB.h"
tomwalters@116 23 * \brief ERB frequency scale for generating filter banks and their frequencies
tomwalters@116 24 *
tomwalters@116 25 * It is very advisable to use Scale::Create() to an instance of this scale.
tomwalters@116 26 *
tomwalters@116 27 * References:
tomwalters@116 28 * - J. Smith and J. Abel (1999), "Bark and ERB bilinear transforms"
tomwalters@116 29 * http://www-ccrma.stanford.edu/~jos/bbt/
tomwalters@116 30 */
tomwalters@116 31 class ScaleLogScaled : public Scale {
tomwalters@116 32 public:
tomwalters@117 33 ScaleLogScaled(unsigned int min, unsigned int max, float density)
tomwalters@117 34 : Scale(min, max, density) { m_iType = SCALE_ERB; m_sName = "logscaled"; };
tomwalters@116 35
tomwalters@117 36 float FromLinear(float fFreq) {
tomwalters@117 37 return 21.4f*log10(0.00437f*fFreq);
tomwalters@117 38 };
tomwalters@116 39
tomwalters@117 40 float ToLinear(float fFreq) {
tomwalters@117 41 return (pow(10, fFreq/21.4f))/0.00437f;
tomwalters@117 42 };
tomwalters@116 43 };
tom@119 44 } // namespace aimc
tomwalters@116 45 #endif /* __MODULE_SCALE_ERB_H__ */