You are on page 1of 6

TUGAS PENGOLAHAN SIGNAL DIGITAL

NAMA : MEILINDA EKA SURYANI


NIM : 09011181320033

JURUSAN SISTEM KOMPUTER


FAKULTAS ILMU KOMPUTER
UNIVERSITAS SRIWIJAYA
2016

Hasil Tampilan:

Coding:
unit DFT;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, TeeProcs, TeEngine, Chart, Series;

type
TForm1 = class(TForm)
Chart1: TChart;
Chart2: TChart;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Edit1: TEdit;

Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Series1: TLineSeries;
Series2: TLineSeries;
Label4: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);


var

f1,f2,S,t,fs,w,ts,panjang_data:Real;

begin
Series1.Clear;
f1:=StrToFloat(Edit1.Text);
f2:=StrToFloat(Edit2.Text);
S:=StrToFloat(Edit1.Text);
fs:=100;

t:=0;
while(t<=S) do
begin
ts:=t/fs;
w:=sin(2*pi*f1*ts)+ sin(2*pi*f2*ts);
Series1.AddXY(ts,w);
t:=t+0.1;
panjang_data:=500;
Edit3.Text:=FloatToStr(panjang_data);
end;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);


var
temp1, temp2, fs:Real;

panjang_data, k, i, a, n :Integer;
dft_R, dft_I, mag:array [0..1000] of Real;
x:array [0..1000] of Integer;
begin
panjang_data:=500;
fs:=100;
for k:=0 to panjang_data-1 do
begin
temp1:=0.0;
temp2:=0.0;
for i:=0 to panjang_data-1 do
begin
temp1:=temp1+x[i]*cos(2*pi*(i)*(k)/panjang_data);
temp2:=temp2-x[i]*sin(2*pi*(i)*(k)/panjang_data);
end;
dft_R[k]:=temp1;
dft_I[k]:=temp2;
end;
n:= panjang_data div 2;
for a:=0 to n do
begin
mag[a]:=Sqrt(Sqr(dft_R[a])+Sqr(dft_I[a]));
Series2.AddXY((a/n)*(fs/2),mag[a])
end;

end;

end.

You might also like