Python 计算一组波形文件的平均FIR,绘制它并保存到txt作为表格

Python 计算一组波形文件的平均FIR,绘制它并保存到txt作为表格,python,matplotlib,plot,wav,Python,Matplotlib,Plot,Wav,就在第二天,我遇到了Python和麻烦… 我有很多CD标准(16位,44100Hz)立体声波形文件,需要找到它们的平均值(算术平均值)FIR。算法很容易说…-每个频率的振幅之和除以文件量。然后绘制所获得的FIR,并将其作为表格写入文本文件。 我翻阅了一些类似的文章,像这样令人兴奋,但仍然有太多的东西,甚至是字母表,我失去了联系,每次我试图重复这些例子时,编译器错误就会随之而来。 我将感谢任何能使mè走出死胡同的帮助。所以,这些是我害羞的步伐 由于文件的数量可能会有所不同,因此在手肘处有一个文件列

就在第二天,我遇到了Python和麻烦…
我有很多CD标准(16位,44100Hz)立体声波形文件,需要找到它们的平均值(算术平均值)FIR。算法很容易说…-每个频率的振幅之和除以文件量。然后绘制所获得的FIR,并将其作为表格写入文本文件。
我翻阅了一些类似的文章,像这样令人兴奋,但仍然有太多的东西,甚至是字母表,我失去了联系,每次我试图重复这些例子时,编译器错误就会随之而来。
我将感谢任何能使mè走出死胡同的帮助。所以,这些是我害羞的步伐

由于文件的数量可能会有所不同,因此在手肘处有一个文件列表可能很有用:

    import os
    a = os.path.expanduser(u"~")  # absolute user path var.
    b = "integrator\\files"       # base folder to use with files in it
    c = os.path.join(a, b)
    flist = os.listdir(c)
    images = filter(lambda x: x.endswith('.wav'), flist)  # filter non-wavs
    for i in range(len(flist)):
        print(flist[i])
    print()
这对我来说很好!但我仍然无法理解如何组织多个文件的读取,并计算它们的平均值 正如我所说,我需要类似“全球套餐”的东西:

当main file.py看起来像这样时:

    import matplotlib.pyplot as plt
    from scipy.io import wavfile # get the api
    from scipy.fftpack import fft
    from pylab import *
    def f(filename):
    fs, data = wavfile.read(filename)  # load the data
    a = data.T[0]                      # this is a two channel soundtrack, I get the first track
    b=[(ele/2**16.)*2-1 for ele in a]  # this is 16-bit track, now normalized on [-1,1)
    c = fft(b)                         # create a list of complex number
    d = len(c)/2                       # you only need half of the fft list
在这里,我只是不知道;I don’我不知道我最好用d做什么——循环求和还是。。。然后这个代码示例只运行一个通道进行绘图-我需要输出FIR作为每个通道的成对序列。但仍不清楚如何将FFT窗口调整为至少65536 FFT大小的汉宁(哦,是的,我知道thа)计算速度非常慢)

最后,我们可以绘制并保存图形:

     plt.plot(abs(c[:(d-1)]),'r')
     savefig(filename+'.png',bbox_inches='tight')  
。。。以某种方式将平均FIR写入txt表文件

如果这个脚本可以作为控制台应用程序使用,我会很高兴的(虽然起初我梦想着一种极简的GUI,能够选择任何包含文件的文件夹,带有certian overview按钮和进度条,以确保应用程序仍在运行……尽管使用FFT慢速“scythe”硬覆盖十个或二十五个WAV

在Windows 7 x86 PC上获得了C:\Anaconda2(正确安装了numpy、scipy和matplotlib)

提前谢谢你! 关于,, 我

     plt.plot(abs(c[:(d-1)]),'r')
     savefig(filename+'.png',bbox_inches='tight')