Mercurial > hg > audio-file-loader
comparison libs/aubioFullOSXUni/include/aubio/biquad.h @ 0:bcb0d40158f4
started audio file loader project - using oF_061
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Tue, 30 Aug 2011 20:18:34 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:bcb0d40158f4 |
---|---|
1 /* | |
2 Copyright (C) 2003 Paul Brossier | |
3 | |
4 This program is free software; you can redistribute it and/or modify | |
5 it under the terms of the GNU General Public License as published by | |
6 the Free Software Foundation; either version 2 of the License, or | |
7 (at your option) any later version. | |
8 | |
9 This program is distributed in the hope that it will be useful, | |
10 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 GNU General Public License for more details. | |
13 | |
14 You should have received a copy of the GNU General Public License | |
15 along with this program; if not, write to the Free Software | |
16 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |
17 | |
18 */ | |
19 | |
20 #ifndef BIQUAD_H | |
21 #define BIQUAD_H | |
22 | |
23 /** \file | |
24 | |
25 Second order Infinite Impulse Response filter | |
26 | |
27 This file implements a normalised biquad filter (second order IIR): | |
28 | |
29 \f$ y[n] = b_1 x[n] + b_2 x[n-1] + b_3 x[n-2] - a_2 y[n-1] - a_3 y[n-2] \f$ | |
30 | |
31 The filtfilt version runs the filter twice, forward and backward, to | |
32 compensate the phase shifting of the forward operation. | |
33 | |
34 */ | |
35 | |
36 #ifdef __cplusplus | |
37 extern "C" { | |
38 #endif | |
39 | |
40 /** biquad filter object */ | |
41 typedef struct _aubio_biquad_t aubio_biquad_t; | |
42 | |
43 /** filter input vector | |
44 | |
45 \param b biquad object as returned by new_aubio_biquad | |
46 \param in input vector to filter | |
47 | |
48 */ | |
49 void aubio_biquad_do(aubio_biquad_t * b, fvec_t * in); | |
50 /** filter input vector forward and backward | |
51 | |
52 \param b biquad object as returned by new_aubio_biquad | |
53 \param in input vector to filter | |
54 \param tmp memory space to use for computation | |
55 | |
56 */ | |
57 void aubio_biquad_do_filtfilt(aubio_biquad_t * b, fvec_t * in, fvec_t * tmp); | |
58 /** create new biquad filter | |
59 | |
60 \param b1 forward filter coefficient | |
61 \param b2 forward filter coefficient | |
62 \param b3 forward filter coefficient | |
63 \param a2 feedback filter coefficient | |
64 \param a3 feedback filter coefficient | |
65 | |
66 */ | |
67 aubio_biquad_t * new_aubio_biquad(lsmp_t b1, lsmp_t b2, lsmp_t b3, lsmp_t a2, lsmp_t a3); | |
68 | |
69 /** delete biquad filter | |
70 | |
71 \param b biquad object to delete | |
72 | |
73 */ | |
74 void del_aubio_biquad(aubio_biquad_t * b); | |
75 | |
76 #ifdef __cplusplus | |
77 } | |
78 #endif | |
79 | |
80 #endif /*BIQUAD_H*/ |