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

📄 autohf.c

📁 this the source code of addio compression standard CELP. Also, it is optimizied for the execution sp
💻 C
字号:
/**************************************************************************
*
* ROUTINE
*		autohf
*
* FUNCTION
*		LPC autocorrelation analysis with high frequency compensation
*
*
* SYNOPSIS
*		subroutine autohf(si, w, n, p, omega, a, rc)
*
*   formal 
*                       data    I/O
*       name            type    type    function
*       -------------------------------------------------------------------
*	si(n)		float	i	signal input
*	w(n)		float	i	window (i.e., Hamming)
*	n		int	i	length of input sequence
*	p		int	i	order of LPC polynomial
*	omega		float	i	bandwidth expansion factor
*	a		float	o	LPC coefficients (1 to m+1)
*	rc		float	o	reflection coefficients (1 to m)
*					(voiced-> +rc1)
*
*   external 
*                       data    I/O
*       name            type    type    function
*       -------------------------------------------------------------------
*	frame		int	i	
*
***************************************************************************
*	
* DESCRIPTION
*
*  	Subroutine to perform HF corrected autocorrelation LPC analysis.
*	First, autocorrelation coefficients are calculated and high
*	frequency corrected to partially compensate for the analog
*	antialiasing filter*.  (Traditionally, this technique has only been
*	applied to covariance analysis, but it applies to autocorrelation
*	analysis as well).  Next, the autocorrelation function is converted
*	to reflection coefficients by the Schur recursion (aka LeRoux &
*	Guegen).  Then, the reflection coefficients are converted to LPC
*	predictor coefficients.  Finally, the predictors are bandwidth
*	expanded by omega.
*
*	CELP's LPC predictor coefficient convention is:
*              p+1         -(i-1)
*       A(z) = SUM   a   z          where a  = +1.0
*              i=1    i                    1
*
*	The sign convention used defines the first reflection coefficient
*	as the normalized first autocorrelation coefficient, which results
*	in positive values of rc(1) for voiced speech.
*
***************************************************************************
*
* CALLED BY
*
*	celp
*
* CALLS
*
*	actorc	bwexp	cor	pctorc	rctopc
*
***************************************************************************
*	
* REFERENCES
*
*	*Atal & Schroeder, Predictive Coding of Speech Signals
*	 and Subjective Error Criteria, IEEE TASSP, June 1979.
*
**************************************************************************/
#define	TRUE	1
#define	FALSE	0
#include <math.h>
#include <stdio.h>
#include "ccsub.h"
extern int frame;
autohf(si, w, n, p, omega, a, rc)
int n, p;
register float si[];
float  w[], omega, a[], rc[];
{
  register int i, unstable;
  float c0, c[MAXNO], atemp[MAXNO+1], s[MAXLL];
  
  setr(MAXNO+1, 0.0, atemp);
  for (i = 0;  i < n ; i++)
    s[i] = si[i] * w[i];		/* apply window			*/
/*  unstable = FALSE;       */	
    cor(s, n, p, &c0, c);			/* calculate autocorrelations	*/
/*  if (c0 < 0.0)        unstable = TRUE;      */
  atemp[0] = 1.0;			/* convert autocorrelations to pc's  */
  durbin(c0, c, &atemp[1], p);

  bwexp(omega, atemp, a, p);		/* expand corrected pc's	*/
//  pctorc(a, rc, p);			/* match rc's to expanded pc's	*/
  					/* and test for stability	*/
/*
  for (i = 0; i < p ; i++)
  {
    if (fabs(rc[i]) > 1.0)
      unstable = TRUE;
  }

  if (unstable)
  {
    printf("autohf:  unstable lpc analysis at frame %d\n",frame);
    for (i = 0; i < p; i++)
    {
      a[i+1] = 0.0;
      rc[i] = 0.0;
    }
  }
*/
}

⌨️ 快捷键说明

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