Pengantar
Bismillah. Seorang sahabat Nusantara yang sedang riset di Australia memiliki data hasil ukur
accelerometer dari sebuah kendaraan dan beliau ingin mendapatkan nilai posisi dengan melakukan
integrasi ganda pada data tersebut. Untuk integrasi ganda, ia menggunakan metode yang
dirumuskan oleh Slifka [1]. Ada fragmen kode yang ia tanyakan kepada saya, yaitu terkait peran FFT
dalam metode tersebut, untuk apa dan bagaimana algoritma penerapannya. Tulisan ini adalah untuk
menjelaskan hal tersebut dan untuk siapa saja yang menjumpai pertanyaan yang sama. Mudah2an
bermanfaat.
dimana
Untuk penjelasan lebih lengkap khusus terkait FFT, pernah saya tulis di sini [3].
1
MENGELIMINASI NILAI DC PADA SINYAL DENGAN FFT
Vel_Spect(i)=0.0775*Vel_Spect(45);
Vel_Spect(x-(i-2))=conj(Vel_Spect(i));
end
vel=real(ifft(Vel_Spect));
plot(t,vel), grid on;
xlabel('Time (sec.)'),ylabel('Amplitude (mm/sec)'),title('Velocity (after
1^s^t Integration) Vs. Time')
CATATAN
Beberapa catatan penting untuk memahami kode ini, sepengetahuan saya, antara lain:
Vel_Spect memuat spektrum frekuensi dari sinyal vel (hasil dari transformasi fourier terhadap
sinyal vel)
Yang dimaksud values constant sepertinya magnitud spektrum frekuensi hasil FFT
Vel_Spect(1) = 0.0775*Vel_Spect(46) maksudnya, menyetarakan magnitud sinyal frekuensi 0
Hz (sinyal DC) dengan magnitud sinyal frekuensi ambang batas maksimal. Kode inilah yang
berguna untuk mengeliminasi nilai DC pada sinyal.
Nilai 46 adalah batas indeks vektor Vel_Spect yang akan diolah, berfungsi sebagai frekuensi
cut-off. Artinya, semua magnitud sinyal yang tersimpan pada indeks ke-47 dst tidak akan
diolah untuk tahap selanjutnya.
Koefisien 0.0775 adalah nilai alfa untuk meredam magnitud sinyal.
Catatan2 di atas saya buat setelah memelajari algoritma di bawah ini.
N adalah ukuran vektor FFT, k adalah nomor index dari koefisien FFT yang menyatakan frekuensi cut-
off, dan adalah koefisien redaman filter yang kita tetapkan.
Algoritma di atas adalah algoritma FFT yang dapat digunakan untuk meredam sinyal-sinya frekuensi
rendah dan mengeliminasi sinyal frekuensi 0 HZ atau sinyal DC. Eliminasi tersebut dinyatakan dalam
baris Xf(0) = 0Xf(k).
Bagian loop (for) menceritakan: Vektor Xf hasil dari FFT terbagi dalam dua bagian simetris, yaitu
magnitud frekuensi sinyal dan juga pasangannya (conjugate). Ketika magnitud sinyalnya dikalikan
2
MENGELIMINASI NILAI DC PADA SINYAL DENGAN FFT
dengan koefisien maka pasangannya juga harus disesuaikan. Loop ini untuk meredam sinyal-sinyal
frekuensi rendah dengan koefisien redaman .
Kesimetrisan vektor Xf ini diperlukan pada fungsi IFFT di bawahnya, untuk mengembalikan vektor
frekuensi ke domain waktu.
Gambar plot berikut mengilustrasikan sinyal asli dan sinyal hasil eliminasi nilai DC dengan algoritma
FFT.
Sinyal asli (Gambar a) setimbang di amplitudo 2 karena ada komponen sinyal DC. Spektrum frekuensi
dari sinyal asli (b) menunjukkan bahwa pada frekuensi 0 Hz, magnitudnya bernilai 250. Setelah
algoritma eliminasi DC dengan FFT diterapkan (c), magnitud frekuensi 0 Hz bernilai 0. Konversi ke
domain waktu, menghasilkan sinyal yang setimbang di amplitudo 0.
CATATAN
Pada kasus pengukuran dengan accelerometer, intervensi hasil pengukuran oleh sinyal DC ini hampir
selalu terjadi karena efek grafitasi bumi [4].
Penutup
Sekian. Mudah2an bermanfaat. Alhamdulillah.
Saran/kritik boleh disampaikan via WA: 0857 33 484 101, Email: alfiyahibnumalik@gmail.com
Arsip: http://mnurq.ga/
3
MENGELIMINASI NILAI DC PADA SINYAL DENGAN FFT
Referensi
[1] L. D. Slifka, An Accelerometer Based Approach to Measuring Displacement of A Vehicle Body,
Dearborn: University of Michigan, 2004.
[3] M. N. Qomarudin, FFT untuk DFT @ MATLAB, 1 Oktober 2015. [Online]. Available:
http://www.mnurq.ga/2015/10/fft-untuk-dft-matlab.html. [Diakses April 2017].
[4] T. M. Do and T. C. Le, "Performance Analysis of FFT Filter to Measure Displacement Signal in Road
Roughness Profiler," International Journal of Computer and Electrical Engineering, vol. 5, no. 4,
pp. 356-361, 2013.