History

[py] improve style for demo_filterbank.py

Paul Brossier committed 8 years ago

Commit eff63ab1 parent 254acce1 file · +31 −17Browse files

Showing the changes to python (1 of 1 file). Show all

Unified · Split

python/demos/demo_filterbank.py+31−17
@@ -1,30 +1,44 @@
11 #! /usr/bin/env python
22
3−from aubio import filterbank, fvec
4−from pylab import loglog, show, xlim, ylim, xlabel, ylabel, title
5−from numpy import vstack, arange
3+"""Create a filterbank from a list of frequencies.
64
7−win_s = 2048
5+This demo uses `aubio.filterbank.set_triangle_bands` to build a set of
6+triangular filters from a list of frequencies.
7+
8+The filterbank coefficients are then modified before being displayed."""
9+
10+import aubio
11+import numpy as np
12+import matplotlib.pyplot as plt
13+
14+# sampling rate and size of the fft
815 samplerate = 48000
16+win_s = 2048
917
18+# define a list of custom frequency
1019 freq_list = [60, 80, 200, 400, 800, 1600, 3200, 6400, 12800, 24000]
20+# number of filters to create
1121 n_filters = len(freq_list) - 2
1222
13−f = filterbank(n_filters, win_s)
14−freqs = fvec(freq_list)
23+# create a new filterbank
24+f = aubio.filterbank(n_filters, win_s)
25+freqs = aubio.fvec(freq_list)
1526 f.set_triangle_bands(freqs, samplerate)
1627
28+# get the coefficients from the filterbank
1729 coeffs = f.get_coeffs()
18−coeffs[4] *= 5.
19−
30+# apply a gain to fifth band
31+coeffs[4] *= 6.
32+# load the modified coeffs into the filterbank
2033 f.set_coeffs(coeffs)
2134
22−times = vstack([arange(win_s // 2 + 1) * samplerate / win_s] * n_filters)
23−title('Bank of filters built using a simple list of boundaries\nThe middle band has been amplified by 2.')
24−loglog(times.T, f.get_coeffs().T, '.-')
25−xlim([50, samplerate/2])
26−ylim([1.0e-6, 2.0e-2])
27−xlabel('log frequency (Hz)')
28−ylabel('log amplitude')
29−
30−show()
35+# display the band gains in a loglog plot
36+freqs = np.vstack([np.arange(win_s // 2 + 1) * samplerate / win_s] * n_filters)
37+plt.title('filterbank built from a list of frequencies\n'
38+ 'The 5th band has been amplified by a factor 6.')
39+plt.loglog(freqs.T, f.get_coeffs().T, '.-')
40+plt.xlim([50, samplerate/2])
41+plt.ylim([1.0e-6, 2.0e-2])
42+plt.xlabel('log frequency (Hz)')
43+plt.ylabel('log amplitude')
44+plt.show()

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t