
MATLAB შეიცავს წინასწარ ჩაშენებულ კონვოლუციის ფუნქციას.
სურათის კრედიტი: Thinkstock Images/Comstock/Getty Images
კონვოლუცია არის მათემატიკური ოპერაცია, რომელიც აერთიანებს ორ ფუნქციას ერთი ფუნქციის გადახურვასთან შედარებით, როდესაც ის მეორეზე გადადის. მიუხედავად იმისა, რომ MATLAB შეიცავს წინასწარ ჩაშენებულ კონვოლუციის ფუნქციას, შესაძლებელია თავად გამოთვალოთ დისკრეტული კონვოლუციის ინტეგრალი. ორი ფუნქციის დისკრეტული კონვოლუცია f და g განისაზღვრება, როგორც ჯამი f (j) * g (k-j) 0-დან j დიაპაზონში.
Ნაბიჯი 1
განსაზღვრეთ ორი ვექტორი, f და g, რომლებიც შეიცავს ორ ფუნქციას, რომელთა გაერთიანება გსურთ. f და g სიგრძეები არ უნდა იყოს ტოლი. კონვოლუციის შედეგის სიგრძე k, ერთით ნაკლები იქნება f და g სიგრძის ჯამზე:
დღის ვიდეო
m = სიგრძე (f); n = სიგრძე (გ); k = m + n - 1;
ნაბიჯი 2
განსაზღვრეთ j დიაპაზონი, რომელზეც მოხდება კონვოლუცია. j-ის მნიშვნელობა არის დიაპაზონი, სადაც ორი ფუნქციის, f (j) და g (k+1-n) შერწყმა აბსკრიპტები ლეგალურია. k-ს დამატებული 1-ის მნიშვნელობა არის იმის გათვალისწინება, რომ MATLAB ვექტორების ინდექსირებას იწყებს 1-ზე და არა 0-ზე:
j = max (1,k+1-n):მინ (k, m)
ნაბიჯი 3
წინასწარ გამოყავით სივრცე კონვოლუციის შედეგისთვის:
ჩემი_შედეგი = ნულები (k);
ნაბიჯი 4
დაწერეთ for loop, რომ გაიმეოროთ k-ის მნიშვნელობებით:
შედეგი_ინდექსისთვის = 1:k
ნაბიჯი 5
გამოთვალეთ კონვოლუცია j-ის ყველა მნიშვნელობისთვის:
ჩემი_შედეგი (k) = ჯამი (f(j) .* g (k-j+1));
ნაბიჯი 6
დახურეთ for loop ბრძანებით "end".