როგორ გამოვიყენოთ კონვოლუცია MATLAB-ში ფუნქციის გამოყენების გარეშე

მათემატიკური განტოლების ახლო ხედი

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".

კატეგორიები

Ბოლო

როგორ გავწმინდოთ ლეპტოპი კვამლის სუნისაგან

როგორ გავწმინდოთ ლეპტოპი კვამლის სუნისაგან

ლეპტოპ კომპიუტერთან მოწევამ შეიძლება დატოვოს კ...

როგორ დაარედაქტირო მუსიკა iMovie-ში

როგორ დაარედაქტირო მუსიკა iMovie-ში

შეგიძლიათ მუსიკის რედაქტირება iMovie-ში. ფილმე...

როგორ გადავიტანოთ dBi კმ

როგორ გადავიტანოთ dBi კმ

WIFI ქსელის შესაძლებლობების კონცეფცია. სურათის...