Цитата(bmf @ Oct 31 2005, 22:32)
Цитата(bmf @ Oct 31 2005, 18:23)
dc_bias += ((((int32_t) sample << 15) - dc_bias) >> 14);
clean_sample = sample - (dc_bias >> 15);
примерно так
HP - high pass filter
формула для 1-го порядка:
y(n) = x(n) - x(n-1) + R * y(n-1)
"R" 0.9 .. 1
для -3dB: R = 1 - (pi*2 * frequency /samplerate)
ну а то что в выше - просто реализация что бы небыло дробного умножения
немного теории:
http://ccrma.stanford.edu/~jos/filters/http://ccrma.stanford.edu/~jos/filters/DC_Blocker.htmlСпасибо.
Красивое решение, если практическая реализация не подведет (целочисленное вычисление R, наложение шума при измерениях).