(зануда моде он) Я бы не называл это отрицательной обратной связью. Тут скорее можно говорить о рекурсивном фильтре второго порядка. В общем виде такой фильтр описывается формулой:
a0*y[i] = b0*x[i] + b1*x[i-1] + b2*x[i-2] - a1*y[i-1] - a2*y[i-2]
При отсутствии входного сигнала (все x[i]=0) выходной сигнал такого фильтра может быть одним из следующих:
1) Постоянный уровень (напр. при a0=1, a1=-1, a2=0)
2) Затухающая экспонента (напр. при a0=1, a1=-0.9, a2=0)
3) Нарастающая экспонента (напр. при a0=1, a1=-1.1, a2=0)
4) Постоянная по уровню синусоида (напр. при a0=1, a1=-2..2, a2=1]
5) Затухающая по экспоненте синусоида
6) Нарастающая по экспоненте синусоида
Фильтр называют стабильным, если его выходной сигнал затухает при отсутствии входного сигнала. Если выходной сигнал нарастает при отсутствии входного - фильтр нестабилен. Наконец, при сохранении уровня выходного сигнала при отсутствии входного фильтр называется условно-стабильным.
Для целей фильтрации сигналов обычно применяются только стабильные фильтры (т.е. затухающие). Для генерации синусоид - условно-стабильные. Определить, к какому классу принадлежит фильтр, можно, вычислив корни квадратного трехчлена:
a0*z^2 + a1*z + a2 = 0
Если оба корня (z1, z2) действительные - выходной сигнал будет постоянным либо экспонентой. Если корни комплексные - то будет синусоида (затухающая, нарастающая или постоянная). При этом, если корни находятся внутри круга abs(z)<1 - то фильтр является стабильным. Если лежат на круге abs(z)=1 - то условно-стабильным. Если за пределами круга - то нестабильным.
В предложенной выше формуле для генерации синуса:
y[i] = k*y[i-1] - y[i-2]
у нас коэффициенты равны соответственно a0=1, a1=k, a2=1. Если k лежит в пределах -2..2 - то получается два комплексных корня на единичной окружности, т.е. как раз то, что и требуется.
(зануда моде офф)
На кодах калькулятора можно сразу вызвать процедуру sin из ПЗУ, кстати!

