MATLAB מכיל פונקציית קונבולציה בנויה מראש.
קרדיט תמונה: Thinkstock Images/Comstock/Getty Images
קונבולציה היא פעולה מתמטית הממזגת שתי פונקציות ביחס לחפיפה של פונקציה אחת כשהיא מוזזת על פני אחרת. למרות ש-MATLAB מכיל פונקציית קונבולציה בנויה מראש, אפשר לחשב את אינטגרל הקונבולציה הבדיד בעצמך. הקונבולולוציה הבדידה של שתי פונקציות f ו-g מוגדרת כסכום על פני הטווח 0 עד j של f (j) * g (k-j).
שלב 1
הגדר שני וקטורים, f ו-g, המכילים את שתי הפונקציות שברצונך לסבך. האורכים של f ו-g לא חייבים להיות שווים. אורך התוצאה של הקונבולולוציה, k, יהיה אחד פחות מסכום האורך של f ו-g:
סרטון היום
m = אורך (f); n = אורך (g); k = m + n - 1;
שלב 2
הגדירו את הטווח j שבו תתרחש הקונבולולוציה. הערך של j הוא הטווח שבו כתובות המשנה של שתי הפונקציות שיש לסבך, f (j) ו-g (k+1-n), חוקיות. הערך של 1 שנוסף ל-k הוא כדי להסביר את העובדה ש-MATLAB מתחיל לאינדקס וקטורים ב-1 ולא ב-0:
j = max (1,k+1-n):min (k, m)
שלב 3
הקצו מראש מקום לתוצאה של הפיתול:
my_result = אפסים (k);
שלב 4
כתוב לולאת for כדי לחזור על ערכים של k:
עבור תוצאה_אינדקס = 1:k
שלב 5
חשב את הקונבולולוציה עבור כל הערכים של j:
my_result (k) = sum (f(j) .* g (k-j+1));
שלב 6
סגור את לולאת for עם הפקודה "סוף".