BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Bab ini membahas analisis wavelet transform based filter pada sistem dan membahas tahap-tahap
yang dilakukan
pada sistem
yang akan
dibangun.
3.1. Data Yang Digunakan
Data yang digunakan dalam penelitian ini adalah data rekaman suara pernapasan menggunakan stetoskop digital dari perusahaan Littmann. Data yang ada dapat dilihat
seperti yang dirangkum pada tabel 3.1.
Tabel 3.1 Rangkuman Data Rekaman Suara Pernapasan
No. Jenis Suara
Rekaman Bagian 1.
Bronkial Lobus bawah kiri
2.
Coarse Crackles Lobus bawah kanan
3.
Fine Crackles dengan Bronkial yang gugur
Lobus tengah kanan
4.
Fine Crackles Dasar paru-paru
5. Inspirasi Stridor
Trakea
6. Trakea Normal
Trakea interskapula
7. Vesikular Normal
Lobus bawah kanan, Lobus bawah kiri
8.
Gesekan Pleura Lobus tengah kanan
9. Rhonchus
Lobus bawah kanan
10. Wheezing
Lobus bawah kiri
Universitas Sumatera Utara
3.2. Analisis Sistem
Analisis sistem bertujuan untuk mengidentifikasi sistem yang akan dikembangkan. Analisis diperlukan sebagai dasar perancangan sistem. Pada penelitian ini, terdapat
lima tahap proses yaitu tahap preprocess, tahap dekomposisi sinyal, tahap threshold, tahap rekonstruksi sinyal, dan tahap final process.
Adapun tahapan dari preprocess yaitu sebagai berikut: 1.
Masukkan berkas audio rekaman suara pernapasan. 2.
Inisialisasi data, audioinputstream, berkas. 3.
Jika berkas mengindikasi path rekaman suara yang digunakan sebagai masukan, maka ambil stream audio dari berkas dan tentukan sebagai
audioinputstream . Jika tidak, cetak “Tidak dapat membaca” dan hentikan
tahap preprocess. 4.
Tentukan data sebagai larik bertipe byte dari audioinputstream. 5.
Mulai pembacaan data dan kembalikan sebagai larik bertipe byte. 6.
Hitung panjang data dan berikan hasilnya sebagai nilai N. 7.
Inisialisasi larik d bertipe double. 8.
Dengan menggunakan persamaan 3.1, baca kembali data dan kembalikan sebagai larik bertipe double dengan nilai antara -1.0 dan +1.0.
[ ]
[ ] [ ]
3.1 dimana:
d[] = larik data bertipe double
i = indeks larik
N = panjang berkas data dalam bentuk integer
data[] = larik data bertipe byte
9. Hasil dari tahapan preprocess yaitu larik d dengan nilai larik bertipe double
dalam setiap indeks.
Adapun tahapan dari dekomposisi sinyal yaitu sebagai berikut: 1.
Inisialisasi sinyal masukan dengan hasil dari preprocess sebagai nilainya.
Universitas Sumatera Utara
2. Inisialisasi tingkat dekomposisi dengan nilai 2.
3. Inisialisasi panjang sinyal masukan.
4. Inisialisasi currentLevelLength dengan nilai panjang sinyal masukan sebagai
nilai awal. 5.
Inisialisasi larik result dengan panjang sama dengan panjang sinyal masukan. 6.
Lakukan perulangan untuk proses dekomposisi sebanyak tingkat dekomposisi. 7.
Dalam perulangan lakukan dekomposisi untuk bagian low pass filter dengan persamaan 3.2.
[ ] 3.2
[ ] 3.3
[ ] 3.4
[ ] 3.5
[ ] 3.6
√ √
3.7
√ √
3.8
√ √
3.9
√ √
3.10 dimana:
tmp[j] = larik hasil dekomposisi bagian low pass filter
i = indeks larik untuk vi
j = indeks larik untuk tmp
c = currentLevelLength
si = sinyal masukan
k0 = koefisien pertama wavelet transform
k1 = koefisien kedua wavelet transform
k3 = koefisien ketiga wavelet transform
k4 = koefisien keempat wavelet transform
8. Lakukan dekomposisi untuk bagian high pass filter dengan persamaan 3.11.
Universitas Sumatera Utara
[ ] 3.11
[ ] 3.12
[ ] 3.13
[ ] 3.14
[ ] 3.15
dimana: tmp[j+1]
= larik hasil dekomposisi bagian high pass filter i
= indeks larik untuk vi j
= indeks larik untuk tmp c
= currentLevelLength si
= sinyal masukan k0
= koefisien pertama wavelet transform k1
= koefisien kedua wavelet transform k3
= koefisien ketiga wavelet transform k4
= koefisien keempat wavelet transform
9. Tambahkan 2 pada nilai indeks larik sinyal masukan dan indeks larik tmp.
10. Jika nilai indeks larik tmp lebih besar dari nilai currentLevelLength, hentikan
perulangan. 11.
Duplikasi larik tmp, simpan dalam larik result. 12.
Atur keluaran agar bagian low pass filter di setengah depan keluaran dan bagian high pass filter di setengah belakang keluaran. Lakukan perulangan,
terapkan persamaan 3.16 dan persamaan 3.17 untuk setiap indeks larik result.
[ ] [ ] 3.16
[ ] [ ] 3.17
dimana: result[i]
= larik klon dari tmp tmp[2j]
= larik hasil dekomposisi bagian low pass filter tmp[2j+1] = larik hasil dekomposisi bagian high pass filter
i = indeks larik untuk result
Universitas Sumatera Utara
j = indeks larik untuk tmp
c = currentLevelLength
13. Jika perulangan untuk mengatur output selesai, ubah nilai currentLevelLength
dengan membagi 2. Simpan result dalam sinyal masukan, ulangi proses dekomposisi sampai nilai i lebih besar dari tingkat dekomposisi.
14. Hasil dari tahap dekomposisi adalah result dengan nilai larik bertipe double
dalam setiap indeks.
Adapun tahapan dari threshold yaitu sebagai berikut: 1.
Inisialisasi sinyal masukan, panjang sinyal, threshold, standar deviasi, sinyal suara pernapasan, noise.
2. Hitung nilai standar deviasi sinyal input menggunakan persamaan 3.18.
√ ∑
̅ 3.18
dimana: σ
= standar deviasi N
= panjang sinyal input x
1
, x
2
, ..., x
N
= nilai-nilai nilai indeks larik yang membentuk sinyal ̅
= rata-rata nilai-nilai yang membentuk sinyal
3. Hitung nilai threshold dengan menggunakan persamaan 3.19 Strang
Nguyen, 1995.
√ 3.19
dimana: t
= threshold σ
= standar deviasi N
= panjang sinyal input
Universitas Sumatera Utara
4. Lewatkan setiap indeks larik melalui threshold. Pendekatan threshold yang
digunakan dalam penelitian ini adalah hard thresholding. Namun, untuk mencoba menghilangkan white noise dari sinyal, maka hard thresholding
dimodifikasi. Jika nilai pada indeks larik lebih besar atau sama dengan threshold maka masukkan ke dalam larik pembentuk noise. Sebaliknya, jika
nilai pada indeks larik lebih kecil dari threshold maka masukkan ke dalam larik pembentuk sinyal suara pernapasan.
5. Hasil dari tahap threshold adalah larik pembentuk sinyal suara pernapasan dan
larik pembentuk noise.
Adapun tahapan dari rekonstruksi sinyal yaitu sebagai berikut: 1.
Inisialisasi sinyal masukan dengan hasil dari proses dekomposisi sebagai nilainya.
2. Inisialisasi tingkat rekonstruksi dengan nilai 2.
3. Inisialisasi panjang sinyal masukan.
4. Inisialisasi currentLevelLength dengan nilai yang dicari menggunakan
persamaan 3.20 sebagai nilai awal.
3.20 dimana:
c = currentLevelLength
N = panjang sinyal input
5. Inisialisasi larik result dengan melakukan duplikasi pada sinyal masukan.
6. Lakukan perulangan untuk proses rekonstruksi sebanyak tingkat rekonstruksi.
7. Ubah urutan sinyal masukan dari sebelumnya terbagi dua, setengah low pass
filter dan setengah high pass filter, menjadi selang-seling low pass filter – high
pass filter. 8.
Lakukan perulangan untuk proses rekonstruksi menggunakan persamaan 3.21 dan persamaan 3.26.
[ ] 3.21
[ ] 3.22
Universitas Sumatera Utara
[ ] 3.23
[ ] 3.24
[ ] 3.25
[ ] 3.26
[ ] 3.27
[ ] 3.28
[ ] 3.29
[ ] 3.30
9. Hasil dari tahap rekonstruksi adalah result dengan nilai larik bertipe double
untuk masing-masing larik pembentuk noise dan larik pembentuk sinyal suara pernapasan.
Adapun tahapan dari final process yaitu sebagai berikut: 1.
Inisialisasi nama berkas dan larik masukan bertipe double. 2.
Inisialisasi format audio dengan spesifikasi 44.100 sample rate, 16 bit audio, mono, signed PCM, dan little endian.
3. Inisialisasi larik data bertipe byte dengan panjang sama dengan 2 kali panjang
larik input. 4.
Lakukan perulangan untuk memulai konversi dari larik masukan bertipe double menjadi larik bertipe byte dan menyimpannya dalam larik data.
5. Simpan file dengan pengaturan audio file format WAVE. Gunakan format
audio dan nama berkas yang telah diinisialisasikan. 6.
Hitung signal-to-noise ratio.
Universitas Sumatera Utara
Start data = null ,
datainputstream = null , file
audioinputstream = getaudioinputstreamfile
file.exist Tidak dapat
membaca file
data = byte[audioinputstream]
audioinpustream.readdata
N = data.length
d = [N 2]
i = 0
d[i] = short data[2i+1] 0xFF 8 + data[2i] 0xFF double MAX_16_BIT
i N 2
i = i + 1 Stop
Yes No
Yes No
A
Gambar 3.1 Flowchart tahapan preprocess
Universitas Sumatera Utara
lth = si.length result = 0 , i = 0
i level
tmp = result.clone index = 0 , j = 0
j currentlvllength
tmp[j] = k0si[index] + k1si[index+1] + k2si[index+2currentlvllength] +
k3si[index+3currentlvllength] tmp[j+1] = k3si[index] - k2si[index+1] +
k1si[index+2currentlvllength] - k0si[index+3currentlvllength]
Index+=2 , j+=2 index = 0
result = tmp.clone
j currentlvllength
2 result[index] =
tmp[2j] result[index+current
lvllength 2] = tmp[2j+1]
index+=1 , j+=1 currentlvllength=2
si = result i = i + 1
Yes No
Yes No
Yes No
k0 , k1 , k2 , k3 , si = d , level = 2
A
B
Gambar 3.2 Flowchart tahapan dekomposisi
Universitas Sumatera Utara
si, lth, t, sum=0, sum2=0, tmp1=si,
tmp2=si, tmp3=si, vbs, vn, x=0, y=0
i = 0
i lth
sum += tmp1[i] i++
mean = sumlth Yes
No
i = 0
tmp3[i]=tmp2[i]-mean
2
i lth
i++ i = 0
tmp3[i]=tmp2[i]-mean
2
i lth
i++ sd=
√sum1lth
sigma=sd t=sigma
√2LogLth j=0
vn, vbs j lth
|vi[j]| = t
vn[x]=si[j] x++
j++ vbs[y]=si[j]
y++ Yes
No Yes
No
Yes No
Yes No
B
C
Gambar 3.3 Flowchart tahapan threshold
Universitas Sumatera Utara
D si=result , level=2 ,
lth=vi.length currentlvllength =
lth 2 level-1
result=si.clone i = 0
i level index=0 ,
tmp=result.clone , j=0
index = currentlvllength - 2
j currentlvllength
tmp[j] = result[index] result = tmp.clone
, j = 0 tmp[j+1] =
result[index+currentlvllength 2]
index+=1 j+=2
j currentlvllength
result[j] = k2tmp[index] + k1tmp[index+1] + k0tmp[index+2currentlvllength] +
k3tmp[index+3currentlvllength] result[j+1] = k3tmp[index] - k0tmp[index+1]
+ k1tmp[index+2currentlvllength] - k2tmp[index+3currentlvllength]
index = index + 2currentlvllength j+=2
currentlvllength=2
i = i + 1 Yes
No
Yes No
Yes No
C
Gambar 3.4 Flowchart tahapan rekonstruksi
Universitas Sumatera Utara
namafile= ne file. a ,
input = result format = 44.100 sample_rate
, 16 bit_audio , mono , signed_PCM , little_endian
byte[] data = byte[2input.length]
data[2i+1] = temp 8 data[2i+0] = temp
temp = input[i]MAX_16_BIT i input.length
Yes No
bais = ByteArrayInputStreamdata
i = i + 1 ais = AudioInputStreambais,
format, input.length
writeais, type.WAVE, Filenamafile
namafile.endswith . a
or namafile..endswith .
WAVE File format tidak
dapat digunakan
Stop Yes
No i = 0
SNR D
Gambar 3.5 Flowchart tahapan final process
Universitas Sumatera Utara
3.3. General architecture