⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 segsnr.c

📁 语音CELP压缩解压源代码(C语音)
💻 C
字号:
/**************************************************************************** ROUTINE*               segsnr** FUNCTION*                *               calculate average segmental SNR ** SYNOPSIS*               subroutine segsnr(s, ts, sumsnr, framesnr, snrflag)**   formal **                       data    I/O*       name            type    type    function*       -------------------------------------------------------------------*       s		float	i	"reference" speech input*	ts		short	i	"test" speech input*	l		int	i	number of samples*	sumsnr		float	o	average snr*	framesnr	int	o	number of calculations averaged*	snrflag		int	o	flag for valid snr value****************************************************************************** DESCRIPTION******************************************************************************* CALLED BY**       celp** CALLS**       ***************************************************************************/#include <math.h>#define TRUE	1#define FALSE	0segsnr(s, ts, l, sumsnr, framesnr, snrflag)int l, *framesnr, *snrflag;short ts[];float s[], *sumsnr;{  int j;  float seng = 0.0, neng = 0.0, snr;  *snrflag = FALSE;  for (j = 0; j < l; j++)  {    seng += s[j] * s[j];    neng += (s[j] - ts[j]) * (s[j] - ts[j]);  }  if (neng > 0.0)  {    snr = seng / neng;    if (snr > 0.0)    {			    /*  *only include segments whose snr is between -10 dB and 64 dB	*/      if (10*log10(snr) > -10. && 10*log10(snr) < 64.)      {        *snrflag = TRUE;        *sumsnr += snr;        (*framesnr)++;      }    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -