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.
10 thoughts on “Fourier Series and SCILAB”
Hi! thank you for the tutorial. I was just wondering if you need to change the function where would you have to make the change. For example if you have a square plot.
Thanks for your comment.
I have already shown that in a post: https://www.bragitoff.com/2016/03/defining-a-periodic-function-in-scilab/
Hope it helps.
Hi,Thank you for the tutorial, I was wondering how to take fourier series of some other function for that matter of fact if i wanted to plot FS of triangular wave where and how would I define f(x) in this case.
To find out the FS of any periodic function, you first need to understand how to define a periodic function. For that please check out this post: https://www.bragitoff.com/2016/03/defining-a-periodic-function-in-scilab/
Then you can also read another post on FS:
I have also created a toolbox for FS calculatoon and plotting. Links are in the post.
in exam one question came find Fourier series coefficient of f(x)=3x^2 in(-pi,pi)for n=5 .Plase reply how to solve this kind of problem
Manas i need your help regarding a scilab prog.To solve the S -wave schrodinger equation for the ground state and first excited state of hydrogen atom :(m is the reduced mass of electron.Obtain the energy eigen value and plot the corresponding value wave function. e=3.795 (eVA)1/2, h=1973(eVA) and m=0.511*106 eV/c2
I want to just ask you that the error is displaying while executing this prog in my PC at line 20 i.e.
x=-5*l:0.1:5*l . Its showing that there is undefined variable ‘l’.
Can you just help me out.
I think you’re talking about the code posted here: https://www.bragitoff.com/2016/03/calculating-fourier-series-and-plotting-it-scilab/
That is the letter ‘L’ in lowercase, in case you were confusing it with capital ‘i’.
In case you copied it correctly, then I don’t understand why the error is there because ‘l’ is defined in the function definition:
Madam i have a trignometric fourier series with all coefficients how can i plot it . do u have code forthat ?
Is this code for piecewise function too? i couldn’t use, so can you make the video for piecewise function too?