xue@11
|
1 /*
|
xue@11
|
2 Harmonic sinusoidal modelling and tools
|
xue@11
|
3
|
xue@11
|
4 C++ code package for harmonic sinusoidal modelling and relevant signal processing.
|
xue@11
|
5 Centre for Digital Music, Queen Mary, University of London.
|
xue@11
|
6 This file copyright 2011 Wen Xue.
|
xue@11
|
7
|
xue@11
|
8 This program is free software; you can redistribute it and/or
|
xue@11
|
9 modify it under the terms of the GNU General Public License as
|
xue@11
|
10 published by the Free Software Foundation; either version 2 of the
|
xue@11
|
11 License, or (at your option) any later version.
|
xue@11
|
12 */
|
xue@1
|
13 #ifndef WindowFunctionsH
|
xue@1
|
14 #define WindowFunctionsH
|
xue@1
|
15
|
Chris@5
|
16 /**
|
Chris@5
|
17 \file windowfunctions.h - implements a few common window functions.
|
xue@1
|
18 */
|
xue@1
|
19
|
xue@1
|
20 enum WindowType
|
xue@1
|
21 {
|
xue@1
|
22 wtRectangle,
|
xue@1
|
23 wtTriangular,
|
xue@1
|
24 wtHamming,
|
xue@1
|
25 wtBlackman,
|
xue@1
|
26 wtGaussian,
|
xue@1
|
27 wtKaiser,
|
xue@1
|
28 wtHalfCosine,
|
xue@1
|
29 wtHann,
|
xue@1
|
30 wtHannSqr,
|
xue@1
|
31 wtHann3sqrt
|
xue@1
|
32 };
|
xue@1
|
33
|
xue@1
|
34 //--window function computation routines-------------------------------------
|
xue@1
|
35 void FillWindow(double* newwindow, WindowType wt, int Count, int* ips=0, double* dps=0);
|
xue@1
|
36 double* NewWindow(WindowType wt, int Count, int* ips=0, double* dps=0, double* newwindow=0);
|
xue@1
|
37 double* NewWindow8(WindowType wt, int Count, int* ips=0, double* dps=0, double* newwindow=0);
|
xue@1
|
38 double* NewdWindow(WindowType wt, int Count, int* ips=0, double* dps=0, double* newdwindow=0);
|
xue@1
|
39 double* NewddWindow(WindowType wt, int Count, int* ips=0, double* dps=0, double* newddwindow=0);
|
xue@1
|
40 double* NewdddWindow(WindowType wt, int Count, int* ips=0, double* dps=0, double* newdddwindow=0);
|
xue@1
|
41
|
xue@1
|
42 //--other functions----------------------------------------------------------
|
xue@1
|
43 void windowspec(WindowType wt, int N, int* M, double* c, double* iH2, double* d=0);
|
xue@1
|
44
|
xue@1
|
45 #endif
|