Description

Call step to convert LPC according to the properties
of dsp.LPCToLSF. The behavior of step is
specific to each object in the toolbox.

Note

Starting in R2016b, instead of using the step method
to perform the operation defined by the System
object™, you can
call the object with arguments, as if it were a function. For example, y
= step(obj,x) and y = obj(x) perform
equivalent operations.

Construction

lpc2lsf = dsp.LPCToLSF('PropertyName',PropertyValue,...) returns
an LPC to LSF System
object, lpc2lsf,
with each specified property set to the specified value.

Properties

NumCoarseGridPoints

Number of coarse subintervals used for finding roots (LSP values)

Specify the number of coarse subintervals, n,
used for finding line spectral pairs (LSP) values as a positive scalar
integer. LSPs, which are the roots of two particular polynomials related
to the input LPC polynomial, always lie in the range (–1, 1).
The System
object finds these roots using the Chebyshev polynomial
root finding method. To compute LSF outputs, the object computes the
arc cosine of the LSPs, outputting values ranging from 0 to pi radians.
The object divides the interval (–1, 1) into n subintervals
and looks for roots in each subinterval. If you set n too
small in relation to the LPC polynomial order, the object can fail
to find some of the roots. The default is 64. This
property is tunable.

NumBisects

Value of bisection refinement used for finding roots

Specify the root bisection refinement value, k, used in the Chebyshev
polynomial root finding method, where each line spectral pair (LSP) output
is within

1(n⋅2k)

of the actual LSP value. Here n is
the value of the NumCoarseGridPoints property, and the
object searches a maximum of k⋅(n−1) points for finding the roots. You must set the NumBisects property value
k, to a positive scalar integer. The default is
4. This property is tunable.

ExceptionOutputPort

Produces output with validity status of LSF output

Set this property to true to return a second
output that indicates whether the computed LSF values are valid. The
output is a vector with a length equal to the number of channels.
A logical value of 1 indicates valid output. A
logical value of 0 indicates invalid output. The
LSF outputs are invalid when the object fails to find all the LSF
values or when the input LPCs are unstable. The default is false.

OverwriteInvalidOutput

Enable overwriting invalid output with previous output

Specify the action that the System
object should take for
invalid LSF outputs. When you set this property to true,
the object overwrites the invalid output with the previous output.
When you set this property to false, the object
does not take any action on invalid outputs and ignores the outputs.

FirstOutputValuesSource

Source of values for first output when output is invalid

Specify the source of values for the first output when the output is invalid as
Auto or Property. This property
applies when you set the OverwriteInvalidOutput
property to true. The default is Auto.
When you set this property to Auto, the object uses a
default value for the first output. The default value corresponds to the LSF
representation of an allpass filter.

FirstOutputValues

Value of the first output

Specify a numeric vector of LSF values for overwriting an invalid first output. The length of
this vector must be one less than the length of the input LPC vector. For
multichannel inputs, you can set this property to a matrix with the same
number of channels as the input, or one vector that is applied to every
channel. The default is an empty vector. This property applies when you set
the OverwriteInvalidOutput property to
true and the
FirstOutputValuesSource property to
Property.

NonUnityFirstCoefficientAction

Action to take when first LPC coefficient is not 1

Specify the action the object takes when the first coefficient
of each channel of the LPC input is not 1 as Replace with 1 or Normalize.
The default is Replace with 1.

Examples

Convert LPC Coefficients To LSF Coefficients

Note: This example runs only in R2016b or later. If you are using an earlier release, replace each call to the function with the equivalent step syntax. For example, myObject(x) becomes step(myObject,x).