convolution demo background

Convolution Theorem: Visualization and Analysis

Intro: Visualizing Convolution

Coded in modern Fortran, GNU C-Graph demonstrates the theory of convolution underlying engineering systems and signal analysis. "C-Graph" is an abbreviation for "Convolution Graph".


Unlike other signal processing packages, C-Graph dispenses with the learning curve for writing code. Instead, an interactive dialogue guides the user to effortlessly select values for keyboard input.

Designed to enhance the learning experience, C-Graph features an attractive array of scalable pulses, periodic, and aperiodic signal types of variable frequency fundamental to the study of systems theory. The package displays the spectra of any two waveforms chosen by the user, computes their linear convolution, then compares their circular convolution according to the convolution theorem. Each signal is modelled by a register of N discrete values (samples), and the discrete Fourier Transform (DFT) computed by the Fast Fourier Transform (FFT).

Students of signal and systems theory will find GNU C-Graph to be of value in visualizing convolution.


GNU C-Graph is derived from the BSc. Honours dissertation in Electrical Engineering "Interactive Computer Package Demonstrating: Sampling Convolution and the FFT", Adrienne Gaye Thompson, University of Aberdeen (1983).

Adrienne - who is sole author of the dissertation - reproduced its Fortran 77 program in modern Fortran. She donated C-Graph to GNU realising that the package's usefulness could be enjoyed globally.


Download C-Graph from the main GNU ftp server: via HTTP or, by FTP. C-Graph can also be found on the GNU mirrors. Please use a mirror when possible.

C-Graph also comes with Fedora, the first GNU/Linux distro to include our package. Sad to say, Fedora is not quite a free distro. Should they become free, we can all then wear a Fedora for freedom!


C-Graph is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.


The C-Graph manual is currently available in pdf format, for which the Texinfo source may also be downloaded. We will be making the manual available in the usual formats published by GNU. You may also find more information about C-Graph by running info c-graph or by looking at /usr/doc/c-graph/, /usr/local/doc/c-graph/, or similar directories on your system. A brief summary is available by running c-graph --help.


Supporting You

The mailing list for C-Graph is:

  • bug-c-graph is used to discuss most aspects of C-Graph, including development and enhancement requests, as well as bug reports. This list is also for general user help and discussion.

Announcements about C-Graph and most other GNU software are made on info-gnu (archive).

Supporting Us

Your C-Graph experience will impact your intuitive understanding of convolution theory. We can better meet your needs if you tell us about your sessions, suggest new features, and report any issues you may encounter. Let us hear from you. Get in touch and exchange ideas on bug-c-graph!

We bank on coffee to keep business wired. Buy us a cup while we code for you!

Those who value Freedom will find it cooler to Gravitate to GNU. Get on point with GNU, and read How to help.


For development sources, issue trackers, and other information, please see the C-Graph project page at

Over 100,000 discover that visualizing convolution with C-Graph is easy! See our first press releases:

We plan to upgrade the FFT algorithm and provide a custom command line interface in our next release. Contributions from other developers are welcome! Please join us via the mailing lists.


C-Graph is dedicated to all victims of apartheid, and to Haitian-Bahamian attorney-at-law and human rights advocate, Eliezer Regnier, who died as a result of the struggle for justice.

Our logo is inspired by computer vision, the movie "Blade Runner", the copyright symbol, and Regnier's saxophone.


Please see the Translations README for information on coordinating and submitting translations for C-Graph.

Please send general FSF & GNU inquiries to <>. There are also other ways to contact the FSF.
Please send broken links and other corrections or suggestions to <>.

Copyright © 2013 Adrienne Gaye Thompson

This page is licensed under a Creative Commons Attribution-NoDerivs 3.0 United States License.

Updated: $Date: 2014/07/09 00:01:52 $