📄 difmag.c
字号:
/***********************************************************************
*
* DIFMAG Version 49
*
**********************************************************************
*
* Compute Average Magnitude Difference Function
*
* Inputs:
* SPEECH - Low pass filtered speech
* LPITA - Length of speech buffer
* TAU - Table of lags
* LTAU - Number of lag values to compute
* MAXLAG - Maximum possible lag value
* Outputs:
* AMDF - Average Magnitude Difference for each lag in TAU
* MINPTR - Index of minimum AMDF value
* MAXPTR - Index of maximum AMDF value
*/
#include <math.h>
#include "lpcdefs.h"
difmag( speech, tau, ltau, maxlag, amdf, minptr, maxptr )
int maxlag, *minptr, *maxptr, ltau;
int tau[];
float speech[], amdf[];
{
int i, j, n1, n2;
float sum;
*minptr = 1;
*maxptr = 1;
for(i=1;i<=ltau;i++) {
n1 = (maxlag-tau[i]) *0.5 + 1;
n2 = n1 + MAXWIN - 1;
sum = 0.;
for(j=n1;j<=n2;j+=4) {
sum += (float)fabs((double) (speech[j] - speech[j+tau[i]]) );
}
amdf[i] = sum;
if( amdf[i] < amdf[*minptr])
*minptr = i;
if( amdf[i] > amdf[*maxptr])
*maxptr = i;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -