xue@11: /* xue@11: Harmonic sinusoidal modelling and tools xue@11: xue@11: C++ code package for harmonic sinusoidal modelling and relevant signal processing. xue@11: Centre for Digital Music, Queen Mary, University of London. xue@11: This file copyright 2011 Wen Xue. xue@11: xue@11: This program is free software; you can redistribute it and/or xue@11: modify it under the terms of the GNU General Public License as xue@11: published by the Free Software Foundation; either version 2 of the xue@11: License, or (at your option) any later version. xue@11: */ xue@1: #ifndef waveletH xue@1: #define waveletH xue@1: Chris@5: /** Chris@5: \file wavelet.h - wavelet routines xue@1: */ xue@1: xue@1: //--wavelet filter routines-------------------------------------------------- xue@1: void Daubechies(int p, double* h); //computes Daubechies filter xue@1: void splinewl(int p1, int p2, double* h1, double* h2); //compute spline biorthogonal wavelet filter xue@1: int splinewl(int p1, int p2, double* h, double* hm, double* g, double* gm, int normmode=0, int* points=0);//compute spline biorthogonal wavelet filter xue@1: xue@1: //--periodic DWT and IDWT---------------------------------------------------- xue@1: int dwtpqmf(double* in, int Count, int N, double* h, double* g, int M, double* out); xue@1: int dwtp(double* in, int Count, int N, double* h, double* g, int M, double* out); xue@1: int dwtp(double* in, int Count, int N, double* h, int Mh, double* g, int Mg, double* out); xue@1: int dwtp(double* in, int Count, int N, double* h, int sh, int eh, double* g, int sg, int eg, double* out); xue@1: void idwtp(double* in, int Count, int N, double* h, double* g, int M, double* out); xue@1: void idwtp(double* in, int Count, int N, double* h, int Mh, double* g, int Mg, double* out); xue@1: void idwtp(double* in, int Count, int N, double* h, int sh, int eh, double* g, int sg, int eg, double* out); xue@1: xue@1: //--pseudo local cosine with wavelet packet---------------------------------- xue@1: void wavpacqmf(double*** spec, double* data, int Count, int WID, int wid, int M, double* h, double* g); xue@1: void wavpac(double*** spec, double* data, int Count, int WID, int wid, double* h, int hs, int he, double* g, int gs, int ge); xue@1: void iwavpacqmf(double* data, double** spec, int Fr, int Wid, int M, double* h, double* g); xue@1: void iwavpac(double* data, double** spec, int Fr, int Wid, double* h, int hs, int he, double* g, int gs, int ge); xue@1: xue@1: #endif