/**

@page pitchmark_manual pitchmark
@brief *Find instants of glottal closure in Laryngograph file*
@tableofcontents

@section synopsis Synopsis

@SYNOPSIS@

`pitchmark locates instants of glottal closure in a
laryngograph waveform, and performs post-processing to produce even
pitchmarks. EST does not currently provide any means of pitchmarking a
speech waveform.

Pitchmarking is performed by calling the
pitchmark() function, which carries out the
following operations: 

  1. Double low pass filter the signal. This removes noise in the
  signal. The parameter `lx_lf` specifies the low pass cutoff frequency,
  and `lx_lo` specifies the order. Double filtering
  (feeding the waveform through the filter, then reversing the waveform
  and feeding it through again) is performed to reduce any phase shift
  between the input and output of the filtering operation.

  2. Double high pass filter the signal. This removes the
  very low frequency swell that is often observed in laryngograph
  waveforms.  The parameter `lx_hf` specifies the high pass cutoff frequency,
  and `lx_ho` specifies the order.
  Double filtering is performed to reduce any phase shift
  between the input and output of the filtering operation.

  3. Calculate the delta signal. The filtered waveform is
  differentiated using the delta()
  function.

  4. Low pass filter the delta signal. Some noise may still
  be present in the signal, and this is removed by further low pass
  filtering. Experimentation has shown that simple mean smoothing is
  often more effective than FIR smoothing at this point.  The parameter
  `mo` is used to specify the size of the mean
  smoothing window.  If FIR smoothing is chosen, the parameter
  `df_lf` specifies the low pass cutoff frequency,
  and `df_lo` specifies the order. Double filtering
  is again used to avoid phase distortion.

  5. Pick zero crossings. Now simple zero-crossing is used
to find the pitchmarks themselves.


`pitchmark` also performs post-processing on the pitchmarks. 
This can be used to eliminate pitchmarks which occur too closely together, 
or to provide estimated evenly spaced pitchmarks during unvoiced regions.
The -fill option switches this facility on, and -min, -max, -def, -end 
and -wave_end control its operation.


@section options Options

@OPTIONS@

@section pitchmark-examples Examples

**Basic Pitchmarking**:

    $ pitchmark kdt_010.lar -o kdt_010.pm -otype est


**Pitchmarking with unvoiced regions filled**:
The following fills unvoiced regions with pitch
periods that are about 0.01 seconds long. It also post-processes the
set of pitchmarks and ensures that noe are above 0.02 seconds long and
none below 0.003. A final unvoiced region extending to the end of the
wave is specified by using the -wave_end option.

    $ pitchmark kdt_010.lar -o kdt_010.pm -otype est -fill -min 0.003  \
       -max 0.02 -def 0.01 -wave_end


*/

