เนื้อหา
MATLAB เป็นเครื่องมือการเขียนโปรแกรมที่สามารถใช้ในการวิเคราะห์และประมวลผลสัญญาณโดยละเอียด การทำงานร่วมกันในการประมวลผลสัญญาณในหนึ่งหรือหลายมิติคือการกำจัดสัญญาณรบกวนความถี่สูง ตัวกรอง low-pass ตามคำจำกัดความได้รับการออกแบบมาเพื่อลบความถี่สูงกว่าค่าที่แน่นอนจากสัญญาณ การใช้ filter2 () ฟังก์ชั่นใน MATLAB เป็นวิธีหนึ่งในการนำตัวกรองดังกล่าวไปใช้
คำสั่ง
ฟังก์ชัน filter2 () ของ MATLAB ช่วยให้คุณสามารถใช้งานตัวกรองสัญญาณความถี่ต่ำได้ (Hemera Technologies / AbleStock.com รูปภาพ / Getty)-
นำเข้าข้อมูลของคุณไปยัง MATLAB บ่อยครั้งที่สัญญาณที่จำเป็นต้องถูกกรองจะถูกจัดเก็บในรูปแบบไบนารีซึ่งต้องการฟังก์ชั่น I / O ระดับต่ำเช่น fread () เพื่อนำเข้า อย่างไรก็ตาม MATLAB รวมถึงผู้นำเข้าภาพสำหรับรูปแบบที่พบบ่อยที่สุด
my_data = fread (file_handle, n_samples, data_type); my_image = imread ('my_image_file.tif', 'TIFF');
-
แปลงข้อมูลเป็นอาร์เรย์สองมิติก่อนประมวลผลด้วยฟังก์ชัน filter2 () คุณสามารถทำได้โดยการแปลงอาเรย์ไบนารีหนึ่งมิติไปยังอาเรย์ผ่านฟังก์ชั่น reshape () หรือโดยการเลือกภาพจากซีรีส์ ใช้ฟังก์ชัน squeeze () เพื่อลบมิติเดียวโดยเลือกส่วนของอาร์เรย์ที่มีมากกว่าสองมิติ
my_image = reshape (my_data, width, height); my_other_image = squeeze (my_image_series (:,: image_number));
-
วาดตัวกรองของคุณและเก็บผลลัพธ์ไว้ในอาเรย์สองมิติโดยทั่วไปตัวกรองผ่านความถี่ต่ำจะใช้ "หน้าต่าง gaussian" ที่สามารถสร้างด้วยฟังก์ชัน fspecial () ฟิลเตอร์สามารถออกแบบด้วยฟังก์ชั่นการประมวลผลสัญญาณพิเศษ sptool () คุณสามารถดูการตอบสนองความถี่ของหน้าต่างตัวกรองของคุณโดยใช้ฟังก์ชั่น wvtool () ในโค้ดตัวอย่าง H คืออาร์เรย์ 24x24 ที่มีค่าเบี่ยงเบนมาตรฐานแบบเกาส์หน้าต่าง 10
H = fspecial ('gussian', [24 24], 10); wvtool (H);
-
ดำเนินการกรองโดยใช้อัลกอริทึมการแปลงสองมิติที่นำมาใช้ผ่านตัวกรอง 2 () ตามค่าเริ่มต้นผลลัพธ์ของ filter2 () จะมีมิติเดียวกันกับชุดข้อมูลอินพุต
my_filtered_data = filter2 (my_data, H);