Portál AbcLinuxu, 26. listopadu 2025 12:01
:~/Desktop$ dr14_tmeter . cnewsfm-227t.wav: DR 17 cnewsfm-227ccc.wav: DR 8 cnewsfm-227.wav: DR 17 cnewsfm-227tc.wav: DR 15 cnewsfm-227cc.wav: DR 16 cnewsfm-227c.wav: DR 15 cnewsfm-227.mp3: DR 17 DR = 15
def gen_spectrum(arr):
fftsize = 1024
W = np.hamming(fftsize)
acc = np.zeros(fftsize)
it = 0
for i in range(0, len(arr)-fftsize, fftsize//2):
sp = np.fft.fft(arr[i:i+fftsize]*W)
pw = np.fft.fftshift(10*np.log10((np.square(np.real(sp))+np.square(np.imag(sp)))/fftsize))
acc += pw
it += 1
acc /= it
Rychlejší by bylo to vhodně numpy.reshape a pak všechny ty operace udělat nad vektorem vektorů, ale to neumím napsat s overlapem.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.