TForm1 = class(TForm)
Button1: TButton;
BitBtn1: TBitBtn;
Label2: TLabel;
SpinEdit3: TSpinEdit;
Label7: TLabel;
Memo2: TMemo;
Label8: TLabel;
Chart1: TChart;
Series1: TLineSeries;
Series2: TLineSeries;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Form1: TForm1;
{$R *.dfm}TForm1.Button1Click(Sender: TObject);a,c:real;: tGen;,j:integer;: Tfilter;,y,y1,h: real;: Comp;:=38;:=StrToInt(SpinEdit3.text);:=tgen.Init1(c,a);:=Tfilter.Init2;.Series[0].Clear;.Series[1].Clear;i:=0 to 200 do begin.Series[0].AddXY(k.getTime(i),k.getValue(i));.Series[1].AddXY(k.getTime(i),F1.getValueP(k.getValue(i)));;i:=1 to 380 do beginx<=k.getValue(i) then:=k.getValue(i);:=f1.getValueP(k.getValue(i));i>20 theny1<=y then:=y;:=20*log10(abs(y1/x));.Lines.Add(FloatToStr(res));;;.UGenerator;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, TeeProcs, TeEngine, Chart, Buttons, StdCtrls,, Spin, Math;
TGen = class (TObject)
Fample: real; {Амплитуда}
FVhod: real; {Частота входного сигнала}
Fdec: real; {Частота дескретизации}
Constructor Init1(aVhod,adec: real);
Function getValue(ax: integer): real;
Function getTime(ax: integer): real;;
TFilter = class (Tobject)
a01, a02, a03, b01, b02: Real;
a11, a12, a13, b11, b12: Real;
a21, a22, a23, b21, b22: Real;,e02,e03,e04,e05,e06,e07,e08,e09,e10,,e12,e13,e14,e15,e16,e17,e18,e19,e20,,e22,e23,e24,e25,e26,e27,x1, x2,y1,y2: real;
Constructor Init2;
Function getValueP(aX: Real) :Real;;TFilter.Init2;
begin
Inherited Create;:=0.562495; a02:=-0.562495; b01:=-0.12499;:=0.47947; a12:=-2*0.47947; a13:=0.47947; b11:=0.378817; b12:=-0.539061;:=0.349231; a22:=-2*0.349231; a23:=0.349231; b21:=0.275919; b22:=-0.121006;:=0;e02:=0;e03:=0;e04:=0;e05:=0;e06:=0;e07:=0;e08:=0;e09:=0;e10:=0;e11:=0;:=0;e13:=0;e14:=0;e15:=0; x1:=0; x2:=0;y1:=0;y2:=0;
end;TGen.Init1(aVhod,adec: real);
begin
inherited Create;
Fample:=1;
Fvhod:=aVhod;
Fdec:=adec;
end;TGen.getValue(aX: Integer): Real;
begin
Result := fAmple * sin(2*Pi * (Fvhod*1000) * getTime(aX));
end;TGen.getTime(aX: Integer): Real;
begin
Result := ax/(fdec*1000);
end;TFilter.getValueP(aX: Real): Real;
begin
x2:=x1;
x1:=ax;
y1:=a01*x1+a02*x2-b01*y1;:=e02;
e06:=e03*a13;
e02:=e01;
e05:=e02*a12;
e01:=y1;
e04:=e01*a11;
e09:=e08;
e11:=e09*b12;
e08:=e07;
e10:=e08*b11;
e07:=e04+e05+e06+e10+e11;:=e09*a23;
e13:=e08*a22;
e12:=e07*a21;
e17:=e16;
e19:=e17*b22;
e16:=e15;
e18:=e15*b21;
e15:=e12+e13+e14+e18+e19;:=e15; ; .
Вывод:
В данной программе был реализован цифровой фильтр верхних частот, в начале временного отчета была произведении задержка на 20 временных единиц, чтобы не попасть в зону переходных процессов, при расчете ослабления.
Самое читаемое:
Информационно-вычислительная сеть на основе архитектуры клиент-сервер, предметная область Магазин бытовой техники
Компьютерная сеть обозначает
наборы связанных между собой автономных компьютеров. Два компьютера называются
связанными между собой, если они могут обмениваться информацией. Связь не
обязательно должна осуществляться при помощи медного провода. Могут
использоваться самые разнообразные средства связи, включая волоконную оптику,
...