Python Forum
Plotting periodic function with fft - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: Homework (https://python-forum.io/forum-9.html)
+--- Thread: Plotting periodic function with fft (/thread-38667.html)



Plotting periodic function with fft - schniefen - Nov-10-2022

I want to plot a T-periodic function using a restricted set of Fourier coefficients. The function equals sin(x/tau) for 0<=x<(2*pi*tau) and 0 for (2*pi*tau)<=x<T (it is periodically repeated outside [0,T)). My attempt so far is that I have defined the function as follows:

def p(t,T,tau):
    n=np.floor(t/T)
    t=t-n*T
    if t<(2*np.pi*tau):
        p=np.sin(t/tau)
    else:
        p=0
    return p

tdata=np.linspace(-3*np.pi,3*np.pi,500)
pdata=[]

for i in tdata:
  pdata.append(p(i,3*np.pi,1))

plt.plot(tdata,np.array(pdata),label='$T=3\pi$, $\u03C4=1$')
plt.legend(loc='upper left')
The plotting is just to check that the function as defined is correct and it is (the specified values of the parameters make it easy to double check with a drawing by hand). Anyway, I would now like to plot the function I have plotted using a restricted set of Fourier coefficients. To obtain the coefficients, I would define coefficients=np.fft.fft(np.array(pdata)), but I am unsure how to use these further and plot the function. Appreciate any help.