to jeka
Интересный подход!
Я тут примерчик в MatLab для игр прикрутил. Жалко файлом прикрепить нельзя

clear;
Wup=1000;
t=1; %интервал определяющий Fпр=1/t по уровню 0.5
d=1.00; %потери в фильтре
n=1; %коэф. частоты
Fs=Wup*2;% частота дискретизации
t=0:1/Fs:t;% временная ось
%w=100;
%ws=sin(2*pi*w*t);
%wc=cos(2*pi*w*t);
j=1;
for wsm=1:1:Wup,
x1=0;
y1=1;
x=sin(2*pi*wsm*t);
xxc=cos(2*pi*wsm*t);
xxs=x;
for i=1:length(t),
x1=x1+x(i);
x1=(x1+y1/n)*d;
y1=(y1-x1/n)*d;
yf(i)=y1;
end
%xs=sum(x.*ws);
%xc=sum(x.*wc);
xs=sum(yf.*xxs);
xc=sum(yf.*xxc);
A(j)=sqrt(xs*xs + xc*xc);
j=j+1;
end
maxA=max(A(

);
plot(20*log(A/maxA))
grid on;