FTutor1D is a software that provides educational tool for one dimensional discrete Fourier transform. The aim of the application is to provide a deeper insight of the transform. By investigating simple one dimensional signals, one can learn about the effect of the transform, the impact of every coefficient, see the shape of each Fourier basis function or try to apply one of the provided filters.

The important features of the application are the following:

User interface of the application is very simple and hopefully intuitive. The main window of the application is splitted into quarters, each quarter contains one graph. At the bottom, the original signal and modified signal are displayed, at the top, one can investigate the plots of magnitude and phase signals in the frequency spectrum and a graph of the basis function corresponding to the selected frequency.

fig 1

Quick start

When the application starts, all the graphs are blank. The first task is therefore to load or to create a signal. All these options are included in the File menu. You can select the option New to create a new signal, Open predefined to choose one of the prepared signals, or Open to load a custom text file with coordinates of the points.

When you have a signal, hovering the mouse over the magnitude or phase plot causes the selected frequency to redraw. Uncheck the Normalized checkbox to see the basis functions in real scale and shifted. Click on the point and drag the mouse button to modify one of magnitude of phase points and see how it affects the resulting signal in the graph in the lower right corner.

Although it's not evident by looking at the user interface, all the graphs (excluding the selected frequency) are interactive. Roll the mouse wheel to zoom in or out, drag the graph to the side by pressing the mouse button but not selecting a point and dragging the mouse. You can also select one of the axis and roll the wheel, so that you will zoom only in one direction.

Fig. 2

Important notes regarding running the application and its extensibility

The executable and resources

Because of making the application extensible and multiplatform, we had to rely on loading several resources from the external files. The path to these files must be maintained (*advanced users can change it in the config.ini file).

It is important to say that the executable will not load any language versions nor the database of predefined functions and application logo, if the resource files are not present or misconfigured. The recommended directory tree is the following (and if the config is not present, e.g. on the first run of the application, this is where it will look for the files):

Fig. 3


The localization is a simple XML file. If you wish to write your own, the best approach is to copy one of the existing localizations (e.g. English) and translate it to your language. You shall not change the names of the XML elements or their attributes or change the structure of the XML file. You should also not omit any parts of the original file.

Signal file format

FTutor1D uses a unified file format with gnuplot. Therefore, your signal file shall contain one x and one y coordinate of one point on each line, divided by some blank character. You shall not provide more coordinates when willing to use the signal file with FTutor1D.

Fig. 4


Windows binary

You can download the windows binary here. There are no dependencies on the installed software.

Source codes

The application source codes are available here. The building process is governed by cmake. It is also necessary to have installed required QT libraries.

Git repository

If you're willing to experience the latest features (and you're willing to excuse some minor stability issues), take a loot at the development version on github.

User manual

Before you start using FTutor1D you should first read this user manual.

Technical description

If you plan to help with the development of FTutor1D, you should become familar with its design by reading this technical description.