我尝试从倒谱中获得基频。我决定使用峰值拾取算法,该算法使用采样率 fs 选取倒谱 (c) 的最大值。
function [f0] = spPitchCepstrum(c, fs)
% search for maximum between 2ms (=500Hz) and 20ms (=50Hz)
ms2=floor(fs*0.002); % 2ms
ms20=floor(fs*0.02); % 20ms
[maxi,idx]=max(abs(c(ms2:ms20)));
f0 = fs/(ms2+idx-1);
end
它有效,但我不明白为什么 f0 的计算方式如下:
f0 = fs/(ms2+idx-1);
其中分母是值组成索引。
你能解释一下为什么它是这样计算的吗?