double FundFreqRefinementOfHarmonicStruct(const vector<complex<double> >& spectrum, double approx_f0, int nb_harm, double used_zp)
{
- double approx_f0_rel = approx_f0*spectrum.size()/double(GetSamplingRate());
- assert(approx_f0_rel>1 && approx_f0_rel<=spectrum.size()/2-1);
-
vector<Harmonic> harms = GetHarmonicStruct(spectrum, approx_f0, nb_harm, used_zp, 0.2);
if(harms.empty())
double sum_f0 = 0.0;
for(size_t i=0; i<harms.size(); i++)
- sum_f0 += harms[i].freq/harms[i].harm_number; // TODO mod weigthed ???
+ sum_f0 += harms[i].freq/harms[i].harm_number; // TODO mod weigthed ???
return sum_f0/harms.size();
}