Journal of Control and Network Systems

advertisement
JCONES Vol. 4, No. 1 (2015) 92-99
Journal of Control and Network Systems
Situs Jurnal : http://jurnal.stikom.edu/index.php/jcone
ANALISIS SINYAL SUARA JANTUNG DENGAN
MENGGUNAKAN ANALISIS SPEKTRUM
Fransiscus Daso 1) Jusak 2) Ira Puspasari 3)
Program Studi/Jurusan Sistem Komputer
Institut Bisnis dan Informatika Stikom Surabaya
Jl. Raya Kedung Baruk 98 Surabaya, 60298
Email: 1)[email protected], 2)[email protected], 3)[email protected]
Abstract: The use of graphs to analyze heart sound signals quite difficult, because the cardiac
signals are retrieved and displayed into a graph requires special skills to be able to read and analyze the
cardiac signal. Therefore, the authors took the initiative to create an application that can transform the
heart sound signal from the time domain into the frequency domain for analysis needs.
The process of transformation of heart sound signals using Fast Fourier Transform (FFT). Based
on the test results showed the transformation of the heart signal from the time domain to the frequency
domain in the experiment with six different cases is particularly evident in the Peak or peak frequency
and maximum frequency. Abnormalities of the heart sound signal with voice disorders at low frequencies
produces a frequency domain representation of the graph with a small hill in the low frequencies.
Moreover, it can also be concluded from the results of the transformation chart domination heart sound
signal frequency can be seen from the top of the hill frequency transformation results.
Keywords: Fast Fourier Transform, Heart Sound, and Discrete Fourier Transform
Kesehatan adalah isu serius yang di
hadapi dunia saat ini. Masalah kesehatan semakin
hari semakin berkembang seiring perubahan
jaman. Salah satunya adalah kesehatan Jantung.
Jantung adalah organ tubuh manusia yang sangat
penting dan berguna untuk memompa darah yang
beredar ditubuh manusia. Tanpa jantung, darah di
tubuh manusia tidak akan dapat mengalir. Pola
hidup yang tidak sehat seperti makanan yang
berkolesterol tinggi atau berlemak tinggi serta
kurangnya olahraga dapat memicu penyakit
jantung. Penyakit jantung umumnya sulit untuk di
deteksi. Namun ada beberapa metode yang dapat
digunakan untuk mendeteksi ketidaknormalan
fungsi jantung.
Salah satu cara untuk mendeteksi
penyakit
jantung
adalah
memeriksa
tidak/normalnya kinerja katup – katup pada
jantung. Salah satu pemeriksaan pada katup
jantung dapat menggunakan metode auskultasi.
Auskultasi adalah metode pemeriksaan kinerja
organ tubuh seperti jantung dengan cara
mendengarkan suara yang di akibatkan oleh
vibrasi yang berasal dari proses kerja jantung
(Dugdale, 2011). Proses kerja jantung meliputi
buka tutup katup pada jantung, sirkulasi darah
pada jantung, dan sebagainya. Ada beberapa
komponen yang harus diperhatikan antara lain :
a
Nada berhubungan dengan frekuensi tinggi
rendahnya getaran.
b
Kerasnya (intensitas), berhubungan dengan
ampitudo gelombang suara.
c
Kualitas bunyi dihubungkan dengan timbre
yaitu jumlah nada dasar dengan bermacammacam jenis vibrasi bunyi yang menjadi
komponen-komponen bunyi yang terdengar.
Pada penelitian ini sinyal suara jantung
ditransformasikan
dan
dianalisis.
dengan
algoritma FFT ( Fast Fourier Transform ) untuk
mendapatkan range frekuensi, sehingga mampu
dibedakan antara sinyal jantung normal dan tidak
normal bedasarkan frekuensinya
METODE PENELITIAN
Penelitian secara keseluruhan dapat
digambarkan menjadi sebuah diagram seperti
dibawah ini.
Fransiscus Daso, Jusak, Ira Puspasari
JCONES Vol. 4, No. 1 (2015) Hal: 92
Data
Sinyal
suara
jantung
Pembuatan
Program FFT
sinyal suara
jantung dengan
Visual Basic
Analisis perbedaan hasil
transformasi sinyal suara
jantung normal dengan
sinyal suara jantung yang
tidak normal
Gambar 1. Blok Diagram Penelitian
Secara garis besar penelitian dilakukan
dengan tiga tahap. Tahap pertama mencari data
sinyal suara jantung berupa file suara sinyal suara
jantung dengan format .wav. Selanjutnya
membuat program yang dapat membaca dan
menampilkan sinyal suara jantung berupa grafik
serta mentransformasikan sinyal suara jantung
dengan metode FFT. Setelah proses transformasi
maka selanjutnya adalah menganalisis hasil
transformasi
sinyal
dengan
menggunakan
parameter frekuensi peak dan maksimum.
START
User memberi Input file sinyal suara
jantung
Grafik sinyal suara jantung digambarkan ke sebuah PicBox
Melakukan proses transformasi dengan algoritma FFT (akan dijelaskan pada
flowchart yang berbeda)
Hasil transformasi yang awalnya berupa angka digambarkan pada grafik agar
terlihat hasil transformasinya
METODE FFT (Fast Fourier Transform)
Fast Fourier Transform adalah algoritma
untuk menghitung DFT dengan memanfaatkan
sifat simetris dari DFT agar perhitungan dapat
lebih efisien dan cepat dengan mengabaikan
perhitungan yang sama (Smith, 2011).
Rumus dasar dari DFT ditunjukan pada
persamaan 3.1.
𝑁−1
1
𝑋𝑘 =
x e−jk 2πn
(1)
𝑛 =0 n
𝑁
Keterangan :
𝑋𝑘
: Representasi domain frekuensi untuk
xn .
N
: Periode pada sinyal diskrit pada contoh
atau soal
n
: bilangan deret dengan batas N.
Rumus diatas dapat juga ditulis kembali
seperti ditunjukan pada persamaan 2
𝑗 2𝜋
𝑁−1
𝑋𝑘 = 𝑛 =0 xn 𝑤 k n menjadi 𝑤 = 𝑒 − 𝑁
(2)
Keuntungan dari pemakaian FFT adalah
efisiensi perhitungan yang besar. Pada awalnya
formula ini dibuat karena jumlah perhitungan yang
sangat besar jika menggunakan metode DFT
tradisional. Karena pada pada perhitungan DFT
setiap garis spektral Xn harus dilakukan evaluasi
sebanyak N. dan untuk memperoleh seluruh
spektrum yang ada maka diperlukan N2 perkalian
dan N2 evaluasi fungsi. Jika difokuskan pada
jumlah perkaliannya saja maka algoritma untuk
memperoleh Transformasi Fourier Diskrit
dikatakan mempunyai orde N2.
Penghematan yang didapatkan dari FFT
dapat dihitung dengan persamaan 3.
𝑁2
𝑁𝑙𝑜𝑔 2 𝑁
Output Sinyal FFT
SELESAI
Gambar 2. Flowchart Program
Pada Gambar 2 terdapat flowchart yang
menggambarkan proses yang terjadi pada program
transformasi sinyal suara jantung yang dibuat.
Program ini menggunakan metode FFT atau Fast
Fourier Transform. FFT adalah algoritma untuk
menghitung DFT dengan memanfaatkan sifat
simetris dari DFT tersebut sehingga proses
perhitungan dapat berjalan dengan lebih efisien.
untuk proses FFTnya sendiri dijelaskan di subbab
berikutnya.
=
𝑁
𝑀
(3)
Rumus ini didapatkan dari :
N = 2M (M disebut radiks) sehingga M =
log2N. Pada setiap tingkat harus dilakukan N
perkalian sehingga algoritma FFT memerlukan N
log2N perkalian. Contoh jika N = 1024 maka M
adalah 10 sehingga N/M = 1024/10 = 102.4 ,
Sehingga keuntungan menggunakan FFT adalah
102.4 kali lebih efisien dari metode DFT
traditional.
Berikut adalah proses perhitungan FFT jika
digambarkan dengan model.
Fransiscus Daso, Jusak, Ira Puspasari
JCONES Vol. 4, No. 1 (2015) Hal: 93
Penyortiran Data
Bit Reversal
FOR untuk
mengulang setiap
tahap sebanyak N
Gambar 3. Diagram Butterfly (Haykin, 2003)
Gambar menunjukan perhitungan dengan
N=8. Proses pemisahan antara bit genap dan ganjil
diulang untuk menukar urutan dari koefisien
DTFS pada input. Proses penukaran ini disebut bit
reversal , karena metode ini menggunakan
pembalikan bit untuk menentukan lokasi daru
X[k]. Contoh :
- X[6] mempunyai index 6 atau k = 6.
Bila dijadikan biner maka akan
menjadi 6 = 1102 . sekarang
membalik bit yang ada maka akan
merubah 1102 menjadi 0112 atau k’ =
3 sehingga X[6] berada pada baris ke
empat.
Kemudian dilakukan pertukaran bit
dengan diagram diatas yang disebut diagram
butterfly atau kupu – kupu karena kemiripannya.
Sehingga secara garis besar Flowchart
dari FFT dapat digambarkan sebagai berikut :
FOR
untuk
setiap sub
DFT
FOR
untuk
kalkulasi
butterfly
DATA
Gambar 4. Flowchart algoritma FFT.
Penjelasan dari Flowchart :
1. Proses transformasi fourier dimulai
dengan penyortiran bit secara terbalik
atau reversal.
2. Setelah itu proses dilanjutkan dengan
perulangan FOR untuk melakukan
perulangan di setiap tahap sampai
dengan batas perulangan yang
dinyatakan dengan N yang pada
program ini adalah 512.
3. Tahap berikutnya adalah perulangan
FOR untuk mengulang perhitungan
sub-DFT.
4. Tahap berikutnya adalah perulangan
FOR untuk kalkulasi Butterfly.
Flowchart lengkap dari logika FFT yang
digunakan pada program dapat dilihat di lampiran.
Algoritma Fast Fourier Transform (FFT) ini
dibagi menjadi 6 bagian yaitu :
1. Deklarasi konstanta yang diperlukan.
Pada Tahap ini dilakukan deklarasi
konstanta yang diperlukan antara lain : N dan
Fransiscus Daso, Jusak, Ira Puspasari
JCONES Vol. 4, No. 1 (2015) Hal: 94
Pi. Nilai N ditetapkan sebesar 512 dan Pi
sebesar 3.14.
2. Proses untuk menetapkan nilai beberapa
variabel yang digunakan dalam FFT.
Pada tahap ini dilakukan penetapan nilai
dari beberapa variabel yang digunakan.
Beberapa variabel itu adalah :
1. NM1 yang di tetapkan nilainya dari N1 atau 512 -1 = 511 , jadi nilai
variabel NM1 sebagai 511.
2. ND2 yang ditetapkan nilainya dari N/2
atau 512/2 = 256, jadi nilai variabel
ND2 adalah 256.
3. M yang ditetapkan nilainya dari
log2(N) atau log2(512) = 9, jadi nilai
variabel M adalah 9.
4. J yang ditetapkan nilainya sama
dengan ND2 atau 256.
3. Bit Reversal Sorting
Pada Tahap ini setiap arrray di REX[]
dan IMX[] nilainya akan ditukar dengan nilai
array yang lain. Array REX[] berfungsi untuk
menyimpan nilai perhitungan yang REAL dan
array IMX[] untuk menyimpan nilai Imajiner.
Fungsi perulangan FOR bertugas untuk
mengulang proses penukaran nilai variabel
array REX[] dan IMX[]. Contoh :
Misal nilai REX[256] = 120 dan berjalan
pada proses selanjutnya maka nilai REX
tersebut akan diinputkan pada REX[1]
sehingga nilai REX[1] = 120 .Nilai 1 diambil
dari variabel I yang berfungsi untuk
menyimpan nilai urutan looping. Untuk
melakukan pembalikan bit yang diperlukan
pada program.
4. Looping untuk semua proses berikutnya.
Looping ini adalah untuk mengubah nilai
gelombang yang dalam domain waktu menjadi
domain frekuensi. Tahap ini akan berlangsung
sebanyak 8 kali karena nilai M didapatkan dari
log2(N) yang dimana nilai N ditetapkan sebesar
512. Pada looping ini proses yang terjadi
adalah menyiapkan variabel- variabel yang
diperlukan di proses berikutnya yaitu untuk
proses pada perhitungan sub-DFT dan
kalkulasi butterfly.
5. Proses di dalam sub DFT yang diulang pada
setiap sub DFT nya.
Perulangan sebanyak N/2 yang nilainya
disimpan pada variabel J. Perulangan ini
bertujuan untuk menyiapkan variabel JM1
yang ditambahkan 1 setiap perulangan terjadi
dan berisi kalkulasi butterfly.
6. Looping/Perulangan untuk proses kalkulasi
Butterfly
Pada Perulangan ini berisi proses
kalkulasi butterfly yang berlangsung jika nilai
dari variabel I tidak lebih dari NM1. Proses
Butterfly adalah proses transformasi 2 point
kompleks menjadi 2 point yang kompleks pula.
Proses butterfly di ulang untuk menghitung
nilai setiap spektrum frekuensi.Dalam Tahap
ini dilakukan juga perhitungan sinusoida yang
diperlukan di dalam kalkulasi butterfly. Nilai
sinusoida didapatkan dari variabel SR dan SI.
HASIL DAN PEMBAHASAN
Beberapa percobaan yang dilakukan
(sumber data1)
1. Percobaan pertama dilakukan dengan sinyal
jantung normal.
Gambar 5. Hasil Transformasi Sinyal Suara
Jantung NORMAL.
Hasil transformasi sinyal suara jantung
NORMAL terdapat sebuah bukit yang besar yang
memliki peak di frekuensi 56 Hz dan frekuensi
maksimum di 277.5 hz. Bentuk hasil transformasi
sinyal jantung normal ini dijadikan acuan untuk
membandingkan dengan sinyal jantung berikutnya
yang tidak normal.
2. Percobaan kedua dengan sinyal jantung yang
bunyi S1 terdapat kelainan yang didalamnya ada
suara split atau S1 Split. S1 Split terjadi karena
penutupan 2 katup yang tidak terjadi secara
bersamaan (Dr. Blaufuss, 2011). 2 katup tersebut
adalah katup Mitral dan Tricuspid. Katup Mitral
adalah katup yang membatasi antara serambi kiri
dengan bilik kiri. Katup Triscupid adalah katup
yang membatasi antara serambi kanan dengan
bilik kanan. Proses penutupan katup yang tidak
bersamaan membuat suara S1 terbagi jadi 2 atau
disebut S1 Split. S1 Split adalah suara S1 yang
seharusnya hanya 1 kali menjadi terbagi 2 yang
berbunyi berurutan dengan jeda waktu yang
singkat. S1 Split belum dapat dikategorikan
TIDAK NORMAL jika jeda waktunya belum
Fransiscus Daso, Jusak, Ira Puspasari
JCONES Vol. 4, No. 1 (2015) Hal: 95
mencapai 50 milisekon. Apabila masih dibawah
50 milisekon maka dapat dikategorikan normal.
Dapat dilihat perbedaannya dengan sinyal jantung
normal yang terdapat pada gambar 4.3.
Gambar 7. Hasil Transformasi Sinyal Suara
Jantung dengan S4.
Gambar 6. Hasil Transformasi Sinyal Suara
Jantung dengan S1 Split.
Pada hasil Transformasi terlihat 2 bukit
yang terdiri dari bukit yang tinggi disebelah kiri
yang berada pada range 0 – 70 Hz dan bukit kecil
di sebelah kanan yang berada pada range 100 –
170 Hz. Frekuensi di puncak tercatat 28 Hz dan
frekuensi maksimum yang tercatat adalah 109.8
Hz. Hasil transformasi setelah dibandingkan
dengan sinyal jantung normal terdapat perbedaan
di pergeseran frekuensi pada Peak atau puncak dan
frekuensi maksimum. Pada sinyal jantung normal
frekuensi pada peak terdapat di 56 Hz, sedangkan
pada sinyal jantung dengan kelainan Split S1
terdapat pada 28 Hz.
3. Percobaan Ketiga menggunakan sampel sinyal
suara jantung TIDAK NORMAL yang terdapat S4
atau bunyi keempat. S4 adalah detakan dengan
frekuensi rendah yang terjadi sebelum S1
berbunyi. S4 berasal dari kontraksi atrial yang
memompa darah yang berada pada ventrikel kiri
atau serambi kiri ke autrium kiri atau bilik kiri
jantung, bunyi S4 terjadi karena ventrikel/bilik kiri
yang tidak mengembang dengan baik sehingga
darah yang dipompa dari serambi kiri melewati
katup matrial dan menabrak dinding bilik yang
tidak mengembang sempurna dan terjadi bunyi
kecil yang disebut S4(Coviello, 2010). Bunyi S4
memiliki frekuensi yang kecil dan berbunyi kira –
kira 90 milisekon sebelum bunyi S1.
Pada hasil transformasi terlihat sebuah
bukit yang yang curam yang terdapat sedikit bukit
tambahan yang berukuran lebih rendah. Frekuensi
pada puncak gelombang tercatat 35 Hz dan
frekuensi maksimum tercatat 125.05 Hz.
Perbedaan dengan hasil transformasi dengan
sinyal jantung normal terletak di bentuk bukit
yang meskipun sama 1 bukit tetapi pada sinyal
jantung tidak normal bentuknya berbeda.
Perbedaan terletak dari pembentukan bukit yang
terdapat tiga bukit sekaligus. Bukit yang pertama
yang kecil dapat mengindentifikasi adanya bunyi
dengan frekuensi yang rendah ,S4 terletak pada
bukit kecil di frekuensi yang rendah.
4. Percobaan Keempat dengan menggunakan
sampel sinyal suara jantung dengan suara S3. S3
adalah suara ketiga dari suara jantung yang berasal
dari tabrakan atau pertemuan darah yang tidak
mengalir pada ventrikel dengan dengan darah
yang berasal dari autrium atau serambi yang
melalui katup matrial maupun triscupid yang
membuka pada proses diastol (Silverman, 1990).
Proses diastol adalah proses dimana bilik jantung
mengembang atau mengalami relaksasi dan terisi
darah. S3 terjadi biasanya sekitar 120 – 150 msec
setelah S2 atau suara kedua.
Fransiscus Daso, Jusak, Ira Puspasari
JCONES Vol. 4, No. 1 (2015) Hal: 96
Gambar 8. Hasil Transformasi Sinyal Suara
Jantung dengan S3.
Pada hasil Transformasi terlihat hasil
transformasi yang berupa sebuah bukit yang landai
dan berada pada range yang besar. Suara S3
adalah suara dengan frekuensi yang rendah
sehingga tercatat pada awal grafik hasil
transformasi ,meskipun tidak terlihat pada grafik.
Tercatat juga frekuensi pada puncak bukit
tertinggi sekitar 84 Hz dan maksimum di 125.05
Hz.
5. Percobaan kelima dengan menggunakan sampel
suara jantung TIDAK NORMAL yang mengalami
gangguan MVP atau Mitral Valve Prolapse. MVP
terjadi ketika katup matrial yang membatasi
serambi kiri dan bilik kiri tidak dapat menutup
dengan baik (Mayo Clinic, 2005). Ketika proses
MVP terjadi lembaran katup Mitral menonjol ke
serambi kiri bersamaan dengan kontraksi jantung.
Hal ini menyebabkan darah yang telah masuk bilik
kiri ada yang kembali ke serambi kiri. Bunyi pada
MVP terjadi karena menutupnya katup yang
menonjol. MVP pada kebanyakan orang tidak
perlu dikhawatirkan dan tidak membahayakan
jiwa.
Gambar 9. Katup Mitral yang mengalami MVP.
Gambar 10. Hasil Transformasi Sinyal Suara
Jantung dengan MVP.
Pada percobaan ini terlihat terdapat 2
bukit yang terdiri dari bukit kecil dan bukit yang
besar. Frekuensi pada puncak yang tinggi tercatat
63 hz dan frekuensi maksimum tercatat pada 122
Hz. Bukit kecil pada frekuensi rendah menunjukan
letak suara MVP yang memiliki frekuensi rendah.
6. Percobaan keempat dengan menggunakan
sampel sinyal suara jantung tidak normal dengan
kelainan Mitral Stenosis. Mitral stenosis adalah
kelainan dimana katup Mitral mengalami
penyempitan atau katup Mitral tidak membuka
secara sempurna (Chen, 2014). Hal ini
menghalangi sirkulasi darah dari serambi kiri ke
bilik kiri. Hal ini dapat menyebabkan seseorang
mudah kelelahan dan sesak nafas. Sesak nafas
disebabkan darah yang tidak dapat mengalir dari
serambi kiri ke bilik kiri kembali ke paru – paru
dan dapat menghalangi darah yang dari paru- paru
menuju jantung (Mayo Clinic, 2005). Dapat
diamati di gambar berikut :
Gambar 11. Kelainan Jantung Mitral Valve
Stenosis atau Mitral Stenosis
1
http://www.med.umich.edu/lrc/psb/heartsounds/
Fransiscus Daso, Jusak, Ira Puspasari
JCONES Vol. 4, No. 1 (2015) Hal: 97
Pada gambar diatas jantung di sebelah kiri
adalah kondisi jantung normal , sedangkan pada
gambar sebelah kanan adalah kondisi jantung
dengan kelainan Mitral Stenosis. Terlihat adanya
penyempitan pada katup Mitral.
Hal ini menyebabkan sesak nafas karena
kondisi paru – paru yang penuh dengan darah.
Penyebab utama terjadinya Mitral Stenosis adalah
infeksi yang disebabkan oleh Rheumatic Fever
atau Demam Rematik. Demam Rematik adalah
penyakit
yang
disebabkan
oleh
bakteri
Streptococcus. Penanganan yang lambat dapat
membuat masalah pada jantung terutama pada
katup Mitral. Karena sifat darah yang dapat
membawa bakteri. Bunyi MVP terdengar pada
saat Diastole atau proses darah masuk dari serambi
ke bilik setelah S2 terdengar. Bunyi MVP berada
pada frekuensi yang rendah dan dapat diamati di
gambar dibawah ini.
http://www.nlm.nih.gov/medlineplus/ency/
article/000175.htm
Clinic, M. (2014). Mitral Valve Prolapse.
Recuperado el Januari de 2015, de Mayo
clinic: http://www.mayoclinic.org/diseasesconditions/mitral-valveprolapse/basics/definition/con-20024748
Coviello, J. S. (2010). Auscultation Skills , Breath
& Heart Sound. Philadelphia: Wolters
Kluwer.
Dugdale, D. C. (2011). Auscultation. Recuperado
el Januari de 2015, de www.nlm.nih.gov:
www.nlm.nih.gov/medlineplus/ency/article
/002226.htm
Haykin, S. (2003). Signal and Systems. Danvers:
Wiley.
Heart. (November de 2014). Atrial Septal Defect.
Recuperado el 4 de Januari de 2015, de
Heart.org:
http://www.heart.org/HEARTORG/Conditi
ons/CongenitalHeartDefects/AboutCongeni
talHeartDefects/Atrial-Septal-DefectASD_UCM_307021_Article.jsp#
Gambar 12. Hasil Transformasi Sinyal Suara
Jantung dengan Mitral Stenosis
Hasil transformasi sinyal suara jantung
tidak normal dengan kelainan Mitral Stenosis
menunjukan adanya bunyi frekuensi rendah yang
ditandai dengan bukit kecil di posisi paling kiri
grafik. Bukit berikutnya menunjukan S1 dan S2
yang memiliki frekuensi lebih tinggi. Frekuensi
pada puncak bukit tertinggi didapat pada 49 Hz
dan frekuensi tertinggi di 118.95 Hz.
DAFTAR PUSTAKA
Blaufuss, D. (1998). Split First Sound.
Recuperado el 4 de Januari de 2015, de
Blauffus.org:
http://www.blaufuss.org/arrow/S1S.html
Nana. (2009). Transformasi Fourier. Recuperado
el Januari de 2015, de Lecturer.eepisits.edu: http://lecturer.eepisits.edu/~nana/index_files/materi/Teori_Citr
a/Pertemuan_7.doc
Silverman, M. E. (1990). Third Heart Sound.
Recuperado el 4 de Januari de 2015, de
http://www.ncbi.nlm.nih.gov:
http://www.ncbi.nlm.nih.gov/books/NBK3
42/
Smith, S. W. (2011). Chapter 12 : The Fast
Fourier Transform. Recuperado el Januari
de 2015, de www.dspguide.com:
http://www.dspguide.com/ch12.htm
Taylor, T. (2010). Human Heart. Recuperado el
Januari de 2015, de www.innerbody.com:
http://www.innerbody.com/image/card01.h
tml#full-description
Chen, M. A. (2014). Mitral Stenosis. Recuperado
el Januari de 2015, de www.nlm.nih.gov:
Fransiscus Daso, Jusak, Ira Puspasari
JCONES Vol. 4, No. 1 (2015) Hal: 98
Fransiscus Daso, Jusak, Ira Puspasari
JCONES Vol. 4, No. 1 (2015) Hal: 99
LAMPIRAN 1. FLOWCHART LENGKAP ALGORITMA FFT
MULAI
Pi = 3,1415
N = 512
NM1 = N-1
ND2 = N/2
M = CINT(LOG(N)/LOG(2))
J = ND2
I=1
For(I<(N-2))
No
Yes
If(I>=J)
Yes
K = ND2
No
TR=REX(J)
TI=IMX(J)
REX(I)=TR
IMX(I)=TI
K=ND2
L=1
IF(K>J)
No
I++
J=J-K
K=K/2
For(L<M)
No
J=J+K
Yes
L++
No
Yes
Yes
LE=CINT(2^L)
LE2=LE/2
UR=1
UI=0
SR=COS(PI/LE2)
SI=-SIN(PI/LE2)
J=1
For(J<LE2)
JM1 = J-1
I = JM1
For(I<NM1
No
Yes
TR=UR
UR=TR*SR-UI*SI
UI=TR*SI+UI*SR
SELESAI
J++
IP=I+LE2
TR = REX(IP)*UR-IMX(IP)*UI
TI = REX(IP)*UI-IMX(IP)*UR
REX(IP)=REX(I)-TR
IMX(IP)=IMX(I)-TI
REX(I)=REX(I)+TR
IMX(I)=IMX(I)+TI
I=I+LE
Fransiscus Daso, Jusak, Ira Puspasari
JCONES Vol. 4, No. 1 (2015) Hal: 100
Download