420 likes | 987 Views
DSP 6 The Fast Fourier Transform (FFT) การแปลงฟูริเยร์แบบเร็ว. ผศ.ดร. พีระพล ยุวภูษิตานนท์ ภาควิชา วิศวกรรมอิเล็กทรอนิกส์. เป้าหมาย. นศ รู้จักความหมายของ การแปลงฟูริเยร์แบบเร็ว (Fast Fourier Transform :FFT) และผลการแปลงจากสัญญาณในโดเมนเวลา
E N D
DSP 6 The Fast Fourier Transform (FFT)การแปลงฟูริเยร์แบบเร็ว ผศ.ดร. พีระพล ยุวภูษิตานนท์ ภาควิชา วิศวกรรมอิเล็กทรอนิกส์ EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
เป้าหมาย • นศ รู้จักความหมายของ การแปลงฟูริเยร์แบบเร็ว (Fast Fourier Transform :FFT) และผลการแปลงจากสัญญาณในโดเมนเวลา • นศ รู้จัก FFT แบบ Decimation in time (DIT) หรือ DIT-FFT EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
DFT คำนวณช้า...เพราะการคูณของเลขเชิงซ้อน • จากเรื่องของ DFT • สังเกตว่า แต่ละค่าของ X(k) นั้น ต้องทำการคูณจำนวนเชิงซ้อน • ถึง N ค่า คือ x(0) ถึง x(N-1) • และ ถ้าต้องการ X(k), โดยที่ k=0 ถึง N-1 ก็ต้องคูณจำนวนเชิงซ้อนอีก N ครั้ง กลายเป็น NxN • ซึ่งเป็นการกินกำลังงานของโปรเซสเซอร์อย่างมาก !!! โดย เลขเชิงซ้อน EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
จำนวนการคูณและบวกเลขจริงต่อ การคูณเลขเชิงซ้อนหนึ่งครั้ง จงหาจำนวนการคูณและบวก สำหรับการเลขเชิงซ้อนข้างล่าง ตัวอย่าง โดยที่ วิธีทำ มีการคูณ สี่ครั้ง มีการบวกสามครั้ง EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
จำนวนการคูณเลขเชิงซ้อนสำหรับ 2-point DFT กรณี N=2 มีการคูณเลขเชิงซ้อน 4 ครั้ง EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
จำนวนการคูณเลขเชิงซ้อนสำหรับ 4-point DFT กรณี N=4 มีการคูณเลขเชิงซ้อน 16 ครั้ง EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
วิธีลดจำนวนการคูณเลขเชิงซ้อนวิธีลดจำนวนการคูณเลขเชิงซ้อน ลองมาดูว่ากรณี N=2 เราได้ เราได้ นั่นคือ EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
วิธีลดจำนวนการคูณเลขเชิงซ้อน (ต่อ) แต่เนื่องจาก ซึ่งเป็นเลขจำนวนจริง ดังนั้น หรือ โดยการคำนวณ WNไว้ก่อน จะทำให้ลดการคูณเลขลง ซึ่งอาจจะทำให้ไม่มีการคูณเลขเชิงซ้อนเลย!!! EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
The Fast Fourier Transform (FFT)เร็ว...เพราะการสลับลำดับข้อมูล • Radix-2 DIT-FFT • FFT เป็นชื่อเรียกโดยรวมๆของ อัลกอริธึมใดๆ ที่มีการแปลง DFT อย่างเร็ว • วิธี“แบ่งแยกแล้วปกครอง (Divide and conquer)” ก็เป็นหนึ่งวิธีที่จะลดจำนวนการคูณเลขเชิงซ้อนลง • ใช้ การแบ่งทางเวลา (Decimation in time) กับ N สัญญาณโดเมนเวลา โดยที่ N เป็นเลขกำลังของ 2 หรือเรียกว่า Radix-2 ดังนั้นชื่อเต็มเรียกว่า Radix-2 DIT-FFT EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
บัตเตอร์ฟลาย Butterfly เป็นชื่อเรียก ของ กราฟการไหลของสัญญาณ (signal flow graph) โดยหนึ่ง บัตเตอร์ฟลายมีการคูณเลขเชิงซ้อน สอง ครั้ง 1 1 Note: จริงๆแล้วแม้ว่า =1 ส่วน =-1, แต่ตอนนี้เราจะนับไปก่อนว่าเป็นเลขเชิงซ้อน EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
กรณี N=4 DIT-FFT กรณี N =4 โดยที่ เราใช้การ”สลับ”ตำแหน่งของข้อมูลแล้ว ”รวม” (recomposite) EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
การสลับตำแหน่งและการรวม (recomposite) ซึ่งเป็นการแยกออกเป็น DFT แบบ 2 จุดสองชุด ดังนั้น DFT แบบ 4 จุด = DFT แบบ 2 จุด + Wk4 x DFT แบบ 2 จุด EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
เรา “ลดรูป” สมการลงได้อีกในขั้น Recomposite • เราจะสร้าง “บัตเตอร์ฟลาย” เพื่อแสดงการสร้างสัญญาณ X(k) สำหรับ • แต่ละค่าของ k EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
หา การรวม Recomposite หมายเหตุ: ลูกศรที่ไม่เขียนค่ากำกับไว้ จะเท่ากับการคูณด้วย “1” EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
หา การรวม Recomposite EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
หา การรวม Recomposite EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
หา การรวม Recomposite EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
ผลลัพท์ท้ายสุดคือ 4-point DIT-FFT 1 1 2-point DFT x 2 การรวม Recomposite EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
8-point DIT-FFT จัดรูปแบบใหม่ EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
8-point DIT-FFT(ต่อ) จาก สังเกตว่า เหลือเพียงการคำนวณสำหรับ 4-point DFTเท่านั้น EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
ลดรูปลงได้อีกไหม? ได้ใช้ประโยชน์จากความเป็นคาบของสัญญาณ EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
8-point บัตเตอร์ฟลาย การรวม Recomposite 4-point DFT 4-point DFT EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
แต่เรายังลดรูปได้อีก จาก สมการ 8-point DFT ที่ถูกลดลงเหลือ 4-point DFTx2 2-point DFT 2-point DFT ซึ่งก็คือ การแบ่ง 4-point DFT ออกเป็น 2-point DFTx2 EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
4-point DFT แยก 4-point DFT ออกเป็น 2-point DFT สำหรับ x(0),x(2),x(4) และ x(6) 1 1 EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
สำหรับ x(1),x(3),x(5) และ x(7) 2-point DFT 2-point DFT ซึ่งก็คือ การแบ่ง 4-point DFT ออกเป็น 2-point DFTx2 EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
แยก 4-point DFT ออกเป็น 2-point DFT สำหรับ x(1),x(3),x(5) และ x(7) 1 1 4-point DFT EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
DIT-FFT สำหรับ N=8 EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
สรุป 8-point DFT แตกตัวออกได้จนเหลือ 2-point DFT 8-point DFT 4-point DFT + Wk8 x 4-point DFT 2-point DFT + W4k x 2-point DFT 2-point DFT + W4k x 2-point DFT EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
กรณี 8-pointDIT-FFT ตัวรวม 4-point DFT ตัวรวม 8-point DFT (Recomposition to 8-point DFT) ตัวรวม 4-point DFT EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
กรณี N-pointDIT-FFT Recomposition 2-point DFT 2-point DFT 2-point DFT 2-point DFT 2-point DFT EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
ทำไม FFT ใช้การคำนวณเพียง N log2N? เมื่อเราให้ R เป็น จำนวนขั้น (stage) ที่มีการรวม เราจะได้ว่า จึงได้ สำหรับ 4–point DFT, R=1 สำหรับ 8–point DFT, R=2 EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
จำนวนขั้นการรวม (R) 4-point DFT 8-point DFT 2 2 4 4 2 2 8 จำนวนครั้ง การรวม (R)= 2 1 4 2 จำนวนครั้ง การรวม (R)= 1 2 EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
จำนวนบัตเตอร์ฟลายต่อคอลัมน์ (B) 4-point DFT 8-point DFT 2 2 4 4 2 2 8 2 จำนวนบัตเตอร์ ฟลาย (B)= 4 2 2 2 จำนวน บัตเตอร์ฟลาย (B)= 2 จำนวนคอลัมน์ 4 4 4 3 จำนวนคอลัมน์ EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
จำนวนการคูณเลขเชิงซ้อน = จ.น.บัตเตอร์ฟลายต่อคอลัมน์X จ.น.คอลัมน์ X มีการคูณ 2 ครั้งต่อบัตเตอร์ฟลาย EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
เปรียบเทียบจำนวนครั้งการคูณเลขเชิงซ้อนของ DFT และ FFT เราลดการคำนวณ จาก เหลือ EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
ปรับปรุงบัตเตอร์ฟลาย จาก r= เลขใดๆ เราทราบว่า ดังนั้น 1 -1 ทำให้เหลือ จ.น.การคูณเลขเชิงซ้อนเป็น (N/2)log2N EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
บัตเตอร์ฟลาย 4-point DFT ที่ถูกลดรูป 1 1 1 1 1 1 -1 1 1 1 -1 1 1 -1 -1 เหลือจ.น. การคูณเลขเชิงซ้อนเพียง (N/2)log2N= 4 EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon
สรุป • FFT ก็คือ DFT แต่เป็นการสลับตำแหน่งข้อมูลและเทคนิกการรวมสัญญาณ เพื่อย่อยให้จำนวนการแปลงลดรูปลง วิธีการนี้ เรียกว่า Decimation in Time (DIT) และเรียก การแปลงฟูริเยร์แบบเร็วนี้ว่า DIT-FFT • การแปลงฟูริเยร์แบบเร็ว (FFT) แบบจะทำให้เหลือการคูณเลขเชิงซ้อนเหลือเพียง Nlog2N ครั้ง จาก N2 ครั้ง เมื่อใช้ DFT • หรืออาจจะลดการคูณเลขเชิงซ้อนลงได้อีกเป็น (N/2) log2N หากใช้การปรับปรุงบัตเตอร์ฟลาย EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon