Analisis Sinyal Detak Jantung
Analisis Sinyal Detak Jantung
Pada artikel ini diuraikan analisis sinyal detak jantung. Sinyal detak jantung diperoleh dari sensor pulsesensor.
Sensor ini sudah pernah dibahas di beberapa artikel sebelumnya:
Tambahan pada artikel ini adalah dilakukan filtering dengan LPF untuk membantu memuluskan sinyal hasil sensor.
Tahap pengolahan sinyal adalah sebagai berikut:
- Pulsesensor sebagai sumber sinyal yang berasal dari detak jantung
- Sinyal tegangan dari sensor dimasukkan ke Filter resistor dan kapasitor sebagai low pass filter untuk menghindari terjadinya aliasing,
- Tegangan hasil filter dimasukkan ke modul Arduino Nano untuk dikonversikan ke digital dengan ADC. Data disampling dengan frekuensi 1 kHz dengan ADC pada Arduino Nano,
- Data digital kemudian dikirimkan dengan komunikasi serial asinkron dengan kecepatan 115200 bps melalui port USB ke desktop PC.
- Data direkam di desktop PC dengan perangkat lunak RealTerm. Data direkam ke sebuah file TXT di PC.
- Data hasil rekaman kemudian dianalisis dengan perangkat lunak python menggunakan Jupyter Notebook
Perangkat lunak untuk pengukuran data di Arduino adalah sebagai berikut: https://github.com/waskita/embedded/tree/master/atmega-detak-jantung-profiling
Perangkat lunak untuk analisis sinyal adalah sebagai berikut: https://github.com/waskita/embedded/blob/master/analisis-detak-jantung/heart-beat-analysis-1kHz.ipynb
Berikut ini diagram blok aliran sinyal pada sistem ini:
Berikut ini detail uraian aliran sinyal pada sistem tersebut
Tujuan dari sensor tersebut adalah mengukur detak jantung seseorang.
Ada beberapa hal yang mempersulit perhitungan detak jantung:
- amplitudo sinyal berubah-ubah, tergantung kondisi tangan, tekanan pada sensor, dan sebagainya, sehingga batas ambang sinyal berubah-ubah
- Sinyal detak jantung memiliki puncak yang tinggi, dan ada juga puncak yang lebih kecil. Mesti ada algoritma untuk mendeteksi puncak yang tinggi saja.
Sinyal hasil pengukuran ADC masih kurang rata, sehingga untuk membuat lebih halus dilakukan filtering pada frekuensi cut off 4 Hz. Frekuensi cut-off 4 Hz dipilih mengingat detak jantung maksimum orang normal adalah 220 per menit, atau setara 3,667 Hz. Jadi sinyal di atas frekuensi 3,667 Hz tidak diperlukan.
Filter menggunakan filter digital IIR 4 pole. Filter 6 pole menghasilkan filter yang tidak stabil, sehingga akhirnya dipakai 4 pole saja. Jenis filter IIR supaya perhitungan lebih sederhana, mengingat sistem ini akan diimplementasikan di mikrokontroler dengan kemampuan komputasi yang terbatas.
Desain filter menggunakan Iowa Hills IIR Filter Designer Version 6.5 sebagai berikut:
Implementasi filter dengan bahasa Python, menggunakan struktur filter “Nth Order Coeffiecients”.
Struktur filter IIR (Infinite Impulse Response) yang dipakai adalah sebagai berikut:
Hasil filter adalah sebagai berikut (sinyal merah).
Sinyal hasi pengukuran mengandung sinyal DC offset, sehingga rata-ratanya tidak 0. Untuk menghilangkan DC offset, dilakukan filtering dengan LPF pada 200 mHz. Filter 2 pole IIR.
Hasil filter adalah sebagai berikut (sinyal merah):
Sinyal tanpa offset diperoleh dengan sinyal hasil filter 4 Hz dikurangi dengan sinyal hasil filter di 0.2 Hz. Hasilnya adalah sinyal (warna biru) di gambar di bawah ini.
Sinyal biru kemudian disearahkan (rectified), sehingga didapat sinyal warna merah.
Sinyal hasil penyearahan difilter lagi dengan filter 0.2 Hz, untuk membantu deteksi puncak. Deteksi puncak agak sulit, karena dari hasil filter 4 Hz masih ada puncak kecil. Dengan sinyal hasil penyearahan diharapkan mampu mendeteksi puncak yang tinggi saja.
Proses terakhir adalah deteksi puncak. Hanya puncak yang tinggi yang dihitung.
Penutup
Dari percobaan yang dilakukan, filtering (penapisan) analog dan digital dapat membantu membentuk sinyal supaya lebih mudah diproses.
One thought on “Analisis Sinyal Detak Jantung”