The function
memcof, which this program uses,
is defined in the file
memcof.c. This, in turn, refers to a utility
file
nrutil.c. Thus, to compile
lpcana.c, it is also necessary
to compile
memcof.c and
nrutil.c, and then link all three
object files together, as follows:
gcc –c nrutil.c
gcc –c memcof.c
gcc –c lpcana.c
gcc –o lpcana.exe nrutil.o memcof.o lpcana.o
The program
lpcana.exe can be used to generate a file of coefficients
and the corresponding error signal. For instance,
lpcana joe.dat joe_err.dat
joe_coeffs.dat generates the error signal shown in
figure 5.6 (b)
. Then,
lpcsyn joe_err.dat joe_coeffs.dat joe_syn.dat will generate
a synthetic reconstruction of joe.dat.
It is instructive to listen to these signals.
joe_lpc.dat
, while not identical to
joe.dat
, is a close copy. There may be a somewhat “bubbly” or “burbling” quality
to it, because of inaccuracies in the prediction. The residual,
joe_err.dat
, is also intelligible, though it is a very rough, whispery version of the
original input.