Advertisement
Guest User

Untitled

a guest
May 30th, 2011
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.98 KB | None | 0 0
  1. def histo(fn):
  2.     import scikits.audiolab as au
  3.    
  4.     (sp, sf, b) = au.wavread(fn)
  5.    
  6.     sp = sp.conj().transpose()
  7.     sfmmean, nmeas = 0, 0
  8.     his=zeros((65536,), dtype=numpy.int)
  9.     windd = hanning(2048).conj().transpose()
  10.        
  11.     for i in range(len(sp[1])):
  12.         for j in (0, 1):
  13.             t = round(sp[j, i] * 32768 + 32769)
  14.             his[t] += 1
  15.    
  16.            
  17.             if i % 1024 == 0 and i > 1024:
  18.                 w = sp[0, i-2048:i]
  19.                 w = w * windd
  20.                 wt = pylab.fft(w)
  21.                 wt = wt * conj(wt)
  22.                 wt = maximum(wt, .0000000001)
  23.                 am = sum(wt) / 2048
  24.                 gm = exp(sum(log(wt)) / 2048)
  25.                 sfm = gm / am
  26.                 if am > .5:
  27.                     nmeas += 1
  28.                     sfm = 10 * log10(sfm)
  29.                     sfmmean += sfm
  30.    
  31.     his = maximum(his/float(sum(his)), .000000000001)
  32.     xax = arange(-32768,32768)
  33.     semilogy(xax,his)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement