www.pudn.com > CryptoPhone-src-031122.zip > mexcite.c
/* Copyright 2001,2002,2003 NAH6
* All Rights Reserved
*
* Parts Copyright DoD, Parts Copyright Starium
*
*/
/*LINTLIBRARY*/
/*PROTOLIB1*/
#include
#include "main.h"
#include "mexcite.h"
/**************************************************************************
*
* ROUTINE
* ModifiedExcitation
*
* FUNCTION
* Modify the stochastic code book excitation gain
*
* SYNOPSIS
* ModifiedExcitation(LPC_res, Adapt_res, scale)
*
* formal
*
* data I/O
* name type type function
* -------------------------------------------------------------------
* LPC_res float i LPC residual
* Adapt_res float i Adaptive analysis residual
* scale float o Stochastice codebook gain scale
*
*==========================================================================
*
* DESCRIPTION
*
* Depending on the current system state, the stochastic code book
* excitation is reduced to a level that is low enough to produce
* positive perceptual effects, yet is high enough so as not to upset
* the dynamics of the system. The main effect of the method is that
* during sustained voiced sounds, the excitation level is attenuated.
* In unvoiced and transition regions the level is amplified to a
* level slightly more than that of standard CELP.
*
* The relative adaptive code book excitation component is
* increased in voiced regions by decreasing the stochastic code book
* excitation component. The amount of decrease in the stochastic
* component depends on the efficiency of the adaptive component.
* More reconstruction burden is placed on the adaptive component as
* its efficiency increases. The efficiency is measured by the
* closeness (in the squareroot crosscorrelation sense) of the residual
* signals before and after pitch prediction. When the efficiency is
* high (e.g., > 0.9), the stochastic component is amplified slightly
* (e.g., one quantizer level).
*
* The procedure for modifying the stochastic gain outside the
* search loop is:
* 1) Measure the efficiency of the adaptive component (ccor)
* 2) Search the stochastic code book for the optimum codeword
* 3) Modify the stochastic code book gain
*
* This method is compatible with Federal Standard 1016.
*
* This code represents the modified excitation work done by R556 which
* was inspired by the constrained excitation work done by Yair Shoham.
*
*
*==========================================================================
*
* CALLED BY
*
* Analysis
*
*==========================================================================
*
* REFERENCES
*
* Shoham, Yair, "Constrained-Stochastic Excitation Coding of Speech
* at 4.8 kbps," in Advances in Speech Coding, ed. B. Atal, V.
* Cuperman, and A. Gersho, submitted to Kluwer Academic Publishers.
*
* Shoham, Yair, "Constrained-Stochastic Excitation Coding of Speech,"
* Abstracts of the IEEE Workshop on Speech Coding for
* Telecommunications, 1989, p. 65.
*
***************************************************************************/
void ModifiedExcitation(
float LPC_res[RES_LEN],
float Adapt_res[RES_LEN],
float *scale)
{
float ccor, e1;
int i;
/* Calculate the Euclidean norm of the LPC residual */
e1 = .000001;
for(i=0; i 0.9)
*scale *= 1.4;
}