LabVIEW Team Indonesia

cancel
Showing results for 
Search instead for 
Did you mean: 

Manual Low Pass Filter

Halo semuanya,

Saya mau belajar membuat low pass filter secara manual berdasarkan link ini http://en.wikipedia.org/wiki/Low-pass_filter . Dari link tersebut ada persamaan untuk low pass filter yaitu y = y[i-1] + alfa * (x - y[i-1]) dengan nilai alfa = 0,5. Saya mencoba menggunakan persamaan tersebut di LabView namun tidak ada data yang tampil di grafik akhir. Berikut saya lampirkan file lvm yg saya gunakan dan juga vi yang telah saya buat. Saya bingung kenapa tidak ada data yang tampil ya? Apakah data yang diolah harus diubah menjadi data array terlebih dahulu daripada menggunakan dynamic data?

Trims

Fino

Download All
0 Kudos
Message 1 of 14
(11,462 Views)

Sepertinya memang harus diubah ke array. Kemudian di-index sehingga while loop bisa ber-iterasi sebanyak elemen array.

kemudian kondisi stop harus diubah. Jangan berdasarkan kondisi true-false dari EOF.

Message 2 of 14
(9,445 Views)

setuju sama mas chandra. ada dua kesalahan di dalam program anda:

1. while loop nya tidak diperlukan

2. penggunaan DDT (Dynamic Data Type) yang salah --> itu wire yang warna biru tebal. Output dari Express VI pasti DDT.

3. harusnya menggunakan For Loop

Di contoh saya dibawah ini sepertinya jalan dengan baik dan benar:

contoh.png

Certified LabVIEW Developer (CLD)
Certified TestStand Developer (CTD)
Using LabVIEW 8.5.1 (2008) to LabVIEW 2024
Message 3 of 14
(9,445 Views)

Oh iya menggunakan For Loop lebih simple daripada While Loop untuk kasus ini. Simpelnya kita tidak harus "mengatur syarat" untuk auto-stop aplikasi hehe

0 Kudos
Message 4 of 14
(9,446 Views)

Terima kasih buat mas Chandra & Pak Krisna buat jawabannya...

Iya ternyata memang harus diubah ke array dulu, saya memang masih agak bingung soal Dynamic Data ini .... Saya sudah coba program saran dari Pak Krisna dan berjalan sesuai yang saya inginkan.  Plus, sebelumnya juga saya mencoba menggunakan while loop dan agak ribet memang tapi sepertinya berjalan sama. Terima kasih sekali lagi untuk bantuannya

versiWhileLoop.jpg

Message 5 of 14
(9,446 Views)

Mas, fino

  1. untuk mengambil elemen per elemen dr array anda sepertinya tidak perlu seribet itu. Tinggal di-klik kanan di bagian ketika array masuk ke while loop > enable indexing.
  2. untuk penggunaan shift register, sepertinya feedback node seperti yang digunakan sebelumnya juga sama saja hasilnya.
  3. untuk penyimpanan data yang telah difilter, anda bisa juga menggunakan Write to Measurement File.vi kalau ingin lebih simple. Tetapi sebelumnya data array harus dikonversi ke dynamic terlebih dahulu. Tetapi penggunaan *.vi yang tipe express sebaiknya dihindari (kata mas krisna haha).
0 Kudos
Message 6 of 14
(9,446 Views)

Oiya Mas Chandra soal poin pertama betul juga, jadi lebih sederhana.... untuk poin 2 & 3 nanti juga akan saya coba. Trims mas

0 Kudos
Message 7 of 14
(9,446 Views)

haha, mas chandra bisa aja.

Betul sekali. jangan pakai Express VI kalau bisa, karena menurut saya ini tidak baik untuk membuat aplikasi yang stabil dan efisien.

sama seperti makan Indomie atau Mie Sedap, segala jenis makanan yang express pasti tidak baik untuk badan kita. Sama seperti Express VI mempengaruhi kesehatan program kita. haha. ngomong apa saya ini

Certified LabVIEW Developer (CLD)
Certified TestStand Developer (CTD)
Using LabVIEW 8.5.1 (2008) to LabVIEW 2024
0 Kudos
Message 8 of 14
(9,446 Views)

Hahaha analoginya lucu pak

Oiya kalo boleh nanya lagi, kenapa kalo pakai ekspress vi kurang stabil dan efisien pak?

0 Kudos
Message 9 of 14
(9,446 Views)

Express VI dibuat oleh LabVIEW R&D untuk orang yang ga ingin ribet dan ingin cepat dalam programming LabVIEW. Indikasi Express VI, subVInya berwarna biru muda dan datatype nya adalah Dynamic Data Type (DDT).

Masalah pertama, Express VI bisa kita sebut High Level programming. Contoh kalau kita ingin menulis data/string ke dalam File, maka prosesnya adalah:

- buka file

- tulis data.string

- tutup file

Dalam Express VI yang terjadi dalam satu blok adalah ketiga-tiganya, buka file, tulis data/string dan tutup file. Sehingga kalau kita taro Express VI dalam loop, yang terjadi adalah,

buka, tulis, tutup, buka, tulis, tutup, buka, tulis, tutup, dst.

--> ada ketidakefisienan dalam buka dan tutup.

--> lebih efisien kalau buka file di luar loop, tulis data/string di dalam loop dan tutup file di luar loop.

Masalah kedua, Dynamic Data Type. Wah ini masalah, karena dia bukan standard Data Type dalam LabVIEW yang seperti: Boolean, String, Numeric, atau container seperti Cluster, Array, Waveform dll. Dynamic Data Type bisa  apa saja dan hanya sumber data yang menentukan tipe apa yang ada di dalam DDT.

--> masalah DDT lah yang terjadi sama VI fino yang pertama.

Semoga membantu. Saya memang orang anti-Express VI

Certified LabVIEW Developer (CLD)
Certified TestStand Developer (CTD)
Using LabVIEW 8.5.1 (2008) to LabVIEW 2024
Message 10 of 14
(9,446 Views)