https://blog.revolutionanalytics.com/2014/01/the-fourier-transform-explained-in-one-sentence.html Revolutions Milestones in AI, Machine Learning, Data Science, and visualization with R and Python since 2008 << Forecasting By Combining Expert Opinion | Main | Predictive Models in R Clustered By Tag Similarity >> January 03, 2014 The Fourier Transform, explained in one sentence If, like me, you struggled to understand the Fourier Transformation when you first learned about it, this succinct one-sentence colour-coded explanation from Stuart Riffle probably comes several years too late: The fourier transform, explained in one color-coded sentence Stuart provides a more detailed explanation here. This is the formula for the Discrete Fourier Transform, which converts sampled signals (like a digital sound recording) into the frequency domain (what tones are represented in the sound, and at what energies?). It's the mathematical engine behind a lot of the technology you use today, including mp3 files, file compression, and even how your old AM radio stays in tune. The daunting formula involves imaginary numbers and complex summations, but Stuart's idea is simple. Imagine an enormous speaker, mounted on a pole, playing a repeating sound. The speaker is so large, you can see the cone move back and forth with the sound. Mark a point on the cone, and now rotate the pole. Trace the point from an above-ground view, if the resulting squiggly curve is off-center, then there is frequency corresponding the pole's rotational frequency is represented in the sound. This animated illustration (click to see it in action) illustrates the process: FFT animation The upper signal is make up of three frequencies ("notes"), but only the bottom-right squiggle is generated by a rotational frequency matching one of the component frequencies of the signal. By the way, no-one uses that formula to actually calculate the Discrete Fourier Transform -- use the Fast Fourier Transform instead, as implemented by the fft function in R. As the name suggests, it's much faster. AltDevBlog: Understanding the Fourier Transform (note: updated link 20 Oct 2015 with active mirror) Posted by David Smith at 13:30 in R, random | Permalink Comments Feed You can follow this conversation by subscribing to the comment feed for this post. Very interesting article, thank you. Please take a moment to rephrase the following key statement, if you would: "...then there is frequency corresponding the pole's rotational frequency is represented in the sound." Posted by: C. Griffith | January 04, 2014 at 10:09 polar form e^ith is equal to the rectangular form costh+isinth and corresponds to the coordinates (costh,sinth) such that e^i0 = 1 = (1,0) e^it/4 = i = (0,1) e^it/2 = -1 = (-1,0) e^it3/4 = -i = (0,-1) e^it = 1 = (1,0) Posted by: MasterG | January 04, 2014 at 16:33 May I suggest a minor exception to your claim about FFT: most modern languages, R included, use some variation of the "pure" 2^N Cooley-Tukey FFT algorithm as appropriate to support factors of 3, 5, etc. in the length of the dataset, and even default to the "raw" DFT for other data lengths (unless specifically suppressed by the user). And, of course, the FFT is in fact that equation, just with gobs of like terms grouped together. :-) Posted by: Carl Witthoft | January 06, 2014 at 08:40 The comments to this entry are closed. Information * About this blog * Comments Policy * About Categories * About the Authors * Local R User Group Directory * Tips on Starting an R User Group Search Revolutions Blog * [ ] [ Search Blog ] Got comments or suggestions for the blog editor? Email David Smith. Follow revodavid on Twitter Follow David on Twitter: @revodavid Get this blog via email with Blogtrottr Categories * academia (41) * advanced tips (218) * AI (62) * airoundups (20) * announcements (201) * applications (288) * beginner tips (106) * big data (272) * courses (60) * current events (126) * data science (227) * developer tips (90) * events (280) * finance (126) * government (25) * graphics (378) * high-performance computing (115) * life sciences (35) * Microsoft (314) * mlops (4) * open source (78) * other industry (58) * packages (388) * popularity (54) * predictive analytics (163) * profiles (15) * python (69) * R (2442) * R is Hot (8) * random (464) * reviews (22) * Revolution (422) * Rmedia (136) * roundups (121) * sports (55) * statistics (297) * user groups (127) See More R links * R on Azure Developer's guide and documentation * Find R packages CRAN package directory at MRAN * Download Microsoft R Open Free, high-performance R * R Project site Information about the R project Recommended Sites * @RLangTip Daily tips on using R * FlowingData Modern data visualization * Probability and statistics blog Monte Carlo simulations in R * R Bloggers Daily news and tutorials about R, contributed by R bloggers worldwide. * R Project group on analyticbridge.com Community and discussion forum * Statistical Modeling, Causal Inference, and Social Science Andrew Gelman's statistics blog Archives * January 2023 * August 2022 * September 2021 * July 2021 * June 2021 * April 2021 * March 2021 * February 2021 * January 2021 * December 2020 Subscribe to this blog's feed