可能重复:
C编程部门
我正在尝试将值转换为 Mel 过滤器,但是,每次输出结果时,它始终为“0”,即使它是双精度值。它应该是一个浮点数吗?这是一篇关于等式的文章:http ://en.wikipedia.org/wiki/Mel_scale
这是功能:
double MFCC::mel_filter(int val)
{
double tmp;
tmp = 2595 * log10(1 + val / 700);
cout << tmp << endl;
return tmp;
}
vector<double> MFCC::mel_frame(int size)
{
vector<double> mel_Frame;
for(int i=1; (i < size); i++)
{
this->mel_filter(i);
}
return mel_Frame;
}
在main中,我将传递诸如.. (1, 2, 3, 4, 5, 6, 7 ......)之类的值
如果输入“1”,则等式为:
m = 2595 * log10(1 + 1 / 700) = 1.6
有什么帮助或建议吗?