| |
During the use of the switchboard database, it was noticed that
occasional samples were corrupted, apparently by having all their
bits flipped. Because of the details of how mulaw coding is done,
this sometimes made small positive values into large negative ones.
It may happen in other situations, but this is the one we can detect.
A program was written to detect and repair these corrupted samples.
The program depends on there being more than 10 or so samples
between hits.
The program works as follows:
- 1) for each 3-long window of consecutive samples A,B,C ask if A and C are
small in absolute value and B is large negative.
- 2) If so, ask if inverting B's bits would put the resulting value closer to
the average of A and C.
- 3) If so, ask if a 5-long LPC polynomial built on the original 21 samples
centered at B has a much higher energy residual than the LPC polynomial built
on the sequence with B inverted.
- 4) If so, declare that this was an instance of corruption, so fix it and
move on.
This problem appears not to have been reported in previous annotations and
descriptions of Switchboard.
The program consists of two files:
spiker.c
and
mulaw.h.
 
 
 
 
|
|
|
|