01204483 Image Processing — Topic 08, Fourier Transforms
สุ่มตัวอย่าง (sample) สัญญาณที่ความถี่สูงเกินครึ่งหนึ่งของอัตราสุ่ม แล้วจุดตัวอย่างที่ได้จะ เหมือนกันเป๊ะกับสัญญาณความถี่ต่ำกว่าอีกตัวหนึ่งเสมอ — ไม่มีทางแยกออกจากกันได้อีกจากตัวอย่างเพียงอย่างเดียว นี่คือ aliasing — ทางแก้คือกรองความถี่สูงทิ้งก่อนสุ่ม ไม่ใช่แก้ทีหลัง
เลือกโดเมน
อัตราสุ่มตัวอย่าง fs กำหนด ความถี่ Nyquist = fs/2 — ความถี่สูงสุดที่ยังสุ่มแล้วไม่กำกวม
ถ้าความถี่สัญญาณจริง f ≤ Nyquist → ปลอดภัย จุดตัวอย่างที่ได้แทนสัญญาณนี้ได้แบบไม่กำกวม
ถ้า f > Nyquist → aliased — จุดตัวอย่างที่ได้จะเหมือนกันเป๊ะกับสัญญาณความถี่ต่ำกว่าอีกตัว (apparent frequency) คำนวณจาก falias = |f − round(f/fs)·fs|
เรียกว่า "frequency folding" — ความถี่เหมือนสะท้อนกลับรอบเส้น Nyquist ซ้ำไปเรื่อย ๆ ทุกครึ่งของ fs
เมื่อ alias แล้วกู้คืนไม่ได้ — จุดตัวอย่างไม่พกข้อมูลว่า "แท้จริงมาจากความถี่ไหน" เหลืออยู่เลย นี่คือเหตุผลที่ต้องกรองความถี่สูงทิ้งก่อนสุ่ม ไม่ใช่แก้ทีหลัง
ลองลาก f ผ่านเส้น Nyquist ที่ข้อ 2 ดูเส้นโค้งเสมือน (aliased) โผล่มาทับเส้นเดิมพอดีที่จุดตัวอย่างทุกจุด
1 · ตั้งค่าความถี่สัญญาณ (f) และอัตราสุ่ม (fs)
2 · สัญญาณจริง vs จุดตัวอย่าง vs สัญญาณเสมือน (ถ้า alias)
เส้นทึบ = สัญญาณจริงต่อเนื่อง, จุด = ตัวอย่างที่สุ่มได้จริง, เส้นประ = สัญญาณความถี่ต่ำกว่าที่ให้จุดตัวอย่างชุดเดียวกันเป๊ะ (โผล่เฉพาะตอน alias)
Frequency folding — f สะท้อนรอบเส้น Nyquist อย่างไร
—
ภาพก็มี "ความถี่" เหมือนสัญญาณเสียง — ลวดลายที่ซ้ำถี่ ๆ (ลาย, หมากรุก, เส้นขนาน) คือความถี่เชิงพื้นที่สูง
การลดขนาดภาพ (downsample) คือการลด sample grid — grid ใหม่ก็มี Nyquist limit ของตัวเอง เท่ากับครึ่งหนึ่งของความหนาแน่น sample ใหม่
ถ้า downsample แบบสุ่มจุดตรง ๆ โดยไม่กรองก่อน ลวดลายที่ถี่เกิน Nyquist ใหม่จะพับกลับมาเป็นลายผิด ๆ (moiré) ที่ไม่มีอยู่ในภาพจริง
Anti-aliasing = เบลอ (low-pass) ก่อน downsample เสมอ — ตัดความถี่ที่ grid ใหม่แสดงไม่ได้ทิ้งไปตั้งแต่ต้น แทนที่จะปล่อยให้มันพับกลับมาเป็นลายหลอน
ภาพทดสอบด้านล่างมี 4 โซนความถี่ต่างกัน (ลายตั้ง/นอน/เฉียงไล่ระดับ + หมากรุกถี่คงที่) — เห็นความแตกต่างชัดเจนระหว่างโซนที่ยัง "ปลอดภัย" กับโซนที่เริ่ม alias
ลองเพิ่ม downsample factor แล้วดู moiré โผล่ในภาพกลาง จากนั้นเพิ่ม blur sigma ดูภาพขวาเรียบลงจนลายหลอนหายไป
1 · ตั้งค่า Downsample Factor และ Blur (Anti-alias)
Nyquist limit ของ grid หลัง downsample ×k คือ 1/(2k) รอบ/พิกเซล — สูงกว่านี้จะ alias ถ้าไม่กรองก่อน
2 · ต้นฉบับ vs Downsample ตรง ๆ (Alias) vs เบลอก่อน Downsample (Anti-alias)
ทั้งสามภาพแสดงที่ขนาดเท่ากัน (ขยายกลับด้วย nearest-neighbor) เพื่อเทียบลวดลายที่เกิดขึ้นได้ตรง ๆ