Python 在计算共振峰频率特征时,如何确定线性预测系数(LPC)中的滤波器顺序?
我是信号处理方面的新手,尝试计算不同.wav文件的共振峰频率特征 为了计算共振峰频率,我需要三个参数值:Python 在计算共振峰频率特征时,如何确定线性预测系数(LPC)中的滤波器顺序?,python,audio,scipy,signal-processing,librosa,Python,Audio,Scipy,Signal Processing,Librosa,我是信号处理方面的新手,尝试计算不同.wav文件的共振峰频率特征 为了计算共振峰频率,我需要三个参数值: 线性预测系数(LPC) 根 角度 我正在尝试使用python中的librosa.core.LPC计算线性预测系数(LPC)。它需要两个参数: librosa.core.lpc(y, order) 我有Y,但我不知道如何计算顺序,我有许多.wav文件,我必须设置顺序从所有文件中提取特征。如何确定所有wav文件计算LPC的顺序 下面两件事根和角可以像这样轻松计算: rts = numpy
- 线性预测系数(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顺序背后没有确切的科学依据,但有两条经验法则:
Fs=16000
即16kHz
,则将顺序设置为16import numpy as np
import librosa
A = librosa.core.lpc(y, 12)
rts = np.roots(A)
rts = rts[np.imag(rts) >= 0]
angz = np.arctan2(np.imag(rts), np.real(rts))
frqs = angz * fs / (2 * np.pi)
frqs.sort()
太棒了,非常感谢:)@AadityaUra很乐意帮忙。我在如何使代码更快上添加了额外的注释(我认为这主要是一个演示,但认为完整的代码可以帮助其他读者)。