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 временных единиц, чтобы не попасть в зону переходных процессов, при расчете ослабления.
Самое читаемое:
Диагностика и ремонт СВ-передатчика
Провести
ремонт радиоэлектронного изделия, значит восстановить его работоспособность.
Чтобы провести ремонт необходимо определить является ли изделие
ремонтопригодным. При ремонте узлы изделия могут быть заменены полностью или
частично. После проведения замены элементов в ремонтируемом изделии необходимо
провести регулировки и наст ...