我有两个音频文件,我的任务是找出一个尽可能匹配文件的最小相位传递函数(文件中有很多噪音,因此无法完美匹配)。我知道滤波器的特性,必须弄清Q和频率。我已经使用声音文件将文件导入到Python中,因此这不是问题。
由于各种原因,最好的选择是匹配相位而不是幅度。如何计算两个文件的相位差并在x轴上输出具有固有频率(hz)的(平滑的)图?我认为一个相当大的情节足以用眼睛匹配过滤器。
我提出的操作顺序:
第一步很容易使用numpy:
import numpy.fft
FFT=numpy.fft.fft(data)
我想知道是否有一些命令可以自动从第二步的FFT中提取幅度和相位。到目前为止没有运气。这是我最需要帮助的一步。
对于第4步,首先使用fftfreq命令创建索引频率,然后删除绘图的负部分(在数组中的正数之后存储)。情节之后:
freq=numpy.fft.fftfreq(N,1/44100)
freq=freq[:N/2]
FFTPhase=FFTphase[:N/2]
import matplotlib.pyplot as plt
plt.plot(FFTphase[freq])
唯一的问题是我收到一条错误消息:" IndexError:用作索引的数组必须是整数(或布尔)类型"