5.2. Parameterisation
99
Figure 5.7
Use of LPC coefficients in a synthesis filter.
a=[1; -1.6187;2.3179; -2.9555;2.8862; -2.5331;2.2299;
-1.3271;0.9886; -0.6126;0.2354];
Note that the set begins with a 1.0, and this is standard for LPC coefficient sets within
Matlab
. However when transmitting or storing LPC coefficients of speech, we may
delete the leading 1.0 before storage/transmission, always remembering to add it in
again during recall/reception.
In z-transform terms, the LPC coefficients are denoted A
(z) such that the synthesis
filter H
(z) is:
H
(z) =
1
A
(z)
= 1/
1
+
P
i
=1
a
i
z
−i
.
(5.2)
Note the ‘1
+’in the final denominator which leads to a block diagram structure as shown
in Figure 5.7, implementing the direct form of the expression in Equations (5.1) and
(5.2), and which mirrors the leading 1.0 of the LPC parameter set in Matlab.
The LPC analysis filter shown in Figure 5.8, acts to remove the vocal tract information
from a signal, but since this is a digital filter, it has a spectral response which we can
analyse or plot. In general, we would do this by substituting z
−1
in Equation (5.2) with
a sweep from z
= 0 up to z = e
−jω
, effectively sweeping from DC up to the Nyquist
frequency.
In Matlab we can cheat by using the freqz() function to do this and plot the
magnitude and phase response. A synthesis filter using the LPC coefficients would
create the formants and other resonances as seen in the vocal tract, and can be plotted
using:
freqz(1, a);
On the other hand an analysis filter using these same coefficients would act to remove
the resonance from a signal:
freqz(a);
The freqz function not only plots a handy magnitude and phase response graph, but
can also return these as complex arrays which we can use for subsequent analysis
100
Do'stlaringiz bilan baham: |