Summary autocorrelation function

Supposing everything is installed and compiled, go to the 'seg/' directory. Make sure all the programs (cvf, acf, lutf, scale) are in your $path. First copy or convert the stimulus file to AIFF, for example:

   cp vowels/a.125.aiff input.aiff
For a headerless file containing shorts with a sampling rate of 16000 Hz, you'd use 'cvf':
   cvf -i filename -IF short -sr 16000 -o input.aiff -OF aiff

Check the values in the various '*.par' files used by lutf. Beware: the upper cutoff in PreEmph1.par must be a bit less than half the sampling rate. Then run the 'lutear' outer/middle ear + basilar-membrane + haircell model:

   lutf
Multichannel output is in 'output.aiff', in AIFF format. To remove onset and offset portions (keeping the central 100 ms):
   xcat -i output.aiff -range .05 .15 -o tmp1
To calculate the ACF pattern over a 10 ms lag range:
   acf -i tmp1 -max .1 -o tmp2
The result is a multichannel ACF pattern. To get just the summary pattern (SACF):
   acf -i tmp1 -max .1 -sum -o tmp2
The square root is often easier to plot. This takes the square root and outputs it in headerless ascii:
   scale -i tmp2 -pow .5 -o tmp3 -OF ascii
These operations are grouped in the Perl script 'sacf.p' that works as a pipe.


Alain's home page