Fast Fourier transform java applet
by Stjepan Poljak
2010.

Basic information: This program has been made as a practical part of my master thesis on fast Fourier transform and its applications. It can perform DFT and inverse DFT on function samples which are obtained by setting the interval [x1,xn] on which the sampling will be done; n is the number of samples (a power of two is recommended, eg. 4, 8, 16, et cetera). Those values can be accessed (read-only) by reserved variables Rx1, Rxn and Rn. The program supports the ability to load and save the current status, as well as the ability to export files into Wolfram's Mathematica notebook (.nb) format.

Supported functions:
  • trigonometric (sin, cos, tan)
  • cyclometric (arcsin, arccos, arctan)
  • hyperbolic (sinh, cosh, tanh)
  • other (sqrt, ln, abs, arg, Re, Im)
In-built constants:
  • pi
  • e (Euler's number)
  • i (imaginary unit)
Syntax example 1:

a=1/2
y=a*x^2

Syntax example 2:

b=2
y=b x^2+3x

Syntax example 3:

if((x>pi/2)&&(x<3pi/2))
y=sin(x)+i cos(x)
else
y=i abs(sin(4x))^2
endif
Note that trigonometric and logarithmic functions can deal with complex numbers. One can calculate an integer power of a number correctly, but for real powers it works on a rather small interval (eg. e^x works correctly only for x in <-2,7>). The program also supports if branching (if-else-endif) and logic operators (&&, ||). For non-defind values (eg. division by zero) it takes the default value of 0.