Page 170 -
P. 170

โครงการหนังสืออิเล็กทรอนิกส์ เฉลิมพระเกียรติสมเด็จพระเทพรัตนราชสุดาฯ สยามบรมราชกุมารี







                                                                                                       161

                                   ทํา FFT  ของสัญญาณขนาด  N  จุดจะแปรผันตรงกับคา  N.log(N)  แทน  และการทํา

                                                                                                   n
                                   FFT จะมีประสิทธิภาพสูงเมื่อ N มีคาเปนเลขยกกําลังของสอง นั้นคือ N =2   ดังนั้น
                                   ถาขนาดขอมูล N มีคาเทากับ 512 เวลาที่ใชในการทํา DFT เทากับ 262141 ในขณะที่

                                   ใชเวลาในการทํา FFT เทากับ 4608 นั้นคือ สําหรับขอมูลขนาด 512 การทํา FFT จะ

                                   เร็วกวาการทํา DFT อยูประมาณ 56.88 เทา  และความแตกตางของความเร็วนี้จะมาก

                                   ขึ้นเมื่อคา N มีคาใหญมากๆ จึงนิยมใชเทคนิค FFT ในการทํา DFT เสมอ

                                   คําสั่ง MATLAB ที่ใชในการแปลงฟูริเยรของเว็คเตอร a  ดวยวิธี FFT และการแปลง

                                   กลับฟูริเยร  คือ  คําสั่ง fft(.)  และ ifft(.)  ตามลําดับ  และคําสั่งที่ใชหาขนาดและเฟส

                                   สเปคตรัมที่ได คือคําสั่ง abs(.) และ angle(.) ตามตัวอยางโปรแกรมการทํา FFT กับ
                                   สัญญาณสี่เหลี่ยมดานลาง


                                      >> a = [1 1 1 1, -1 -1 -1 -1];   %สัญญาณสี่เหลี่ยม

                                      >> A = fft(a’)              % เก็บสัญญาณในรูปเว็คเตอร แลวทํา FFT
                                      A =

                                            0

                                            2.0000 - 4.8284i

                                            0
                                            2.0000 - 0.8284i

                                            0

                                            2.0000 + 0.8284i
                                            0

                                            2.0000 + 4.8284i

                                      >> magnitude  =  abs(A)
                                      magnitude =     0    5.2263    0    2.1648    0    2.1648    0      5.2263

                                      >> phase = angle(A)

                                      phase = 0    -1.1781      0     -0.3927      0     0.3927      0       1.1781
                                      >>  z = ifft(A);
   165   166   167   168   169   170   171   172   173   174   175