[ci] add pip install to readthedocs.yaml
[aubio.git] / python / demos / demo_filterbank_triangle_bands.py
1 #! /usr/bin/env python
2
3 from aubio import filterbank, fvec
4 from pylab import loglog, show, subplot, xlim, ylim, xlabel, ylabel, title
5 from numpy import vstack, arange
6
7 win_s = 2048
8 samplerate = 48000
9
10 freq_list = [60, 80, 200, 400, 800, 1600, 3200, 6400, 12800, 24000]
11 n_filters = len(freq_list) - 2
12
13 f = filterbank(n_filters, win_s)
14 freqs = fvec(freq_list)
15 f.set_triangle_bands(freqs, samplerate)
16
17 subplot(211)
18 title('Examples of filterbank built with set_triangle_bands and set_coeffs')
19 times = vstack([arange(win_s // 2 + 1) * samplerate / win_s] * n_filters)
20 loglog(times.T, f.get_coeffs().T, '.-')
21 xlim([50, samplerate/2])
22 ylim([1.0e-6, 2.0e-2])
23 ylabel('Amplitude')
24
25 ## build a new filterbank
26
27 freq_list = [60, 80, 200, 400, 800, 1200, 1600, 3200, 6400, 10000, 15000, 24000]
28 n_filters = len(freq_list) - 2
29
30 f = filterbank(n_filters, win_s)
31 freqs = fvec(freq_list)
32 f.set_triangle_bands(freqs, samplerate)
33
34 coeffs = f.get_coeffs()
35 coeffs[4] *= 5.
36
37 f.set_coeffs(coeffs)
38
39 subplot(212)
40 times = vstack([arange(win_s // 2 + 1) * samplerate / win_s] * n_filters)
41 loglog(times.T, f.get_coeffs().T, '.-')
42 xlim([50, samplerate/2])
43 ylim([1.0e-6, 2.0e-2])
44 xlabel('Frequency (Hz)')
45 ylabel('Amplitude')
46
47 show()