Open-Loop Pitch (OLP) Search

Three functions are provided for open-loop pitch (OLP) search. Use of these functions is mutually exclusive, that is, only one is appropriate for an application during any given frame type. The appropriate choice of an OLP search function depends upon the state of the discontinuous transmission ( DTX) and VAD modules. The OLP search functions should be applied as follows:

Encoder Mode

Appropriate Function

DTX disabled


DTX, VAD 1 enabled


DTX, VAD 2 enabled


The OLP search functions extract a pitch estimate from a weighted version of the input speech. For 5.15 and 4.75 kbps frames, the search is performed once per frame. For all other frame rates, the search is performed twice per frame. A unique search is employed for 10.2 kbps frames. The OLP search details are as follows:

If the transmission bit rate is 10.2 kbps, do the following:

  1. Compute a windowed autocorrelation of weighted speech, that is,

    where the sequence sw(n) contains weighted speech, and w is the weighting function given by

    In this weighting function, wl emphasizes low pitch, and is defined in terms of the table cw, while wn is a sequence of neighboring emphasis lag coefficients associated with the previous frame, that is

    and the parameter Told is the median filtered pitch lag of 5 previous voiced speech half frames.

    The estimated OLP lag is the value k that maximizes R(k). It is denoted by Top.

  2. Compute the optimal open-loop gain using the relation

    In addition,


    If g > 0, the previous pitch lag buffer and v median pitch lag of the previous pitch lags are updated.

For rates other than 10.2 kbps, the following OLP search procedure is employed:

  1. Three maximums are found in three different ranges for the correlations given by

    For 5.15 and 4.75 kbps frames, length = 160.

    For all other bit rates (except 10.2 kbps), length = 80.

  2. Normalize the three maximum correlations according to

  3. Determine the best open-loop lag using the following rule:

    Top = T1, M(Top) = M1, if M2 > 0.85 M(Top);

    M(Top) = M2, Top = T2, if M3 > 0.85 M(Top);

    Top = T3.

Each of the OLP search functions implements the rate-dependent search algorithms described above. Next, details are given for non-DTX, VAD1, and VAD2 OLP search functions.

For more complete information about compiler optimizations, see our Optimization Notice.