(* Content-type: application/mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 6.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 145, 7] NotebookDataLength[ 121817, 2722] NotebookOptionsPosition[ 116703, 2571] NotebookOutlinePosition[ 117098, 2588] CellTagsIndexPosition[ 117055, 2585] WindowFrame->Normal ContainsDynamic->False*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell["Introduction to Discrete Fourier Transforms", "Title"], Cell["\<\ APAM 1601y Columbia University\ \>", "Subsubtitle"], Cell[CellGroupData[{ Cell["Introduction", "Section"], Cell[TextData[{ "Last week, we introduced the Joseph Fourier's transform as a technique to \ solve partial differential equations (PDEs). The Fourier transform changes \ the way functions are represented. For example, instead of representing a \ function, ", StyleBox["f", FontSlant->"Italic"], "[", StyleBox["x", FontSlant->"Italic"], "], as a curve along ", StyleBox["x", FontSlant->"Italic"], "; we can represent ", StyleBox["f", FontSlant->"Italic"], " with a number of coefficients, ", Cell[BoxData[ FormBox[ SubscriptBox["a", "i"], TraditionalForm]]], "and ", Cell[BoxData[ FormBox[ SubscriptBox["b", "i"], TraditionalForm]]], ", that multiply a known set of orthogonal \"modes\". " }], "Text"], Cell["\<\ The Fourier transform expands functions in terms of sine and cosine functions \ of different wavelengths or frequencies. The Fourier transform is like \ \"spectrum analyzer.\" It takes a function and returns a spectrum: a number \ proportional to the fraction of the function that is represented by each \ wavelength or frequency. \ \>", "Text"], Cell["\<\ The \"discrete Fourier transform\" became in use in the 1960's as the world \ entered the \"computer age,\" Today, information is primarily represented \ (and transmitted) in digital form, and the field of \"digital signal \ processing\" is at the core of all forms of digitally-recorded music, video, \ and information.\ \>", "Text"], Cell[TextData[{ "This notebook introduces the discrete Fourier transform (DFT) and \ illustrates its use. We also describe the recursive \"fast Fourier \ transform\" (FFT) that is built into ", StyleBox["Mathematica. ", FontSlant->"Italic"] }], "Text"], Cell[CellGroupData[{ Cell["John W. Tukey (1915-2000)", "Subsection"], Cell[GraphicsData["CompressedBitmap", "\<\ eJyUnQe4ZklVtU+f893YuXt6pmd6hp4ZBBEVUFQk+KOgmDGLGTGLijrmDCgG zFlRMWJExZwTZsUs5owgChhAouD317ur3jr7nHt7wH6e218+oWrVqrVD7XrH R33iR3zoxzzqEz/ygx9161vf8aiP+4iP/OBPuPVhH3tHeWs6MQzDz5W//7p1 4Pm2PPW/89vbb799e9ttt21vvfXWeLzrXe+6fa3Xeq14zJ/d5S532d50003b S5cubc+dO7c9efLkdn9/f3t4eDiM27Nnzw778V55vT116lT8pe9sT58+Xb+2 sz1//vz2uuuu215//fXxd/ny5XKIcvDhLM/js/LNOAQ/55H3br755u0tt9wS l8FzL5fLLJdYjnH16tVyGVwu7/EZ3+HS+V35lOcjPy533l7G13nOV3jNT3h9 4403xml4j8vkNZdO63z2Z3/29hnPeEY55e///u8Pl7b/8A//sP37v//77d/8 zd9sn/zkJ2/vd7/7bV/3dV83vsvx+O3rv/7rbz/rsz5r+6mf+qnb933f992+ 53u+5/YRj3jE9uEPf3hc6j3ucY/4LtdRzjfU69yN395www3R8hcvXozWL00y bg8ODoaT23GMZ9tpmrbv+I7vuH2v93qv7du//dvHz7hsWqvd1jDRLsNhbxlu k0c7nO/xHs9Ls9QGPdsbtDV0byUb2ff5qThqhyx3UV6N8fSGDia/7Pl8TXNz 3aCA59wq98DtX7hwIe4FJOTm4HX5XjlRgVu5Q5DD+zThCY42NGBs+rW1vzFQ s7u9cuVKNDp/dnI51gj4Clw5ESfh7TNnzoDkcprSA+WIwHN3dzcey2cjXyoI 5PxeYx44vFeuddru7e2VX3N73GZr27jMKS5qr3ePFyZS6cZ64QcLYHMM2vzu d7979ElrznKW8o1ySZyaY9KMNiHf/e7v/u7t05/+9HH7B3/wB8Mt2+c///nb P//zP9/+9V//9faXf/mXt2/7tm8bh3rjN37j7d3udreOnAc96EHb93//9w+0 veu7vuv2Az7gA7Zv/uZvHt/xsjiFPSSI6U1eC2T6bIzm2A0U7+zsBG089KEP 3X7Ih3zI9v73v3+lhqmPxfJXfsJdbTqAWiuMrfHW2OJG21AcptV36Bt+ntik HLh+0zup7FLurcCB48lAjZHqN8fW0nzI7dLhYIYW59YBdbn9kQ/GgOcUTdDY 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 DwW0I2RcmhIs8xbrdZjcHc0KCMlBoKWSDK1SzqXFZ7kEHZfHscm1gIrxD1No 5Pq2YjSziLkiioLqFJ5yYKOBc7+DM03EXXcl99wKwxqTyYPVslmmfuaan1HX RqyslM40N7TFkzkv/0YqSNTw6zoNw3XE10cN1mrP7fdChy6rzgkkIdKX4ch+ CzTDyUVdBxsua9ic9larKZ9ZuIW9JitqrmvqHNHg+4vWOMaem47g1qbJBVUA FK9hMMiSYAWYBXxwL7yLLwsMg1+ixryP34AgQtENI6AuQxFRigyhyjuXTWqX VZrSpBa+g+aZmCdigHBd15k5xYmf4a2Ac4Er4RUe8bThIpVtcgijNcNYO65K iVzjsvyNLb8vu2SbZBjWcG2HrjPDJs/EM7j3O2JXRqPQc22oloxsWMXkTbEq /hoep0VyRrOGBtPNN71+RWNxSSxlP9UpofEszX9qkRvldMJ9Ojev0g12Wrnf 9WqSS60AiglnzQJ0OUC2dFdc20b1lG/yiF64aw9S6jNxrHMyLoSEXIBIXiNC F2bDhMMMw2fGFA3RAlzcCpAyigG0IogRFUTYCO0iqGFZkAsNeEMmlwqA1dQb 8aO2kDXXtKVPuHE09cd8zMfEKfAXoxhIJbvPfe4zuNFEypPupkXC2GCBo4zi 2f9WJe61oTzl3zQ/4NTDVdf1+jQHR9RInrNnFxlddbjwreVlqivfaZ03lipY WowonTjOCWLlvU01Uc2SMB8kBY7rZ/TMTp+I81KEnZb+ZTTjLr2k5l4HLx1l nzcyHFop+joRpbsfdLHnScis0oTa2+PD1nUdtRIarlQoFUcYi3We85znBDqB BaYYZhwalvcwz5iv8RTzGYjlM8w14ETeJM1GTIe7MGTerJxpTsBL9VdAa8+Y 7oNfiUDrIxM+6IM+KMJ5cC0r1EAs1txchnzqaXpVO3ZX1k4f98J0jkPtLLy4 C5gaqPJHMvoxurFjPmtLe2kzx9WWVuLsvZOLhG5LKR+MfqgsEtFmbTzLn5nC Gs212zx1ZBpImD0SuzC8Y+1/vV4p9XGwHKhJFk6tCbieo3tcMnbNdU5zybDW CFcX7mmegwp+gVPXNPAXv/jFW/6RRk4ojv2L9JIBWgQsQgBqBszoXTQD1Muy MYebaXW87nH4YbfTa67TFBn5QO9CduL0/FGeA1rolZgyIQzGDOAlPOf66lT2 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 2EmUBYRES3G5YyLyW+L+iJw6cQ+xWZbJNxA3OSakvzDmAC5mIpHZAt6RwVUA hsciU2fL8L2G435zTKph2JiRQctnezlEu0gL6Dn1w1x3dY3bHNs29zi9dhYX RzXQc5d5Nzg9AHxwItygQ1qoe43U13X1hbnw0GYR93douG4whzbTgsCK3jOL jFrvMSf8GGfJ6O1iYY7G1Wa70IrYtbIS59leFcp96CLgZ9ifbA3EI/BEIABX uBahgOsVDMixYANsuskdVQt4DYatJQfnslSA/D6SnnXl4SlzVTv8Dj4pm4lY ZmJn2TaiFhziQaV4OEKXuhrkvhioxwrDSmNMsDzMfaq5Bp4zD3CtvIZ08YGZ 3mvTMQbWHtWag8n/JxewNN8qa4VE0D39NYnkBt1THbLHQTen1DfYBqNOrUB1 3lI2p3XcbInxpoCDfyt6r5VudTmWoOdIfcppMr4vp7axMuYl24abVsHQqa1O ELmO1GZvtC1EMMk3iyUfgUjtsAgcD5cWGiCvZuPAtC34IUsEbkITIGLB7H/8 x38ERhGzFOQGoxSIK1qgnJyKm/cJfkXcuvEzLjN4Fm5lAazZ02AR7sRTz3M4 k+dkVeuaBru8hlPf+q3fOnL28HmBdTwHBOZ5DyHLEgO8GCw74JwIWip9ci08 B6u85powHrkO7hdetzZSuffNyrFVoQr4+p6Ei3V3JntPTRjk/Ni01iAXXTsu lW8Vhe+PadupwSqpqe7vsN4rtgUs1QanFySalzivIZb8tMM4K4jsA2uB/nop bVl/SoM9dyTum7Fq8pjU4tKkxLCu5UkJvTWzbJh3NXRKzFVsMFOYbTHHn/vc 54Zy1fzCjcDsqulFscKK1LORoGpFTlDB5/ifYFrrZRDJJ74E4mBOZvmHPOQh 5RhF45YmIjsbFwBqIFRsoc+CFwgXYOLzxdV1xx13lJ887nGPK62EgxZrD9Im gZC1XViBDCROD7FSL9yJALBCuijd4JAawk2JwQ18m+5bbEDdHIPb3O7dGdz8 CtqdjT+OBL3mZMCdI7ZY920Nm06nDbh5F1/XPu9UlN5ILaN4BvkNw6WFOs4R i1woJctZ/QltbUzHqzK34rNeQFvF1dx4dfF1xuzsL2ZiOeh2w7WKd3VX4UH1 PRqWGXqiRRwCEMBImCeI0xe+8IUhWsElOU0wFJ8zm6NEYUvqFIPLZzzjGeVy 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 1VrWFJ5UffrduTX+DrPP72m+TKxqbI2vzAbVs5c6r1/fmGWsChYOsVOcrswN Y8oCtZdSY8KvbPxdwdXZy3/V/VP3OaEOkbU9W8agYl71nL7KIRF3k2h0PDk1 cuakS1uShh/wPt2AsfeMYJNkZ2AnYF9GMgFGZhaw/fAP//A4ERh42wQi0TV7 JJiV0KWfktTkGs4FEHnNZyCIQcQzKHPj2LWWYG48TjvWLi+zrnS8feDV8uq0 Hiyc6s8topoJQT/xj29/4h/8w9u//2M/fvupH/m7tz/yt/727d/6G3/z9m/+ 9U/efvKH/+rtX/uhv3L7V/7SX779i3/+LzwAuhOQbvLR2GZiUVSOS1IVqB6N RDKPe1X1OEEZG31WYyUcn004atB3A59HzSce+Zz3M0Ywv5cRq3EuFIlXivOZ ZWALPaL4rGImhIFGsiCNQII0sDiEPvjBD15VIPuwy2P2L4jipfSKaNPVnWYz khp32brez7q8Y7lofRqeFl47NJWTbOooItwNCjWbMHINlXNAblzkANMwcoCi clHh5EbMsW1jn1Achuf4/SElx20BTz7ne+Q7Ypzi+gNOA16HySp6nIi0s8dP //RPr0QCx53Jfmy1c7RVID7+sLi0Z9+Y//0/3f7sp3/m9mf+/X+4/ff/5t/e /tt/+a9u//VPjVP9s5+6/Rc/Cfj/+T/5yQe3P/H3/sGD20/9nR/ZYDKa2QZ/ hFt4VKAiPo/FC5Xu/yjsP1YLsUTocRZSv7/sJG0ma1ZBoju2CFVSsoNnYU0h k+/JF2BdLOvDxpFcOXF8WajYUJgT9ieMIi0WoGTS5oyrRHKFyWpmBvWimn16 7Jq8dxbH5F8kIp3hbYg8nKHhfdLhGR4pPeanHYvLmYP/3ERZU2mvhIJXFGuU OBQ8xCkYRDyyOsEZOPW5G6mZ4ewtKK6aURE4wU3w9jKNMKvAMuMpWx77uA0I 5XNUlMo2Zp6lXI0kU9jy9uyKB1WPS979f//P/3v7f//cf7v9b//nf739r//5 v9z+l5/9T7f/+X/92dv/42f+t9uf/V8G4v/Df7z99L/7n2//zb/4l2OD/6f/ 6CcGdh/8/xbuHyo=\ \>"], "Graphics", Evaluatable->False, ImageSize->{187, 241}, ImageMargins->{{0, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}], Cell["\<\ John Wilder Tukey was born in New Bedford, Massachusetts, on June 16, 1915. \ He earned bachelor's and master's degrees in chemistry at Brown University in \ 1936 and 1937, respectively. He then went to Princeton, where, in 1938 he was \ a Jacobus Fellow, and upon receiving his doctorate in mathematics from \ Princeton in 1939, he was appointed Henry B. Fine Instructor in Mathematics. \ A decade later, at age 35, he was became a full professorship. He directed \ Princeton's Statistical Techniques Research Group from its founding in 1956. \ At the same time, he was a Member of Technical Staff at AT&T Bell \ Laboratories in 1945, advancing to Assistant Director of Research, \ Communications Principles in 1958 and, in 1961, to Associate Executive \ Director-Research Information Sciences, which position he held until his \ retirement in 1985.\ \>", "Text"], Cell["\<\ John Tukey has attracted international attention for his studies in \ mathematical and theoretical statistics and their applications to a wide \ variety of scientific and engineering disciplines. He has led the way in the \ now-burgeoning fields of Exploratory Data Analysis and Robust Estimation, and \ his contributions to the Spectrum Analysis of Time Series and other aspects \ of Digital Signal Processing have been widely used in engineering and \ science. He has been credited with coining the word \"bit\", a contraction \ of \"binary digit\", which refers to a unit of information, often as \ processed by a computer.\ \>", "Text"], Cell[TextData[{ "In addition to strong continuing interests in a wide variety of areas of \ statistical philosophy, techniques and application, Tukey has been active in \ improving the access of the scientist to the scientific literature, \ particularly through the development of citation and permutation indices to \ the literature of statistics and probability", StyleBox[". In another area collaboration with a fellow mathematician \ resulted in the formation of the Cooley-Tukey Fast Fourier Transform (FFT) \ algorithm, a mathematical technique that greatly simplifies computation for \ Fourier series and integrals. ", FontWeight->"Bold", FontColor->RGBColor[0, 0, 1]], " Other interests range through applications to such fields asbehavioral \ sciences, geophysics and pharmaceutical research." }], "Text"], Cell["\<\ In 1965, Tukey was named the first recipient of the Samuel S. Wilks Award of \ the American Statistical Association. He received the National Medal of \ Science in 1973 \"for his studies in mathematical and theoretical statistics\ \[Ellipsis]and for his outstanding contributions to the applications of \ statistics to the physical, social, and engineering sciences\". Tukey \ received the Shewhart Medal of the American Society for Quality Control in \ 1977; the Institute of Electronic and Electrical \ Engineers\[CloseCurlyQuote]1982 Medal of Honor , for the Cooley-Tukey Fast \ Fourier Transform (FFT) Algorithm; and the American Society for Quality \ Control\[CloseCurlyQuote]s Deming Medal in 1983. In 1989 he was elected a \ Foreign Member of The Royal Society (London) . Princeton University honored \ him in 1984 with the James Madison Medal , given annually to an alumnus of \ the Graduate School who has had a distinguished career, who has advanced the \ cause of graduate education, or who has achieved a record of outstanding \ public service. In 1989 he received the Monie A. Ferst Award of Sigma Xi, and \ in 1990 the Educational Testing Service Award for Distinguished Service to \ Measurement.\ \>", "Text"], Cell["\<\ Tukey has taught on both the undergraduate and graduate levels and is widely \ sought as a seminar leader and lecturer. He holds honorary degrees from Case \ Institute of Technology, the University of Chicago and Brown, Temple and Yale \ Universities.\ \>", "Text"], Cell["\<\ President of the Institute for Mathematical Statistics in 1960,he has also \ served as Vice President of the American Statistical Association and as \ Chairman of both its Biometrics Section and its Section on Physical and \ Engineering Sciences.He has been a Member of the Council of the Biometric \ Society,and served on the NationalResearch Council for more than a decade.He \ is a member of the National Academy of Sciences,and is a member of the \ American Philosophical Society (vice president,1975-77) and the American \ Academy of Arts and Sciences,Honorary Fellow of the Royal Statistical Society \ (London),and a Foreign Member of The Royal Society (London).Among his other \ affiliations are the International Statistical Institute,the American \ Association for the Advancement of Science (vice president,Section A,1972 and \ Section U,1974) and Sigma Xi.\ \>", "Text"], Cell[TextData[{ "(", StyleBox["From the Bell Labs Memorial site:", FontSlant->"Italic"], " ", StyleBox[".)", FontFamily->"Courier"] }], "Text"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[TextData[{ "Euler's Identity for ", Cell[BoxData[ FormBox[ SuperscriptBox["e", "I\[Theta]"], TraditionalForm]]] }], "Section"], Cell[BoxData[ RowBox[{"ExpToTrig", "[", RowBox[{"Exp", "[", RowBox[{"I", " ", "\[Theta]"}], "]"}], "]"}]], "Input", CellLabel->"In[1]:="], Cell[BoxData[ RowBox[{"TrigToExp", "[", RowBox[{"Cos", "[", "\[Theta]", "]"}], "]"}]], "Input", CellLabel->"In[2]:="], Cell[BoxData[ RowBox[{"TrigToExp", "[", RowBox[{"Sin", "[", "\[Theta]", "]"}], "]"}]], "Input", CellLabel->"In[3]:="], Cell[BoxData[ RowBox[{"Plot", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Re", "[", SuperscriptBox["\[ExponentialE]", RowBox[{"\[ImaginaryI]", " ", "\[Theta]"}]], "]"}], ",", RowBox[{"Im", "[", SuperscriptBox["\[ExponentialE]", RowBox[{"\[ImaginaryI]", " ", "\[Theta]"}]], "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"\[Theta]", ",", "0", ",", RowBox[{"2", " ", "\[Pi]"}]}], "}"}], ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"RGBColor", "[", RowBox[{"0", ",", "0", ",", "1"}], "]"}], ",", RowBox[{"RGBColor", "[", RowBox[{"1", ",", "0", ",", "0"}], "]"}]}], "}"}]}]}], "]"}]], "Input",\ CellLabel->"In[4]:="] }, Closed]], Cell[CellGroupData[{ Cell["Defining the Discrete Fourier Transform", "Section"], Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " has a powerful command the discrete Fourier transform (DFT) that can be \ used for digital signal processing. " }], "Text"], Cell[BoxData[ RowBox[{"??", "Fourier"}]], "Input", CellLabel->"In[5]:="], Cell[BoxData[ RowBox[{"??", "InverseFourier"}]], "Input", CellLabel->"In[6]:="], Cell[CellGroupData[{ Cell["Example (64 Samples)", "Subsection"], Cell[BoxData[ RowBox[{"nSize", " ", "=", " ", RowBox[{"2", "^", "6"}]}]], "Input", CellLabel->"In[7]:="], Cell[BoxData[{ RowBox[{ RowBox[{"x", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"N", "[", RowBox[{"Sin", "[", FractionBox[ RowBox[{"2", " ", "\[Pi]", " ", RowBox[{"(", RowBox[{"i", "-", "1"}], ")"}], " ", "2"}], "nSize"], "]"}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", "nSize"}], "}"}]}], "]"}]}], ";"}], "\n", RowBox[{"ListPlot", "[", "x", "]"}]}], "Input", CellLabel->"In[8]:="], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"h", "[", "n_", "]"}], " ", ":=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{"Exp", "[", RowBox[{"2", " ", "\[Pi]", " ", "I", " ", RowBox[{"(", RowBox[{"i", " ", "-", " ", "1"}], ")"}], RowBox[{"n", "/", "nSize"}]}], "]"}], ",", " ", RowBox[{"{", RowBox[{"i", ",", " ", "1", ",", " ", "nSize"}], "}"}]}], "]"}]}], ";"}]], "Input", CellLabel->"In[10]:="], Cell[BoxData[ RowBox[{"h", "[", "0", "]"}]], "Input", CellLabel->"In[11]:="], Cell[BoxData[ RowBox[{"h", "[", "1", "]"}]], "Input", CellLabel->"In[12]:="], Cell[BoxData[ RowBox[{"h", "[", "63", "]"}]], "Input", CellLabel->"In[13]:="], Cell[BoxData[ RowBox[{ RowBox[{"h", "[", RowBox[{"-", "2"}], "]"}], " ", "-", " ", RowBox[{"h", "[", RowBox[{"nSize", " ", "-", " ", "2"}], "]"}], " "}]], "Input", CellLabel->"In[14]:="], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{ RowBox[{"h", "[", "3", "]"}], " ", ".", " ", RowBox[{"Conjugate", "[", RowBox[{"h", "[", "3", "]"}], "]"}]}], "//", " ", "N"}], " ", "//", " ", "Chop"}]], "Input", CellLabel->"In[15]:="], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{ RowBox[{"h", "[", "3", "]"}], " ", ".", " ", RowBox[{"Conjugate", "[", RowBox[{"h", "[", "4", "]"}], "]"}]}], "//", " ", "N"}], " ", "//", " ", "Chop"}]], "Input", CellLabel->"In[16]:="], Cell[BoxData[ RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"h", "[", "i", "]"}], " ", ".", " ", RowBox[{"Conjugate", "[", RowBox[{"h", "[", "i", "]"}], "]"}]}], " ", "//", " ", "N"}], " ", "//", " ", "Chop"}], ",", " ", RowBox[{"{", RowBox[{"i", ",", " ", "0", ",", " ", RowBox[{"nSize", "-", "1"}]}], "}"}]}], "]"}]], "Input", CellLabel->"In[17]:="], Cell[BoxData[ RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"h", "[", "i", "]"}], " ", ".", " ", RowBox[{"Conjugate", "[", RowBox[{"h", "[", "10", "]"}], "]"}]}], " ", "//", " ", "N"}], " ", "//", " ", "Chop"}], ",", " ", RowBox[{"{", RowBox[{"i", ",", " ", "0", ",", " ", RowBox[{"nSize", "-", "1"}]}], "}"}]}], "]"}]], "Input", CellLabel->"In[18]:="], Cell[BoxData[ RowBox[{"xf", " ", "=", " ", RowBox[{ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"x", ".", "#"}], ")"}], "&"}], " ", "/@", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{"h", "[", "i", "]"}], ",", " ", RowBox[{"{", RowBox[{"i", ",", " ", "0", ",", " ", RowBox[{"nSize", "-", "1"}]}], "}"}]}], "]"}]}], "//", " ", "Chop", " ", RowBox[{"(*", " ", "DFT", " ", "*)"}]}]}]], "Input", CellLabel->"In[19]:="] }, Closed]], Cell[CellGroupData[{ Cell["DFT Orthogonal Modes", "Subsection"], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"LPlotComplex", "[", RowBox[{"x_List", ",", "options___"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"p1", ",", "p2"}], "}"}], ",", RowBox[{ RowBox[{"p1", "=", RowBox[{"ListPlot", "[", RowBox[{ RowBox[{"Re", "[", "x", "]"}], ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"RGBColor", "[", RowBox[{"0", ",", "0", ",", "1"}], "]"}]}], ",", RowBox[{"Joined", "\[Rule]", "True"}], ",", RowBox[{"DisplayFunction", "\[Rule]", "Identity"}]}], "]"}]}], ";", RowBox[{"p2", "=", RowBox[{"ListPlot", "[", RowBox[{ RowBox[{"Im", "[", "x", "]"}], ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"RGBColor", "[", RowBox[{"1", ",", "0", ",", "0"}], "]"}]}], ",", RowBox[{"Joined", "\[Rule]", "True"}], ",", RowBox[{"DisplayFunction", "\[Rule]", "Identity"}]}], "]"}]}], ";", RowBox[{"Show", "[", RowBox[{"p1", ",", "p2", ",", "options"}], "]"}]}]}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"modeTable", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"LPlotComplex", "[", RowBox[{ RowBox[{"h", "[", RowBox[{ RowBox[{"i", " ", "2"}], "+", "j"}], "]"}], ",", RowBox[{"PlotLabel", "\[Rule]", RowBox[{"\"\\"", "<>", RowBox[{"ToString", "[", RowBox[{ RowBox[{"i", " ", "2"}], "+", "j"}], "]"}]}]}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "0", ",", "3"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "0", ",", "1"}], "}"}]}], "]"}]}], ";"}], "\n", RowBox[{"Show", "[", RowBox[{ RowBox[{"GraphicsGrid", "[", "modeTable", "]"}], ",", RowBox[{"DisplayFunction", "\[Rule]", "$DisplayFunction"}]}], "]"}]}], "Input", CellLabel->"In[20]:="], Cell[BoxData[{ RowBox[{ RowBox[{"modeTable", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"LPlotComplex", "[", RowBox[{ RowBox[{"h", "[", RowBox[{ RowBox[{"i", " ", "2"}], "+", "j"}], "]"}], ",", RowBox[{"PlotLabel", "\[Rule]", RowBox[{"\"\\"", "<>", RowBox[{"ToString", "[", RowBox[{ RowBox[{"i", " ", "2"}], "+", "j"}], "]"}]}]}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "13", ",", "16"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "0", ",", "1"}], "}"}]}], "]"}]}], ";"}], "\n", RowBox[{"Show", "[", RowBox[{ RowBox[{"GraphicsGrid", "[", "modeTable", "]"}], ",", RowBox[{"DisplayFunction", "\[Rule]", "$DisplayFunction"}]}], "]"}]}], "Input", CellLabel->"In[23]:="], Cell[BoxData[{ RowBox[{ RowBox[{"modeTable", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"LPlotComplex", "[", RowBox[{ RowBox[{"h", "[", RowBox[{ RowBox[{"i", " ", "2"}], "+", "j"}], "]"}], ",", RowBox[{"PlotLabel", "\[Rule]", RowBox[{"\<\"n = \"\>", "<>", RowBox[{"ToString", "[", RowBox[{ RowBox[{"i", " ", "2"}], "+", "j"}], "]"}]}]}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "28", ",", "31"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "0", ",", "1"}], "}"}]}], "]"}]}], ";"}], "\n", RowBox[{"Show", "[", RowBox[{ RowBox[{"GraphicsGrid", "[", "modeTable", "]"}], ",", RowBox[{"DisplayFunction", "\[Rule]", "$DisplayFunction"}]}], "]"}]}], "Input", CellLabel->"In[25]:="] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["DFT (Long Way)", "Section"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"dft", "[", "x_List", "]"}], " ", ":=", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"n", ",", "e0", ",", " ", "eVec"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"n", " ", "=", " ", RowBox[{"Length", "[", "x", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"e0", " ", "=", " ", RowBox[{"Exp", "[", RowBox[{"2", " ", "\[Pi]", " ", RowBox[{"I", "/", "n"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"eVec", " ", "=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{"e0", "^", RowBox[{"(", RowBox[{"i", "-", "1"}], ")"}]}], ",", " ", RowBox[{"{", RowBox[{"i", ",", " ", "1", ",", " ", "n"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{"(", RowBox[{"x", " ", ".", RowBox[{"eVec", "^", RowBox[{"(", RowBox[{"i", "-", "1"}], ")"}]}]}], ")"}], ",", " ", RowBox[{"{", RowBox[{"i", ",", " ", "1", ",", " ", "n"}], "}"}]}], "]"}], "/", RowBox[{"Sqrt", "[", "n", "]"}]}]}]}], "]"}]}], ";"}]], "Input", CellLabel->"In[27]:="], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"idft", "[", "xf_List", "]"}], " ", ":=", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"n", ",", "e0", ",", " ", "eVec"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"n", " ", "=", " ", RowBox[{"Length", "[", "x", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"e0", " ", "=", " ", RowBox[{"Exp", "[", RowBox[{ RowBox[{"-", "2"}], " ", "\[Pi]", " ", RowBox[{"I", "/", "n"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"eVec", " ", "=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{"e0", "^", RowBox[{"(", RowBox[{"i", "-", "1"}], ")"}]}], ",", " ", RowBox[{"{", RowBox[{"i", ",", " ", "1", ",", " ", "n"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{"(", RowBox[{"xf", " ", ".", RowBox[{"eVec", "^", RowBox[{"(", RowBox[{"i", "-", "1"}], ")"}]}]}], ")"}], ",", " ", RowBox[{"{", RowBox[{"i", ",", " ", "1", ",", " ", "n"}], "}"}]}], "]"}], "/", RowBox[{"Sqrt", "[", "n", "]"}]}]}]}], "]"}]}], ";"}]], "Input", CellLabel->"In[28]:="], Cell[BoxData[ RowBox[{ RowBox[{"xf", " ", "=", " ", RowBox[{"dft", "[", "x", "]"}]}], ";"}]], "Input", CellLabel->"In[29]:="], Cell[BoxData[ RowBox[{"xf", " ", "//", " ", "Chop"}]], "Input", CellLabel->"In[30]:="], Cell[BoxData[ RowBox[{ RowBox[{"ListPlotComplex", "[", RowBox[{"x_List", ",", "options___"}], "]"}], " ", ":=", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"p1", ",", "p2"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ StyleBox["p1", FontColor->RGBColor[0, 0, 1]], " ", "=", " ", RowBox[{"ListPlot", "[", RowBox[{ RowBox[{"Re", "[", "x", "]"}], ",", RowBox[{"PlotStyle", "\[Rule]", " ", StyleBox[ RowBox[{"RGBColor", "[", RowBox[{"0", ",", "0", ",", "1"}], "]"}], FontColor->RGBColor[0, 0, 1]]}], ",", RowBox[{"DisplayFunction", " ", "\[Rule]", " ", "Identity"}], ",", "options"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ StyleBox["p2", FontColor->RGBColor[1, 0, 0]], " ", "=", " ", RowBox[{"ListPlot", "[", RowBox[{ RowBox[{"Im", "[", "x", "]"}], ",", RowBox[{"PlotStyle", "\[Rule]", " ", StyleBox[ RowBox[{"RGBColor", "[", RowBox[{"1", ",", "0", ",", "0"}], "]"}], FontColor->RGBColor[1, 0, 0]]}], ",", RowBox[{"DisplayFunction", " ", "\[Rule]", " ", "Identity"}], ",", "options"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Show", "[", RowBox[{ StyleBox["p1", FontColor->RGBColor[0, 0, 1]], ",", StyleBox["p2", FontColor->RGBColor[1, 0, 0]], ",", RowBox[{"DisplayFunction", " ", "\[Rule]", " ", "$DisplayFunction"}]}], "]"}]}]}], "]"}]}]], "Input", CellLabel->"In[31]:="], Cell[BoxData[ RowBox[{ RowBox[{"ListPlotComplex", "[", RowBox[{"xf", ",", " ", RowBox[{"PlotRange", "\[Rule]", " ", "All"}], ",", " ", RowBox[{"PlotStyle", " ", "\[Rule]", " ", RowBox[{"PointSize", "[", "0.02", "]"}]}]}], "]"}], ";"}]], "Input", CellLabel->"In[32]:="], Cell[BoxData[ RowBox[{ RowBox[{"xt", " ", "=", " ", RowBox[{"idft", "[", "xf", "]"}]}], ";"}]], "Input", CellLabel->"In[33]:="], Cell[BoxData[ RowBox[{"ListPlot", "[", RowBox[{"Chop", "[", "xt", "]"}], "]"}]], "Input", CellLabel->"In[36]:="], Cell[BoxData[ RowBox[{ RowBox[{"Print", "[", RowBox[{"\<\"Max transform error = \"\>", ",", RowBox[{"Max", "[", RowBox[{"Abs", "[", RowBox[{"xt", "-", "x"}], "]"}], "]"}]}], "]"}], ";", RowBox[{"ListPlot", "[", RowBox[{ RowBox[{"Abs", "[", RowBox[{"xt", "-", "x"}], "]"}], ",", RowBox[{"PlotRange", "\[Rule]", "All"}], ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"PointSize", "[", "0.02`", "]"}]}]}], "]"}]}]], "Input", CellLabel->"In[34]:="], Cell[CellGroupData[{ Cell["Example (\"in-between\" mode)", "Subsection"], Cell[BoxData[ RowBox[{"nSize", " ", "=", " ", RowBox[{"2", "^", "6"}]}]], "Input", CellLabel->"In[37]:="], Cell[BoxData[{ RowBox[{ RowBox[{"x", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"N", "[", RowBox[{"Sin", "[", FractionBox[ RowBox[{"2", " ", "\[Pi]", " ", RowBox[{"(", RowBox[{"i", "-", "1"}], ")"}], " ", "3.4`"}], "nSize"], "]"}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", "nSize"}], "}"}]}], "]"}]}], ";"}], "\n", RowBox[{"ListPlot", "[", RowBox[{"x", ",", RowBox[{"PlotLabel", "\[Rule]", "\<\"3.4 Periods Long\"\>"}]}], "]"}]}], "Input", CellLabel->"In[38]:="], Cell[BoxData[{ RowBox[{ RowBox[{"xf", "=", RowBox[{"dft", "[", "x", "]"}]}], ";"}], "\n", RowBox[{"ListPlot", "[", RowBox[{ RowBox[{"Abs", "[", "xf", "]"}], ",", RowBox[{"PlotRange", "\[Rule]", "All"}], ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"PointSize", "[", "0.02`", "]"}]}], ",", RowBox[{"PlotLabel", "\[Rule]", "\<\"3.4 Periods Long\"\>"}]}], "]"}]}], "Input", CellLabel->"In[40]:="], Cell[TextData[{ "When the sampled signal, ", StyleBox["x", FontSlant->"Italic"], "[", StyleBox["n", FontSlant->"Italic"], "], have oscillations that do not \"fit\" precisely into the sample period, \ then the Fourier spectrum is not simply related to the primary oscillations." }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Example (Shift)", "Subsection"], Cell[BoxData[{ RowBox[{ RowBox[{"nSize", "=", SuperscriptBox["2", "6"]}], ";", RowBox[{"x1", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"N", "[", RowBox[{"Sin", "[", FractionBox[ RowBox[{"2", " ", "\[Pi]", " ", RowBox[{"(", RowBox[{"i", "-", "1"}], ")"}], " ", "3"}], "nSize"], "]"}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", "nSize"}], "}"}]}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"x2", "=", RowBox[{"RotateRight", "[", RowBox[{"x1", ",", "2"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"p1", "=", RowBox[{"ListPlot", "[", RowBox[{"x1", ",", RowBox[{"DisplayFunction", "\[Rule]", "Identity"}]}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"p2", "=", RowBox[{"ListPlot", "[", RowBox[{"x2", ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"RGBColor", "[", RowBox[{"1", ",", "0", ",", "0"}], "]"}]}], ",", RowBox[{"DisplayFunction", "\[Rule]", "Identity"}]}], "]"}]}], ";"}], "\n", RowBox[{"Show", "[", RowBox[{"p1", ",", "p2", ",", RowBox[{"DisplayFunction", "\[Rule]", "$DisplayFunction"}]}], "]"}]}], "Input", CellLabel->"In[42]:="], Cell[BoxData[{ RowBox[{ RowBox[{"x1f", " ", "=", " ", RowBox[{"dft", "[", "x1", "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"x2f", " ", "=", " ", RowBox[{"dft", "[", "x2", "]"}]}], ";"}]}], "Input", CellLabel->"In[47]:="], Cell[BoxData[{ RowBox[{ RowBox[{"ListPlotComplex", "[", RowBox[{"x1f", ",", " ", RowBox[{"PlotRange", " ", "\[Rule]", " ", "All"}], ",", " ", RowBox[{"PlotLabel", " ", "\[Rule]", " ", "\"\\""}]}], "]"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"ListPlotComplex", "[", RowBox[{"x2f", ",", " ", RowBox[{"PlotRange", " ", "\[Rule]", " ", "All"}], ",", " ", RowBox[{"PlotLabel", " ", "\[Rule]", " ", "\"\\""}]}], "]"}], ";"}]}], "Input", CellLabel->"In[49]:="], Cell[BoxData[ RowBox[{"x1f", " ", "//", " ", "Chop"}]], "Input", CellLabel->"In[51]:="], Cell[BoxData[ RowBox[{"x2f", " ", "//", " ", "Chop"}]], "Input", CellLabel->"In[52]:="], Cell["\<\ A shift in the time sequence results in a phase-shift in the frequency \ representation.\ \>", "Text"], Cell[BoxData[ RowBox[{ RowBox[{"dx", "=", RowBox[{"idft", "[", RowBox[{"x1f", "-", "x2f"}], "]"}]}], ";", RowBox[{"ListPlot", "[", RowBox[{ RowBox[{"Re", "[", "dx", "]"}], ",", RowBox[{"PlotLabel", "\[Rule]", "\<\"Shifted Difference\"\>"}]}], "]"}]}]], "Input", CellLabel->"In[53]:="], Cell["\<\ The difference of a shifted signal results in a derivative. (Of course!)\ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Example (1k Samples)", "Subsection"], Cell[BoxData[{ RowBox[{ RowBox[{"nSize", "=", SuperscriptBox["2", "10"]}], ";"}], "\n", RowBox[{ RowBox[{"s1", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"Sin", "[", FractionBox[ RowBox[{ RowBox[{"(", RowBox[{"i", "-", "1"}], ")"}], " ", "2", " ", "\[Pi]", " ", "6.3`"}], "nSize"], "]"}], "+", RowBox[{"Sin", "[", FractionBox[ RowBox[{ RowBox[{"(", RowBox[{"i", "-", "1"}], ")"}], " ", "2", " ", "\[Pi]", " ", "15.7`"}], "nSize"], "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", "nSize"}], "}"}]}], "]"}]}], ";"}], "\n", RowBox[{"ListPlot", "[", "s1", "]"}]}], "Input", CellLabel->"In[54]:="], Cell[BoxData[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"sf1", " ", "=", " ", RowBox[{"dft", "[", "s1", "]"}]}], ";"}], ")"}], " ", "//", " ", "Timing"}]], "Input", CellLabel->"In[57]:="], Cell[BoxData[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"sf2", " ", "=", " ", RowBox[{"Fourier", "[", "s1", "]"}]}], ";"}], ")"}], " ", "//", " ", "Timing"}]], "Input", CellLabel->"In[58]:="], Cell[BoxData[ RowBox[{"Max", "[", RowBox[{"Abs", "[", RowBox[{"sf1", " ", "-", " ", "sf2"}], "]"}], "]"}]], "Input", CellLabel->"In[59]:="], Cell[TextData[{ "Our \"home-made\" DFT is numerically equivalent to ", StyleBox["Mathematica", FontSlant->"Italic"], "'s built-in ", StyleBox["Fourier[\[Ellipsis]]", FontWeight->"Bold"], ". However, our \"home-made\" DFT is ", StyleBox["very, very slow", FontSlant->"Italic"], ". This is because ", StyleBox["Fourier", FontWeight->"Bold"], " uses the \"fast-Fourier transform\" algorithm (FFT) discussed next." }], "Text"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Recursive FFT (J. W. Cooley and J. W. Tukey, 1965) ", "Section"], Cell["\<\ The following expressions illustrate the recursive algorithm of the FFT.\ \>", "Text"], Cell[BoxData[{ RowBox[{ RowBox[{"Clear", "[", "\"\\"", "]"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"nSize", " ", "=", " ", RowBox[{"2", "^", "3"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"sData", " ", "=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{"s", "[", "i", "]"}], ",", " ", RowBox[{"{", RowBox[{"i", ",", " ", "1", ",", " ", "nSize"}], "}"}]}], "]"}]}]}], "Input", CellLabel->"In[60]:="], Cell[BoxData[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"Sqrt", "[", "2", "]"}], " ", RowBox[{"dft", "[", "sData", "]"}]}], " ", "//", " ", "Simplify"}], ")"}], "//", " ", "TableForm"}]], "Input", CellLabel->"In[63]:="], Cell[BoxData[ RowBox[{"Transpose", "[", RowBox[{"Partition", "[", RowBox[{"sData", ",", " ", "2"}], "]"}], "]"}]], "Input", CellLabel->"In[64]:="], Cell[BoxData[ RowBox[{ RowBox[{"{", RowBox[{"fts1", ",", " ", "fts2"}], "}"}], " ", "=", " ", RowBox[{ RowBox[{"(", RowBox[{"dft", " ", "/@", " ", RowBox[{"Transpose", "[", RowBox[{"Partition", "[", RowBox[{"sData", ",", " ", "2"}], "]"}], "]"}]}], ")"}], " ", "//", " ", "Simplify"}]}]], "Input", CellLabel->"In[65]:="], Cell[BoxData[ RowBox[{ RowBox[{"(", RowBox[{"sfExample1", " ", "=", " ", RowBox[{ RowBox[{"(", " ", RowBox[{ RowBox[{"(", RowBox[{"fts1", " ", "~", " ", "Join", " ", "~", " ", "fts1"}], ")"}], " ", "+", " ", RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"Exp", "[", RowBox[{"2", " ", "\[Pi]", " ", RowBox[{"I", "/", "nSize"}]}], "]"}], "^", RowBox[{"(", RowBox[{"m", "-", "1"}], ")"}]}], ",", " ", RowBox[{"{", RowBox[{"m", " ", ",", "1", ",", " ", "nSize"}], "}"}]}], "]"}], " ", RowBox[{"(", RowBox[{"fts2", " ", "~", " ", "Join", " ", "~", " ", "fts2"}], ")"}]}]}], " ", ")"}], " ", "//", " ", "Simplify"}]}], ")"}], "//", "TableForm"}]], "Input", CellLabel->"In[66]:="], Cell[BoxData[ RowBox[{ RowBox[{"(", RowBox[{"sfExample2", " ", "=", " ", RowBox[{ RowBox[{ RowBox[{"dft", "[", "sData", "]"}], " ", RowBox[{"Sqrt", "[", "2", "]"}]}], "//", " ", "Simplify"}]}], ")"}], " ", "//", " ", "TableForm"}]], "Input", CellLabel->"In[67]:="], Cell[BoxData[ RowBox[{ RowBox[{"sfExample1", " ", "-", " ", "sfExample2"}], "//", " ", "Simplify"}]], "Input", CellLabel->"In[68]:="], Cell[CellGroupData[{ Cell["Recursive FFT", "Subsection"], Cell[BoxData[ RowBox[{ RowBox[{ StyleBox["fftRecursive", FontColor->RGBColor[0, 0, 1]], "[", "x_List", "]"}], " ", ":=", " ", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "n", ",", "xeven", ",", " ", "xodd", ",", " ", "g", ",", " ", "w"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"n", " ", "=", " ", RowBox[{"Length", "[", "x", "]"}]}], ")"}], " ", "\[Equal]", " ", "1"}], ",", " ", RowBox[{"Return", "[", "x", "]"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"xeven", ",", " ", "xodd"}], "}"}], " ", "=", " ", RowBox[{ StyleBox["fftRecursive", FontColor->RGBColor[0, 0, 1]], " ", "/@", " ", RowBox[{"Transpose", "[", RowBox[{"Partition", "[", RowBox[{"x", ",", "2"}], "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"g", " ", "=", " ", RowBox[{"Exp", "[", RowBox[{"2", " ", "\[Pi]", " ", RowBox[{"I", "/", "n"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"w", " ", "=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{"g", "^", RowBox[{"(", RowBox[{"m", "-", "1"}], ")"}]}], ",", " ", RowBox[{"{", RowBox[{"m", ",", " ", "1", ",", " ", "n"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"(", RowBox[{"xeven", " ", "~", " ", "Join", "~", " ", "xeven"}], ")"}], " ", "+", " ", RowBox[{"w", " ", RowBox[{"(", RowBox[{"xodd", " ", "~", " ", "Join", " ", "~", " ", "xodd"}], ")"}]}]}]}]}], "]"}]}]], "Input", CellLabel->"In[69]:="], Cell[BoxData[ RowBox[{ RowBox[{"fft", "[", "x_List", "]"}], " ", ":=", " ", StyleBox[ RowBox[{"(*", " ", RowBox[{"defaullt", " ", "normalization"}], " ", "*)"}], FontColor->RGBColor[0, 1, 0]], RowBox[{ RowBox[{ StyleBox["fftRecursive", FontColor->RGBColor[0, 0, 1]], "[", "x", "]"}], "/", RowBox[{"Sqrt", "[", RowBox[{"Length", "[", "x", "]"}], "]"}]}]}]], "Input", CellLabel->"In[70]:="], Cell[BoxData[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"sf3", " ", "=", " ", RowBox[{"fft", "[", "s1", "]"}]}], ";"}], " ", ")"}], " ", "//", " ", "Timing"}]], "Input", CellLabel->"In[71]:="], Cell[BoxData[ RowBox[{ RowBox[{"ListPlotComplex", "[", RowBox[{"sf3", ",", " ", RowBox[{"PlotRange", "\[Rule]", " ", "All"}]}], "]"}], ";"}]], "Input", CellLabel->"In[72]:="], Cell[BoxData[ RowBox[{"Max", "[", RowBox[{"Abs", "[", RowBox[{"sf3", " ", "-", " ", "sf2"}], "]"}], "]"}]], "Input", CellLabel->"In[73]:="] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["A Larger Example", "Section"], Cell[BoxData[ RowBox[{"nSize", " ", "=", " ", RowBox[{ RowBox[{"2", "^", "18"}], " ", RowBox[{"(*", " ", RowBox[{"256", "k", " ", "Samples"}], " ", "*)"}]}]}]], "Input", CellLabel->"In[74]:="], Cell[BoxData[ RowBox[{"rate", " ", "=", " ", "41000.0", " ", RowBox[{"(*", " ", RowBox[{"samples", " ", "per", " ", "second"}], " ", "*)"}]}]], "Input", CellLabel->"In[75]:="], Cell[BoxData[ RowBox[{ RowBox[{"nSize", "/", "rate"}], " ", RowBox[{"(*", " ", RowBox[{ RowBox[{"total", " ", "time"}], ",", " ", "Second"}], " ", "*)"}]}]], "Input", CellLabel->"In[76]:="], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{ RowBox[{"frequency", " ", "=", " ", "2000.0"}], ";"}], " ", RowBox[{"(*", " ", RowBox[{ RowBox[{"cycles", " ", "per", " ", "second"}], ",", " ", "Hz"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"rate", "/", "frequency"}]}], " ", RowBox[{"(*", " ", RowBox[{"samples", " ", "per", " ", "cycle"}], " ", "*)"}]}]], "Input", CellLabel->"In[77]:="], Cell[BoxData[ RowBox[{ RowBox[{"g", "[", "i_", "]"}], " ", ":=", " ", RowBox[{ RowBox[{"Sin", "[", RowBox[{"2", "\[Pi]", " ", RowBox[{"(", RowBox[{"i", " ", "-", "1"}], ")"}], " ", RowBox[{"(", RowBox[{"frequency", "/", "rate"}], ")"}]}], "]"}], " ", RowBox[{ RowBox[{"Sin", "[", RowBox[{"2", " ", "\[Pi]", " ", RowBox[{"(", RowBox[{"i", " ", "-", " ", "1"}], ")"}], " ", RowBox[{"2", "/", "nSize"}]}], "]"}], "^", "2"}]}]}]], "Input", CellLabel->"In[79]:="], Cell[BoxData[{ RowBox[{ RowBox[{"x", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"N", "[", RowBox[{"g", "[", "i", "]"}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "1", ",", "nSize"}], "}"}]}], "]"}]}], ";"}], "\n", RowBox[{"ListPlot", "[", RowBox[{"Take", "[", RowBox[{"x", ",", RowBox[{"{", RowBox[{"1", ",", RowBox[{"Length", "[", "x", "]"}], ",", "100"}], "}"}]}], "]"}], "]"}]}], "Input", CellLabel->"In[80]:="], Cell[BoxData[ RowBox[{ RowBox[{"ListPlay", "[", RowBox[{"x", ",", " ", RowBox[{"SampleRate", " ", "\[Rule]", " ", "rate"}]}], "]"}], ";"}]], "Input", CellLabel->"In[82]:="], Cell[BoxData[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"xf", " ", "=", " ", RowBox[{"Fourier", "[", "x", "]"}]}], ";"}], " ", ")"}], "//", "Timing"}]], "Input", CellLabel->"In[83]:="], Cell[BoxData[ RowBox[{"ListPlot", "[", RowBox[{ RowBox[{"Log", "[", RowBox[{"Abs", "[", RowBox[{"Take", "[", RowBox[{"xf", ",", RowBox[{"{", RowBox[{"1", ",", RowBox[{"Length", "[", "xf", "]"}], ",", "100"}], "}"}]}], "]"}], "]"}], "]"}], ",", RowBox[{"PlotRange", "\[Rule]", "All"}]}], "]"}]], "Input", CellLabel->"In[84]:="], Cell[BoxData[ RowBox[{ RowBox[{"frequencies", " ", "=", " ", RowBox[{ RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{"i", " ", RowBox[{"rate", "/", "nSize"}]}], ",", " ", RowBox[{"{", RowBox[{"i", ",", " ", "0", ",", " ", RowBox[{"nSize", "/", "2"}]}], " ", "}"}]}], "]"}], " ", "~", "Join", "~", " ", RowBox[{"Reverse", "[", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"-", "i"}], " ", RowBox[{"rate", "/", "nSize"}]}], ",", " ", RowBox[{"{", RowBox[{"i", ",", " ", "1", ",", " ", RowBox[{ RowBox[{"nSize", "/", "2"}], "-", "1"}]}], "}"}]}], "]"}], "]"}]}], " ", "//", " ", "N"}]}], ";"}]], "Input", CellLabel->"In[85]:="], Cell[BoxData[ RowBox[{ RowBox[{"xff", " ", "=", " ", RowBox[{"Transpose", "[", RowBox[{"{", RowBox[{"frequencies", ",", " ", "xf"}], "}"}], "]"}]}], ";"}]], "Input",\ CellLabel->"In[86]:="], Cell[BoxData[ RowBox[{"xff", " ", "//", " ", "Shallow"}]], "Input", CellLabel->"In[87]:="], Cell[BoxData[ RowBox[{"ListPlot", "[", RowBox[{ RowBox[{"Apply", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"#1", ",", RowBox[{"Log", "[", RowBox[{"Abs", "[", "#2", "]"}], "]"}]}], "}"}], "&"}], ",", RowBox[{"Take", "[", RowBox[{"xff", ",", RowBox[{"{", RowBox[{"1", ",", RowBox[{"Length", "[", "xff", "]"}], ",", "100"}], "}"}]}], "]"}], ",", RowBox[{"{", "1", "}"}]}], "]"}], ",", RowBox[{"PlotRange", "\[Rule]", "All"}], ",", RowBox[{"PlotLabel", "\[Rule]", "\"\\""}]}], "]"}]], "Input", CellLabel->"In[88]:="] }, Closed]], Cell[CellGroupData[{ Cell["Summary", "Section"], Cell["\<\ The discrete Fourier transform (DFT) is fundamental to modern digital signal \ processing. The transform takes as an input a sequence of equally-spaced \ samples of a signal and produces on output the complex frequency spectrum of \ the signal.\ \>", "Text"], Cell[TextData[{ "The DFT of a ", StyleBox["N", FontSlant->"Italic"], " samples requires ", StyleBox["N", FontSlant->"Italic"], " dot-products of the sample-list with a Fourier modal vector. The number of \ computations grow as ", Cell[BoxData[ FormBox[ SuperscriptBox["N", "2"], TraditionalForm]]], "!" }], "Text"], Cell[TextData[{ "With the \"discovery\" of the recursive FFT algorithm, the DFT can be \ performed with many fewer operations. The number of operations scales like ", StyleBox["N", FontSlant->"Italic"], " Log[", StyleBox["N", FontSlant->"Italic"], "]. The FFT of one million samples can be performed in about 2 seconds. Our \ direct algorithm would take about 2 days!" }], "Text"], Cell["\<\ The FFT (and similar transforms) have enabled the recent revolution in \ digital communications, media, and storage.\ \>", "Text"] }, Closed]] }, Open ]] }, WindowSize->{746, 935}, WindowMargins->{{Automatic, 559}, {Automatic, 24}}, PrintingCopies->1, PrintingPageRange->{1, Automatic}, FrontEndVersion->"6.0 for Mac OS X x86 (32-bit) (May 21, 2008)", StyleDefinitions->"TutorialBook.nb" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[590, 23, 60, 0, 51, "Title"], Cell[653, 25, 61, 3, 41, "Subsubtitle"], Cell[CellGroupData[{ Cell[739, 32, 31, 0, 86, "Section"], Cell[773, 34, 731, 25, 68, "Text"], Cell[1507, 61, 355, 6, 68, "Text"], Cell[1865, 69, 345, 6, 68, "Text"], Cell[2213, 77, 256, 6, 48, "Text"], Cell[CellGroupData[{ Cell[2494, 87, 47, 0, 41, "Subsection"], Cell[2544, 89, 76926, 1264, 249, "Graphics", Evaluatable->False], Cell[79473, 1355, 879, 13, 148, "Text"], Cell[80355, 1370, 652, 10, 108, "Text"], Cell[81010, 1382, 821, 14, 128, "Text"], Cell[81834, 1398, 1238, 18, 208, "Text"], Cell[83075, 1418, 276, 5, 68, "Text"], Cell[83354, 1425, 891, 13, 168, "Text"], Cell[84248, 1440, 205, 7, 28, "Text"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[84502, 1453, 138, 5, 60, "Section"], Cell[84643, 1460, 146, 4, 26, "Input"], Cell[84792, 1466, 122, 3, 26, "Input"], Cell[84917, 1471, 122, 3, 26, "Input"], Cell[85042, 1476, 745, 22, 61, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[85824, 1503, 58, 0, 54, "Section"], Cell[85885, 1505, 191, 5, 23, "Text"], Cell[86079, 1512, 74, 2, 26, "Input"], Cell[86156, 1516, 81, 2, 26, "Input"], Cell[CellGroupData[{ Cell[86262, 1522, 42, 0, 34, "Subsection"], Cell[86307, 1524, 109, 3, 26, "Input"], Cell[86419, 1529, 477, 15, 70, "Input"], Cell[86899, 1546, 463, 14, 28, "Input"], Cell[87365, 1562, 78, 2, 24, "Input"], Cell[87446, 1566, 78, 2, 24, "Input"], Cell[87527, 1570, 79, 2, 24, "Input"], Cell[87609, 1574, 201, 6, 26, "Input"], Cell[87813, 1582, 253, 8, 26, "Input"], Cell[88069, 1592, 253, 8, 26, "Input"], Cell[88325, 1602, 429, 13, 26, "Input"], Cell[88757, 1617, 430, 13, 26, "Input"], Cell[89190, 1632, 481, 15, 26, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[89708, 1652, 42, 0, 34, "Subsection"], Cell[89753, 1654, 1949, 54, 206, "Input"], Cell[91705, 1710, 820, 24, 79, "Input"], Cell[92528, 1736, 820, 24, 59, "Input"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[93397, 1766, 33, 0, 54, "Section"], Cell[93433, 1768, 1310, 36, 98, "Input"], Cell[94746, 1806, 1338, 37, 98, "Input"], Cell[96087, 1845, 133, 4, 24, "Input"], Cell[96223, 1851, 88, 2, 26, "Input"], Cell[96314, 1855, 1617, 43, 118, "Input"], Cell[97934, 1900, 292, 7, 26, "Input"], Cell[98229, 1909, 135, 4, 26, "Input"], Cell[98367, 1915, 117, 3, 24, "Input"], Cell[98487, 1920, 502, 14, 42, "Input"], Cell[CellGroupData[{ Cell[99014, 1938, 51, 0, 34, "Subsection"], Cell[99068, 1940, 110, 3, 26, "Input"], Cell[99181, 1945, 569, 18, 59, "Input"], Cell[99753, 1965, 429, 12, 59, "Input"], Cell[100185, 1979, 298, 9, 41, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[100520, 1993, 37, 0, 34, "Subsection"], Cell[100560, 1995, 1218, 39, 110, "Input"], Cell[101781, 2036, 249, 7, 42, "Input"], Cell[102033, 2045, 524, 13, 45, "Input"], Cell[102560, 2060, 89, 2, 26, "Input"], Cell[102652, 2064, 89, 2, 26, "Input"], Cell[102744, 2068, 112, 3, 23, "Text"], Cell[102859, 2073, 317, 10, 24, "Input"], Cell[103179, 2085, 96, 2, 23, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[103312, 2092, 42, 0, 34, "Subsection"], Cell[103357, 2094, 755, 24, 78, "Input"], Cell[104115, 2120, 205, 7, 26, "Input"], Cell[104323, 2129, 209, 7, 26, "Input"], Cell[104535, 2138, 148, 4, 24, "Input"], Cell[104686, 2144, 439, 14, 42, "Text"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[105174, 2164, 71, 0, 54, "Section"], Cell[105248, 2166, 96, 2, 23, "Text"], Cell[105347, 2170, 450, 13, 61, "Input"], Cell[105800, 2185, 252, 8, 26, "Input"], Cell[106055, 2195, 155, 4, 26, "Input"], Cell[106213, 2201, 364, 11, 26, "Input"], Cell[106580, 2214, 896, 26, 79, "Input"], Cell[107479, 2242, 299, 9, 26, "Input"], Cell[107781, 2253, 141, 4, 26, "Input"], Cell[CellGroupData[{ Cell[107947, 2261, 35, 0, 34, "Subsection"], Cell[107985, 2263, 1804, 52, 115, "Input"], Cell[109792, 2317, 430, 13, 46, "Input"], Cell[110225, 2332, 210, 7, 26, "Input"], Cell[110438, 2341, 187, 5, 26, "Input"], Cell[110628, 2348, 148, 4, 24, "Input"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[110825, 2358, 35, 0, 54, "Section"], Cell[110863, 2360, 209, 6, 26, "Input"], Cell[111075, 2368, 184, 4, 24, "Input"], Cell[111262, 2374, 208, 7, 26, "Input"], Cell[111473, 2383, 427, 12, 59, "Input"], Cell[111903, 2397, 535, 16, 28, "Input"], Cell[112441, 2415, 484, 16, 45, "Input"], Cell[112928, 2433, 188, 6, 26, "Input"], Cell[113119, 2441, 202, 7, 26, "Input"], Cell[113324, 2450, 389, 12, 44, "Input"], Cell[113716, 2464, 795, 24, 63, "Input"], Cell[114514, 2490, 209, 7, 26, "Input"], Cell[114726, 2499, 92, 2, 26, "Input"], Cell[114821, 2503, 652, 20, 61, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[115510, 2528, 26, 0, 54, "Section"], Cell[115539, 2530, 268, 5, 48, "Text"], Cell[115810, 2537, 330, 13, 48, "Text"], Cell[116143, 2552, 389, 10, 68, "Text"], Cell[116535, 2564, 140, 3, 28, "Text"] }, Closed]] }, Open ]] } ] *) (* End of internal cache information *)