我是信号处理方面的新手,尝试计算不同.wav文件的共振峰频率特征
为了计算共振峰频率,我需要三个参数值:
我正在尝试使用python中的librosa.core.LPC计算线性预测系数(LPC)。它需要两个参数:
librosa.core.lpc(y, order)
我有Y,但我不知道如何计算顺序,我有许多.wav文件,我必须设置顺序从所有文件中提取特征。如何确定所有wav文件计算LPC的顺序
下面两件事根和角可以像这样轻松计算:
rts = numpy.roots(A)
rts = [r for r in rts if numpy.imag(r) >= 0]
angz = numpy.arctan2(numpy.imag(rts), numpy.real(rts))
# Get frequencies.
Fs = spf.getframerate()
frqs = sorted(angz * (Fs / (2 * math.pi)))
提前谢谢你
LPC的顺序背后没有确切的科学依据,但有两条经验法则:
两倍于人们期望找到的共振峰数量,再加上两个。如Systematic errors in the formant analysis of steady-state vowels中所述的解释:每个共振峰对应一个阻尼正弦曲线,可以由一对具有正确频率和阻尼的根捕获(其中一个根是另一个根的复共轭)。两个额外系数“以防万一”用于吸收信号中的任何剩余能量
以kHz为单位的采样频率。如果
Fs=16000
即16kHz
,则将顺序设置为16第一种方法似乎更受欢迎,例如在Mathworks page上进行了描述
关于优化的注释
与问题无关,但我忍不住对代码提出了两个小的调整,使其更具numpy性:
相关问题 更多 >
编程相关推荐