Coding Challenge
The Coding Train The Coding Train
1.68M subscribers
314,543 views
0

 Published On Jan 24, 2019

In this coding challenge, I implement the Discrete Fourier Transform algorithm in JavaScript and render a drawing using epicycles derived from the transform. Code: https://thecodingtrain.com/challenges...

p5.js Web Editor Sketches:
šŸ•¹ļø Fourier Transform: https://editor.p5js.org/codingtrain/s...
šŸ•¹ļø Fourier Transform - user-drawn path: https://editor.p5js.org/codingtrain/s...
šŸ•¹ļø Fourier Transform - complex numbers: https://editor.p5js.org/codingtrain/s...
šŸ•¹ļø Fourier Transform - user-drawn path with complex numbers: https://editor.p5js.org/codingtrain/s...

Other Parts of this Challenge:
šŸ“ŗ Part 2: Ā Ā Ā ā€¢Ā CodingĀ ChallengeĀ #130:Ā FourierĀ Transf...Ā Ā 
šŸ“ŗ Part 3: Ā Ā Ā ā€¢Ā CodingĀ ChallengeĀ #130:Ā FourierĀ Transf...Ā Ā 

šŸŽ„ Previous video: Ā Ā Ā ā€¢Ā CodingĀ ChallengeĀ #129:Ā KochĀ FractalĀ S...Ā Ā 
šŸŽ„ Next video: Ā Ā Ā ā€¢Ā CodingĀ ChallengeĀ #131:Ā BouncingĀ DVDĀ LogoĀ Ā 
šŸŽ„ All videos: Ā Ā Ā ā€¢Ā CodingĀ ChallengesĀ Ā 

References:
šŸš‚ Coding Train Logo: Ā Ā /Ā 1079437780466520065Ā Ā 
šŸ’¾ p5.FFT: https://p5js.org/reference/#/p5.FFT
šŸ’¾ FFT on Algorithm Archive: https://www.algorithm-archive.org/con...
šŸ—„ Discrete Fourier transform on Wikipedia: https://en.wikipedia.org/wiki/Discret...
šŸ—„ Complex Number on Wikipedia: https://en.wikipedia.org/wiki/Complex...

Videos:
šŸŽ„ But what is the Fourier Transform? A visual introduction: Ā Ā Ā ā€¢Ā ButĀ whatĀ isĀ theĀ FourierĀ Transform?Ā Ā A...Ā Ā 
šŸŽ„ Fourier Analysis For The Rest Of Us: Ā Ā Ā ā€¢Ā FourierĀ AnalysisĀ ForĀ TheĀ RestĀ OfĀ UsĀ Ā 
šŸŽ„ Epicycles, complex Fourier series and Homer Simpson's orbit: Ā Ā Ā ā€¢Ā Epicycles,Ā complexĀ FourierĀ seriesĀ and...Ā Ā 
šŸ”“ Code Train Live 165: Ā Ā Ā ā€¢Ā CodingĀ TrainĀ LiveĀ 165:Ā DrawingĀ withĀ F...Ā Ā 

Related Coding Challenges:
šŸš‚ #125 Fourier Series: Ā Ā Ā ā€¢Ā CodingĀ ChallengeĀ 125:Ā FourierĀ SeriesĀ Ā 

Timestamps:
0:00 Introducing today's topic: a Fourier transform drawing machine
1:29 Fourier transform algorithm
3:08 Signal processing
5:49 Make a signal array
12:09 Euler's formula
15:34 Write the discrete Fourier transform function
21:50 What do we need for a circular epicycle?
22:47 Calculate the amplitude, frequency, and phase
26:30 Calculate amount of time to move per frame of animation
29:44 Draw an arbitrary path for both x and y
31:07 Write an epiCycles() function
34:30 Have epiCycles() return a vector with an x and y
38:59 Grab the path of the Coding Train logo
41:38 Render the epiCycles by order of amplitude
43:57 Conclusion and next steps

Editing by Mathieu Blanchette
Animations by Jason Heglund
Music from Epidemic Sound

šŸš‚ Website: http://thecodingtrain.com/
šŸ‘¾ Share Your Creation! https://thecodingtrain.com/guides/pas...
šŸš© Suggest Topics: https://github.com/CodingTrain/Sugges...
šŸ’” GitHub: https://github.com/CodingTrain
šŸ’¬ Discord: https://thecodingtrain.com/discord
šŸ’– Membership: http://youtube.com/thecodingtrain/join
šŸ›’ Store: https://standard.tv/codingtrain
šŸ–‹ļø Twitter: Ā Ā /Ā thecodingtrainĀ Ā 
šŸ“ø Instagram: Ā Ā /Ā the.coding.trainĀ Ā 

šŸŽ„ Coding Challenges: Ā Ā Ā ā€¢Ā CodingĀ ChallengesĀ Ā 
šŸŽ„ Intro to Programming: Ā Ā Ā ā€¢Ā StartĀ learningĀ here!Ā Ā 

šŸ”— p5.js: https://p5js.org
šŸ”— p5.js Web Editor: https://editor.p5js.org/
šŸ”— Processing: https://processing.org

šŸ“„ Code of Conduct: https://github.com/CodingTrain/Code-o...

This description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecod...

#fouriertransformsquarewave #discretefouriertransform #epicyclesdrawing #javascript #p5js

show more

Share/Embed