📄 bwexp.c
字号:
/*LINTLIBRARY*/ /*PROTOLIB1*/#include <math.h>#include "main.h"#include "bwexp.h"/**************************************************************************** ROUTINE* BWExpand** FUNCTION* Bandwidth expansion of LPC predictor coefficients** SYNOPSIS* BWExpand(alpha, pc, pcexp) ** formal * data I/O* name type type function* -------------------------------------------------------------------* alpha float i Bandwidth expansion factor* pc float i predictor coefficients* pcexp float o expanded predictor coefficients**************************************************************************** * DESCRIPTION** Subroutine to perform bandwidth modification by moving the poles* (or zeros) radially in the z plane. If the bandwidth expansion* factor (alpha) is less than unity, the bandwidths are expanded by* shifting the poles (or zeros) toward the origin of the z plane.* The predictor coefficients are scaled directly according to:** i-1* a' = a alpha where i = 1, . . . , order+1* i i** Resulting in a bandwidth expansion of:** -(fs/pi)ln(alpha) Hz** (e.g., fs = 8 kHz, alpha = 0.994127 -> 15 Hz bandwidth expansion)** CELP's LPC predictor coefficient convention is:* p+1 -(i-1)* A(z) = SUM a z where a = +1.0* i=1 i 1****************************************************************************** CALLED BY** FindAdaptResidual FindImpulseResponse PostFilter* FindLPCResidual UpdateEverything LPC_Analysis***************************************************************************/void BWExpand(float alpha, float pc[ORDER+1], float pcexp[ORDER+1]){ int i; pcexp[0] = pc[0]; for (i = 1; i <= ORDER; i++) pcexp[i] = pc[i]*(float)pow((double)(alpha),(double)(i));}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -