如何分析波形文件的频率

Agu*_*him 2 python wave

如何以简单的方式分析波形文件的频率?没有额外的模块.

Vyk*_*tor 5

"分析"是什么意思?它可能意味着许多不同的东西,但我所知道的最简单的方法之一就是使用你可以轻松实现离散函数的卷积(你将在数组中得到点或者尝试离散步骤):

离散卷积方程

这可以通过以下方式轻松完成:

for i in main_array:
    from = i - len(convolution_kernel)/2
    // Todo: check boundaries
    result[i] = 0

    for j in convolution_kernel:
        result[i] += convolution_kernel[j] * main_array( from+j)
Run Code Online (Sandbox Code Playgroud)

或者你可以使用循环卷积(从eryksuns评论中获取的想法):

result = [sum(f[m]*g[n-m] for m in xrange(len(f))) for n in xrange(len(g))]
Run Code Online (Sandbox Code Playgroud)

这将使您能够测试某个信号是否存在于另一个信号中(并且您将尝试频率10,20,50,......并获得最佳结果).

您也可以谷歌determine wave frequency或稍微研究傅立叶变换(它是许多信号处理算法的基础).