QUOTE (Fenolftalein @ May 18 2011, 06:24)

Вы имеете в виду какую-то другую реализацию этого кодека, в микрочиповской реализации (см ссылку выше), прототип кодера:
char ADPCMEncoder(long signed sample);
я нашел реализацию по вашей ссылке в файле Projects\Microchip\Pic24Speech\adpcm.c
Извиняюсь, если там есть ещё и другие - AN я не смотрел
Вообще DPCM, пусть даже адаптивный, настолько простая вещь, что проще самому написать, чем разбираться в чужом неработающем.
QUOTE (Fenolftalein @ May 18 2011, 06:24)

Откуда на выходе берется медленно растущая постоянная составлющая, при подаче синусоиды на вход?
Во-первых если постоянная составляющая - таки берется, то очевидно что процесс квантование-восстановление кривой,несимметричный, с систематической ошибкой. Часто, это даже не очень проявляется, поскольку DPCM обычно использует предсказание с утечкой, т.е. разность формируется не как S-P, а как S-alpha*P, alpha=чуть меньше 1, поэтому накопление ошибки ограничено (поскольку и интегратор в декодере тогда не идеальный, а взвешеный степенями alpha). Но в этом AN утечки нет, поэтому систематическая ошибка при квантовании-восстановлении разности, если она есть, будет накопляться в бесконечность, поскольку восстановленый сигнал есть просто сумма квантованых-восстановленых разностей без экспоненциального взвешивания. Если отвлечься от адаптации, декодер DPCM является линейной системой и в случае отсутствия утечки, он находится на границе устойчивости, поэтому любая систематическая ошибка пустит этот идеальный интегратор в разнос
QUOTE (Fenolftalein @ May 18 2011, 06:24)

Это же видно из кода
CODE
if(predsample > 32767)
predsample = 32767;
else if(predsample < -32768)
predsample = -32768;
Даже здесь видна нессиметрия реализации (32767!=32768), хотя скорее всего основную нессиметрию в операцию квантования-восстановления вносят сдвиги вправо, >>, которые очевидно несимметричны к знаку величины разности, т.е. округление где оно есть должно везде проводиться без систематических ошибок. При использовании нелинейного квантователя сдвиги не используются, используется поиск по таблицам,но в любом случае нужно быть увереным, что шкалы квантования и восстановления абсолютно симметричны.