cannam@60: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ cannam@60: cannam@60: /* cannam@60: QM DSP Library cannam@60: cannam@60: Centre for Digital Music, Queen Mary, University of London. cannam@60: This file copyright 2009 Thomas Wilmering. Chris@84: Chris@84: This program is free software; you can redistribute it and/or Chris@84: modify it under the terms of the GNU General Public License as Chris@84: published by the Free Software Foundation; either version 2 of the Chris@84: License, or (at your option) any later version. See the file Chris@84: COPYING included with this distribution for more information. cannam@60: */ cannam@60: cannam@60: #ifndef _WAVELET_H_ cannam@60: #define _WAVELET_H_ cannam@60: cannam@60: #include cannam@60: #include cannam@60: cannam@60: class Wavelet cannam@60: { cannam@60: public: cannam@60: enum Type { cannam@60: Haar = 0, cannam@60: Daubechies_2, cannam@60: Daubechies_3, cannam@60: Daubechies_4, cannam@60: Daubechies_5, cannam@60: Daubechies_6, cannam@60: Daubechies_7, cannam@60: Daubechies_8, cannam@60: Daubechies_9, cannam@60: Daubechies_10, cannam@60: Daubechies_20, cannam@60: Daubechies_40, cannam@60: Symlet_2, cannam@60: Symlet_3, cannam@60: Symlet_4, cannam@60: Symlet_5, cannam@60: Symlet_6, cannam@60: Symlet_7, cannam@60: Symlet_8, cannam@60: Symlet_9, cannam@60: Symlet_10, cannam@60: Symlet_20, cannam@60: Symlet_30, cannam@60: Coiflet_1, cannam@60: Coiflet_2, cannam@60: Coiflet_3, cannam@60: Coiflet_4, cannam@60: Coiflet_5, cannam@60: Biorthogonal_1_3, cannam@60: Biorthogonal_1_5, cannam@60: Biorthogonal_2_2, cannam@60: Biorthogonal_2_4, cannam@60: Biorthogonal_2_6, cannam@60: Biorthogonal_2_8, cannam@60: Biorthogonal_3_1, cannam@60: Biorthogonal_3_3, cannam@60: Biorthogonal_3_5, cannam@60: Biorthogonal_3_7, cannam@60: Biorthogonal_3_9, cannam@60: Biorthogonal_4_4, cannam@60: Biorthogonal_5_5, cannam@60: Biorthogonal_6_8, cannam@60: Meyer, cannam@60: cannam@60: LastType = Meyer cannam@60: }; cannam@60: cannam@60: static std::string getWaveletName(Type); cannam@60: cannam@60: static void createDecompositionFilters(Type, cannam@60: std::vector &lpd, cannam@60: std::vector &hpd); cannam@60: }; cannam@60: cannam@60: #endif