📄 irc2pc.c
字号:
/*$Log$Revision 1.15 2004/06/26 03:50:14 marksterMerge source cleanups (bug #1911)Revision 1.14 2003/02/12 13:59:15 matteomer feb 12 14:56:57 CET 2003Revision 1.1.1.1 2003/02/12 13:59:15 matteomer feb 12 14:56:57 CET 2003Revision 1.2 2000/01/05 08:20:39 marksterSome OSS fixes and a few lpc changes to make it actually work * Revision 1.1 1996/08/19 22:31:56 jaf * Initial revision **//* -- translated by f2c (version 19951025). You must link the resulting object file with the libraries: -lf2c -lm (in that order)*/#include "f2c.h"#ifdef P_R_O_T_O_T_Y_P_E_Sextern int irc2pc_(real *rc, real *pc, integer *order, real *gprime, real *g2pass);#endif/* ***************************************************************** *//* IRC2PC Version 48 *//* $Log$ * Revision 1.15 2004/06/26 03:50:14 markster * Merge source cleanups (bug #1911) * * Revision 1.14 2003/02/12 13:59:15 matteo * mer feb 12 14:56:57 CET 2003 * * Revision 1.1.1.1 2003/02/12 13:59:15 matteo * mer feb 12 14:56:57 CET 2003 * * Revision 1.2 2000/01/05 08:20:39 markster * Some OSS fixes and a few lpc changes to make it actually work * * Revision 1.1 1996/08/19 22:31:56 jaf * Initial revision * *//* Revision 1.3 1996/03/20 15:47:19 jaf *//* Added comments about which indices of array arguments are read or *//* written. *//* Revision 1.2 1996/03/14 16:59:04 jaf *//* Comments added explaining that none of the local variables of this *//* subroutine need to be saved from one invocation to the next. *//* Revision 1.1 1996/02/07 14:47:27 jaf *//* Initial revision *//* ***************************************************************** *//* Convert Reflection Coefficients to Predictor Coeficients *//* Inputs: *//* RC - Reflection coefficients *//* Indices 1 through ORDER read. *//* ORDER - Number of RC's *//* GPRIME - Excitation modification gain *//* Outputs: *//* PC - Predictor coefficients *//* Indices 1 through ORDER written. *//* Indices 1 through ORDER-1 are read after being written. *//* G2PASS - Excitation modification sharpening factor *//* This subroutine has no local state. *//* Subroutine */ int irc2pc_(real *rc, real *pc, integer *order, real *gprime, real *g2pass){ /* System generated locals */ integer i__1, i__2; /* Builtin functions */ double sqrt(doublereal); /* Local variables */ real temp[10]; integer i__, j;/* Arguments *//* $Log$ * Revision 1.15 2004/06/26 03:50:14 markster * Merge source cleanups (bug #1911) * * Revision 1.14 2003/02/12 13:59:15 matteo * mer feb 12 14:56:57 CET 2003 * * Revision 1.1.1.1 2003/02/12 13:59:15 matteo * mer feb 12 14:56:57 CET 2003 * * Revision 1.2 2000/01/05 08:20:39 markster * Some OSS fixes and a few lpc changes to make it actually work * * Revision 1.1 1996/08/19 22:31:56 jaf * Initial revision * *//* Revision 1.3 1996/03/29 22:03:47 jaf *//* Removed definitions for any constants that were no longer used. *//* Revision 1.2 1996/03/26 19:34:33 jaf *//* Added comments indicating which constants are not needed in an *//* application that uses the LPC-10 coder. *//* Revision 1.1 1996/02/07 14:43:51 jaf *//* Initial revision *//* LPC Configuration parameters: *//* Frame size, Prediction order, Pitch period *//* Local variables that need not be saved */ /* Parameter adjustments */ --pc; --rc; /* Function Body */ *g2pass = 1.f; i__1 = *order; for (i__ = 1; i__ <= i__1; ++i__) { *g2pass *= 1.f - rc[i__] * rc[i__]; } *g2pass = *gprime * (real)sqrt(*g2pass); pc[1] = rc[1]; i__1 = *order; for (i__ = 2; i__ <= i__1; ++i__) { i__2 = i__ - 1; for (j = 1; j <= i__2; ++j) { temp[j - 1] = pc[j] - rc[i__] * pc[i__ - j]; } i__2 = i__ - 1; for (j = 1; j <= i__2; ++j) { pc[j] = temp[j - 1]; } pc[i__] = rc[i__]; } return 0;} /* irc2pc_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -