Спасибо за совет. Но удивительное в том, что первоначально использовалась арифметика 8.8. В этом случае из-за эффектов квантования B0=-B2=0.006009 на самом деле равнялось 0. Но устройство, в основе которог лежит эта программа, работает и серийно выпускается и насколько я знаю неплохо справляется со своими функциями. Странно что при небольшом увеличении разрядности, фильтры перестали работать..
Stanislav: Постоянку уже вычитаю. Все картинки - из модифицированной программы.
Johny: похоже разностное уравнение я немного переврал, а вот за "2. Uad = 4 * b0 * abs(D0-D2)" я вам благодарен. Мне тоже не нравится исходное уравнение, попробую изменить
Вопрос: может ли отсутствие ФНЧ так сильно оказывать влияние, при условии, что сигнал амплитуды -21дб идет из звуковой карты компьютера?
Цитата(Johny @ Jan 25 2006, 19:25)

Полагаю, что х - это входной сигнал, а у - выходной.
Из написанного уравнения следует: y[t]=(x[t]+a1*x[t-1]+a2*x[t-2]-b2*y[t-2])/b0
поскольку сумма коэффициентов при х не равна 0, это значит, что данный фильтр как минимум пропускает постоянную составляющую.
Есть большое подозрение, что запись исходного уравнения (для приведенных выше коэффициентов) неверна. Оно должно выглядеть так:
y[t] +a1*y[t-1] + a2*y[t-2] = b0*x[t] +b2*x[t-2]
а конечная рассчетная формула фильтра:
y[t] = b0*x[t]+b2*x[t-2]-a1*y[t-1]-a2*y[t-2]
На самом деле все скорее вот так:
x[kT]+a1*x[(k-1)T]+a2*x[(k-2)T]=bo*y[kT]+b1*y[(k-1)T]+b2*y[(k-2)T]
уравнение для классического биквадратного звена
в моем случае b1=0
поэтому уравнение запишется как:
x[kT] + a1*x[(k-1)T] + a2*x[(k-2)T] = bo*y[kT] + b2*y[(k-2)T], где x - входной сигнал, y - выходной.