SPlpcISdist
Routine
-
double SPlpcISdist (const float pc1[], const float pc2[], int Np)
Purpose
-
Calculate the Itakura-Saito LPC spectral distance measure
Description
This function calculates the Itakura-Saito LPC spectral distance measure
kernel. Given two LPC spectral models 1/A1(z) and 1/A2(z), this function
calculates a spectral difference function. Let the coefficient vectors
corresponding to the all-pole filters be a1 and a2. Consider a signal with
correlation corresponding to the correlation matrix R1. Define E1 as the
minimum mean-square error that results when the signal is filtered using the
optimum prediction filter A1(z) derived from the correlation R1. Define E12
as the mean-square error that results when the same signal is filtered using
the prediction filter A2(z) (mismatched to the signal). These errors can be
calculated as as
E1 = a1' R1 a1 ,
E12 = a2' R1 a2 ,
This function returns the value E12/E1.
The distance kernel can be used to calculate the Itakura-Saito maximum
likelihood spectral distance between two spectra models g1/A1(z) and
g2/A2(z),
1 pi
Dist = --- Int [ exp(V(w)) - V(w) - 1 ] dw.
2pi -pi
g1^2 g2^2
where V(w) = ln --------- - ln --------- ,
|A1(w)|^2 |A2(w)|^2
pi
Int V(w) dw = 4 pi ln(g1/g2),
-pi
pi
Int exp(V(w)) dw = (g1/g2)^2 E12/E1
-pi
where E1 is the residual energy for A1(z) and E12 is the residual energy for
A2(z). If the gains g1 and g2 are equal (ref. 1),
Dist = E12/E1 - 1,
An alternate spectral difference measure is the Itakura measure (see
ref. 2),
a1' R2 a1
d = ln --------- .
a2' R2 a2
The term inside the logarithm is obtained by interchanging the roles of a1
and a2 in the call to this routine.
-
References:
A. Gray Jr. and J. Markel, "Distance measures for speech processing", IEEE
Trans. Acoustics, Speech, and Signal Processing, vol. ASSP-24, pp. 380-391,
October 1976.
M. R. Sambur and N.S. Jayant, "LPC analysis/synthesis from speech inputs
containing quantizing noise or additive white noise", IEEE Trans. Acoustics,
Speech, and Signal Processing, vol. ASSP-24, pp. 488-494, December 1976.
Parameters
-
<- double SPlpcISdist
-
Resultant distance measure
-
-> const float pc1[]
-
Predictor coefficients corresponding to the first spectrum
-
-> const float pc2[]
-
Predictor coefficients corresponding to the second spectrum
-
-> int Np
-
Number of predictor coefficients (maximum 50)
Author / revision
P. Kabal
/ Revision 1.21 2003/05/09
See Also
SPlpcLSdist
Main Index libtsp