Cara Menerapkan Konvolusi di MATLAB Tanpa Menggunakan Fungsi

Close-up dari persamaan matematika

MATLAB berisi fungsi konvolusi yang sudah dibuat sebelumnya.

Kredit Gambar: Gambar Thinkstock/Comstock/Getty Images

Konvolusi adalah operasi matematika yang memadukan dua fungsi relatif terhadap tumpang tindih satu fungsi saat digeser ke yang lain. Meskipun MATLAB berisi fungsi konvolusi yang dibuat sebelumnya, integral konvolusi diskrit dapat dihitung sendiri. Konvolusi diskrit dari dua fungsi f dan g didefinisikan sebagai jumlah pada rentang 0 hingga j dari f (j) * g (k-j).

Langkah 1

Tentukan dua vektor, f dan g, yang berisi dua fungsi yang ingin Anda lilit. Panjang f dan g tidak harus sama. Panjang hasil konvolusi, k, akan lebih kecil satu dari jumlah panjang f dan g:

Video Hari Ini

m = panjang (f); n = panjang (g); k = m + n - 1;

Langkah 2

Tentukan rentang j di mana konvolusi akan terjadi. Nilai j adalah rentang di mana subskrip dari dua fungsi yang akan dibelokkan, f (j) dan g (k+1-n), adalah legal. Nilai 1 yang ditambahkan ke k adalah untuk menjelaskan fakta bahwa MATLAB mulai mengindeks vektor pada 1 daripada 0:

j = maks (1,k+1-n):min (k, m)

Langkah 3

Pra-alokasikan ruang untuk hasil konvolusi:

hasil_saya = nol (k);

Langkah 4

Tulis perulangan for untuk melakukan iterasi melalui nilai k:

untuk result_index = 1:k

Langkah 5

Hitung konvolusi untuk semua nilai j:

hasil_saya (k) = jumlah (f(j) .* g (k-j+1));

Langkah 6

Tutup loop for dengan perintah "end".