Continous time lowpass filter
dimana s adalah variabel transformasi laplace, τ adalah filter time constant dan K merupakan gain filter.
Bagaimana implementasi single pole lowpass filter kedalam bahasa pemprograman?
Untuk dapat melakukan simulasi lowpass filter didalam perangkat lunak dapat dilakukan dengan mengamati karakteristik filter dalam domain waktu dan permodelan diskrit.
Berdasarkan hukum kirchoff, didefinisikan bahwa kapasitansi adalah:
- (
- (
Dimana
adalah jumlah muatan yang ditampung pada kapasitor dalam waktu t. Jika dilakukan subtitusi persamaan Q menuju persamaan I maka didapat
yang dapat disubtitusikan pada persamaan V, sehingga:
Persamaan tersebut dapat dideskritkan. untuk lebih sederhana, asumsikan bahwa jumlah sampel input dan output diambil dalam selang waktu
. Katakanlah
direpresentasikan dengan rentetan data
dan
direpresentasikan sebagai sequence data
, maka dapat dilakukan subtitusi:
-
- dengan menata ulang persamaan diatas dapat ditulis sebagai berikut:
implementasi single pole lowpass filter waktu diskret dapat diimplementasikan kedalam persamaan:merupakan smoothing factor dengan nilai
. hubungan antara time constant RC,
dan smoothing factor
dapat didefinisikan :
Jika, maka nilai RC akan sama dengan periode sampling. Jika
, maka
secara signifikan akan lebih besar dari periode sampling, dan
.
Algorithm implementationContoh berikut adalah pseudocode algoritma single pole lowpass filter yang akan mensimulasikan efek dari lowpass filter.// Return RC low-pass filter output samples, given input samples, // time interval dt, and time constant RC function lowpass(real[0..n] x, real dt, real RC) var real[0..n] y var real α := dt / (RC + dt) y[0] := x[0] for i from 1 to n y[i] := α * x[i] + (1-α) * y[i-1] return y
Algoritma diatas telah digunakan penulis dalam melakukan smoothing pengambilan data accelerometer dengan α dapat dicari dengan melakukan trial error.
referensi:
Tidak ada komentar:
Posting Komentar