- from pylab import *
- import scikits.audiolab as al
-
-
-
- def plot_from_file(file_no, clear_plot=True, color='k'):
- #
- channel_1 = time_array = None
- snd, samp_freq, nbits = al.wavread(file_no+'.wav')
-
- #
- channel_1 = snd[:,0]
-
- #
- n, p = len(channel_1), fft(channel_1)
- n_unique_pts = ceil((n+1)/2.)
-
- #
- p = abs(p[0:n_unique_pts])
- p = p/float(n)
- p = p**2
-
- #
- if n % 2 > 0: p[1:len(p)] = p[1:len(p)] * 2
- else: p[1:len(p)-1] = p[1:len(p)-1] * 2
-
- #
- scale = float(samp_freq)/n
- freq_array = arange(0, n_unique_pts, 1.0) * scale/110
-
- #
- if clear_plot: clf()
- x_axis = freq_array[100/scale:1100/scale]
- y_axis = 10*log10(p[100/scale:1100/scale]/10**-12)
- plot(x_axis, y_axis, color=color)
-
- #
- xlabel('n-th Harmonic (frequency/110)')
- ylabel('POWER (dB)')
-
- return x_axis, y_axis
-
-
- file_nos = raw_input("list of files to write = ").split(' ')
-
- lis = []
- x_axis = []
- csv = open('all_data.csv', 'w')
-
- print >> csv, 'harmonic,power'
-
-
-
-
-
- for file_no in file_nos:
-
- x_axis, y_axis = plot_from_file(file_no, clear_plot=True)
-
-
- if len(lis) == 0: lis = y_axis
- else:
- for i in range(len(y_axis)): lis[i] += y_axis[i]
-
- savefig(file_no+'.png')
-
-
- for n in range(len(x_axis)):
- fl = floor(2*x_axis[n])/2.
- if x_axis[n] - fl < 0.03:
-
- print >> csv, "%s,%s" % (fl, y_axis[n])
-
-
-
- lis = lis/len(file_nos)
- clf()
-
-
- csv.close()
-
-
- for file_no in file_nos: plot_from_file(file_no, clear_plot=False, color='#59aa9a')
- plot(x_axis, lis, color='k', lw=2.5)
- savefig('complete.png')