Konvolusi
Secara umum konvolusi didefinisikan sebagai cara untuk
mengkombinasikan dua buah deret
angka yang menghasilkan deret angka yang ketiga.
Konvolusi berguna pada proses pengolahan citra seperti :
·
Perbaikan kualitas
citra (image enhancment)
·
penghilang derau
(noise)
·
mengorangi erotan
(mencong/serong)
·
penghalusan /
pembulatan citra
Secara matematis, konvolusi adalah integral yang mencerminkan jumlah lingkupan dari sebuah fungsi a yang
digeser atas fungsi bsehingga
menghasilkan fungsi c.
Konvolusi dilambangkan dengan asterisk ( *).
Sehingga, a*b = c berarti
fungsi a dikonvolusikan
dengan fungsi bmenghasilkan
fungsi c.
Konvolusi dari dua fungsi a dan
fungsi b dalan
rentang terbatas [0, t] diberikan oleh:
Contoh:
a = [1,
2, 3] dan b = [4,5,6] maka a*b :
Sehingga a*b adalah [4,13,28,27,18]
Dari contoh diatas terlihat bahwa jumlah elemen c adalah
jumlah elemen a ditambah jumlah elemen b dikurangi 1
(3+3-1 = 5).
Konvolusi dikawasan waktu (time domain) ekuivalen dengan
perkalian dikawasan frekuensi dan sebaliknya konvolusi dikawasan frekuensi
ekuivalen dengan perkalian dikawasan waktu [Bracewell, 1965]
#!/usr/bin/perl
@a=(1,2,3);
@b=(4,5,6);
$la=@a; #length a
$lb=@b; #length b
$lab=$la+$lb-1; #length of result
for ( $i = 0; $i < $lab; $i++ )
{
$k=$i;
$y[$i]= 0;
for ( $j = 0; $j < $lb; $j++ ) #length b
{
if ($k>=0 && $k<$lab)
{
$y[$i] = $y[$i] + ($a[$k]*$b[$j]);
$k=$k-1;
}
}
print $y[$i], "\n";
}
@a=(1,2,3);
@b=(4,5,6);
$la=@a; #length a
$lb=@b; #length b
$lab=$la+$lb-1; #length of result
for ( $i = 0; $i < $lab; $i++ )
{
$k=$i;
$y[$i]= 0;
for ( $j = 0; $j < $lb; $j++ ) #length b
{
if ($k>=0 && $k<$lab)
{
$y[$i] = $y[$i] + ($a[$k]*$b[$j]);
$k=$k-1;
}
}
print $y[$i], "\n";
}