aubio 0.4.9

Loading...
Searching...
No Matches
biquad.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2003-2015 Paul Brossier <piem@aubio.org>
3
4 This file is part of aubio.
5
6 aubio is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 aubio is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with aubio. If not, see <http://www.gnu.org/licenses/>.
18
19*/
20
21#ifndef AUBIO_FILTER_BIQUAD_H
22#define AUBIO_FILTER_BIQUAD_H
23
24/** \file
25
26 Second order Infinite Impulse Response filter
27
28 This file implements a normalised biquad filter (second order IIR):
29
30 \f$ y[n] = b_0 x[n] + b_1 x[n-1] + b_2 x[n-2] - a_1 y[n-1] - a_2 y[n-2] \f$
31
32 The filtfilt version runs the filter twice, forward and backward, to
33 compensate the phase shifting of the forward operation.
34
35 See also <a href="http://en.wikipedia.org/wiki/Digital_biquad_filter">Digital
36 biquad filter</a> on wikipedia.
37
38 \example temporal/test-biquad.c
39
40*/
41
42#ifdef __cplusplus
43 extern "C" {
44#endif
45
46/** set coefficients of a biquad filter
47
48 \param f filter object as returned by new_aubio_filter()
49 \param b0 forward filter coefficient
50 \param b1 forward filter coefficient
51 \param b2 forward filter coefficient
52 \param a1 feedback filter coefficient
53 \param a2 feedback filter coefficient
54
55*/
56 uint_t aubio_filter_set_biquad (aubio_filter_t * f, lsmp_t b0, lsmp_t b1,
57 lsmp_t b2, lsmp_t a1, lsmp_t a2);
58
59/** create biquad filter with `b0`, `b1`, `b2`, `a1`, `a2` coeffs
60
61 \param b0 forward filter coefficient
62 \param b1 forward filter coefficient
63 \param b2 forward filter coefficient
64 \param a1 feedback filter coefficient
65 \param a2 feedback filter coefficient
66
67*/
68 aubio_filter_t *new_aubio_filter_biquad (lsmp_t b0, lsmp_t b1, lsmp_t b2,
69 lsmp_t a1, lsmp_t a2);
70
71#ifdef __cplusplus
72}
73#endif
74
75#endif /* AUBIO_FILTER_BIQUAD_H */
aubio_filter_set_biquad
uint_t aubio_filter_set_biquad(aubio_filter_t *f, lsmp_t b0, lsmp_t b1, lsmp_t b2, lsmp_t a1, lsmp_t a2)
set coefficients of a biquad filter
new_aubio_filter_biquad
aubio_filter_t * new_aubio_filter_biquad(lsmp_t b0, lsmp_t b1, lsmp_t b2, lsmp_t a1, lsmp_t a2)
create biquad filter with b0, b1, b2, a1, a2 coeffs
aubio_filter_t
struct _aubio_filter_t aubio_filter_t
Digital filter.
Definition filter.h:72
uint_t
unsigned int uint_t
unsigned integer
Definition types.h:60
lsmp_t
double lsmp_t
long sample format (64 bits or more)
Definition types.h:51