วิธีการใช้ Convolution ใน MATLAB โดยไม่ต้องใช้ฟังก์ชัน

ภาพระยะใกล้ของสมการทางคณิตศาสตร์

MATLAB มีฟังก์ชัน Convolution ที่สร้างไว้ล่วงหน้า

เครดิตรูปภาพ: รูปภาพ Thinkstock / รูปภาพ Comstock / Getty

Convolution เป็นการดำเนินการทางคณิตศาสตร์ที่ผสมผสานสองฟังก์ชันที่สัมพันธ์กับการทับซ้อนของฟังก์ชันหนึ่งขณะที่เลื่อนไปทับอีกฟังก์ชันหนึ่ง แม้ว่า MATLAB จะมีฟังก์ชันการบิดตัวที่สร้างไว้ล่วงหน้า แต่ก็สามารถคำนวณอินทิกรัลการบิดแบบแยกส่วนได้ด้วยตนเอง การบิดแบบไม่ต่อเนื่องของสองฟังก์ชัน f และ g ถูกกำหนดเป็นผลรวมในช่วง 0 ถึง j ของ f (j) * g (k-j)

ขั้นตอนที่ 1

กำหนดเวกเตอร์สองตัวคือ f และ g ซึ่งมีฟังก์ชันสองฟังก์ชันที่คุณต้องการรวมเข้าด้วยกัน ความยาวของ f และ g ไม่ต้องเท่ากัน ความยาวของผลลัพธ์ของการบิด k จะน้อยกว่าผลรวมของความยาวของ f และ g หนึ่งอัน:

วีดีโอประจำวันนี้

ม. = ความยาว (ฉ); n = ความยาว (g); k = m + n - 1;

ขั้นตอนที่ 2

กำหนดช่วง j ที่จะเกิดการบิดเบี้ยว ค่าของ j คือช่วงที่ตัวห้อยของฟังก์ชันทั้งสองที่จะรวมเข้าด้วยกันคือ f (j) และ g (k+1-n) ถูกกฎหมาย ค่าของ 1 ที่เพิ่มให้กับ k คือการพิจารณาข้อเท็จจริงที่ว่า MATLAB เริ่มสร้างดัชนีเวกเตอร์ที่ 1 แทนที่จะเป็น 0:

j = สูงสุด (1,k+1-n):นาที (k, m)

ขั้นตอนที่ 3

จัดสรรพื้นที่ล่วงหน้าสำหรับผลลัพธ์ของการบิด:

my_result = ศูนย์ (k);

ขั้นตอนที่ 4

เขียน a for loop เพื่อวนซ้ำผ่านค่า k:

สำหรับ result_index = 1:k

ขั้นตอนที่ 5

คำนวณการบิดของค่า j ทั้งหมด:

my_result (k) = ผลรวม (f(j) .* g (k-j+1));

ขั้นตอนที่ 6

ปิด for loop ด้วยคำสั่ง "end"

หมวดหมู่

ล่าสุด

วิธีถ่ายโอนวิดีโอจาก HD DVR ไปยังคอมพิวเตอร์แล็ปท็อป

วิธีถ่ายโอนวิดีโอจาก HD DVR ไปยังคอมพิวเตอร์แล็ปท็อป

แล็ปท็อปส่วนใหญ่มีหน้าจอความละเอียดสูงที่จะแสด...

วิธีลบวอลเปเปอร์ออกจาก Registry

วิธีลบวอลเปเปอร์ออกจาก Registry

ข้ามแผงควบคุมและลบวอลเปเปอร์ออกจากรีจิสทรีโดยต...

วิธีดาวน์โหลดวอลเปเปอร์และรูปภาพ

วิธีดาวน์โหลดวอลเปเปอร์และรูปภาพ

วิธีดาวน์โหลดวอลเปเปอร์และรูปภาพ เครดิตรูปภาพ:...