Today I wrote a code that calculates the Fourier Coefficients.
In case you don’t know what a Fourier Series is, then, basically it is a way of approximating or representing a periodic function by a series of simple harmonic(sine and cosine) functions.
You can check out the wikipedia for more information on it: https://en.wikipedia.org/wiki/Fourier_series
I created a function
- l :half of the period, (periodicity of the function f which is to be approximated by Fourier Series)
n: no. of Fourier Coefficients you want to calculate
A0: The first fourier coefficient.
A: An array/matrix whose nth element is the nth coefficient An.
B: An array/matrix whose nth element is the nth coefficient Bn.
The code is:
//Fourier Series Coefficients //The following function returns the fourier coefficients,'a0', 'An' & 'Bn' // //User needs to provide the following arguments: // //l=periodicity of the function f which is to be approximated by Fourier Series //n=no. of Fourier Coefficients you want to calculate //f=function which is to be approximated by Fourier Series // //*Some necessary guidelines for defining f: //*The program integrates the function f from -l to l so make sure you define the function f correctly in the interval -l to l. // //for more information on Fourier Series visit: https://en.wikipedia.org/wiki/Fourier_series // //Written by: Manas Sharma([email protected]) //For more useful toolboxes and tutorials on Scilab visit: https://www.bragitoff.com/category/compu-geek/scilab/ funcprot(0); function [a0, A, B]=fourier(l, n, f) a0=1/l*intg(-l,l,f,1e-2); for i=1:n function b=f1(x, f) b=f(x)*cos(i*%pi*x/l); endfunction function c=f2(x, f) c=f(x)*sin(i*%pi*x/l); endfunction A(i)=1/l*intg(-l,l,f1,1e-2); B(i)=1/l*intg(-l,l,f2,1e-2); end endfunction
That’s it. I hope it was not too difficult to understand. If you have any questions I will be glad to answer them.
Ph.D. researcher at Friedrich-Schiller University Jena, Germany. I’m a physicist specializing in computational material science. I write efficient codes for simulating light-matter interactions at atomic scales. I like to develop Physics, DFT, and Machine Learning related apps and software from time to time. Can code in most of the popular languages. I like to share my knowledge in Physics and applications using this Blog and a YouTube channel.