Simple Algorithm untuk Menghilangkan Non linear Trend sebuah Sinyal


Sedikit berbagi ilmu, kali ini saya akan share bagaimana menghilangkan non linear trend atau yang sering kita kenal dengan baseline wander.  Pengertian sederhananya adalah membuat posisi sinyal pada suatu garis lurus. Sedikit cerita, cara ini saya dapat ketika mendapatkan tugas dari calon pembimbing dan saya harus menyelesaikan dalam waktu yang cukup singkat.

Fenomena seperti ini sering kita jumpai pada sinyal EKG dan PPG sehingga kita akan kesulitan untuk mencari jumlah heart rate karena baseline sinyal berubah-ubah. Ilustrasinya dapat dilihat pada gambar dibawah ini

Capture1

Gambar diatas adalah sinyal PPG yang baseline nya berubah tidak linear. Bisa dibayangkan jika kita akan menghitung heart rate akan menemui kesulitan kecuali menggunakan advance algoritma. Saya mencoba menyelsaikan dengan cara yang cukup sederhana dan mengggunakan resource seminimal mungkin.

  1. Mencari trend slope/selubung dari sinyal dengan cara memfilter sinyal menggunakan LPF orde tinggi dan frekuensi cut off dibawah 1 Hz.
  2. Lakukan langkah pertama sampai didapatkan slope yang paling ideal
  3. Sinyal ter-normalisasi = Original Sinyal – Slope sinyal

Berikut contoh slope sinyal dari sinyal diatas dan sinyal setelah dilakukan normalisasi

posta

Proses ini akan mudah jika menggunakan MATLAB, jika ingin di implementasikan di bahasa pemrograman lain dapat juga dilakukan, yang terpenting koefisien filter kita cari melalui MATLAB agar lebih mudah.

Selamat mencoba Semoga  bermanfaat.


Leave a Reply