convolution theorem visualization demo background

Convolution Theorem Visualization

Convolution is a core concept in today's cutting-edge technologies of deep learning and computer vision. Singularly cogent in application to digital signal processing, the convolution theorem is regarded as the most powerful tool in modern scientific analysis. Long utilised for accelerating the application of filters to images, fast training of convolutional neural networks exploit the convolution theorem to accelerate training and inference in the ubiquitous applications of computer vision that, today, are at the vanguard of the evolving artificially intelligent world in which we are becoming increasingly immersed.

With a userbase estimated at 30 million, GNU C-Graph is the de facto tool for visualizing convolution in university courses and the go-to signal processing package relied on by electronics sector industries from telecommunications to aerospace - worldwide. "C-Graph" stands for "Convolution Graph" - Free Software that makes learning about convolution easy!

Demo: Select, Transform, Visualize


Unlike other signal processing packages, C-Graph is a demo for the convolution theorem that dispenses with the learning curve for writing code. Instead, an interactive dialogue guides the user to effortlessly select values for keyboard input. Simply select waveforms from a menu, transform them via the FFT, then visualize their convolution.

Designed to enhance the learning experience, C-Graph is a signal generator featuring an attractive array of scalable pulses, periodic, and aperiodic signal types of variable frequency fundamental to the study of systems theory. The demo 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).

Ideal for lecture demonstrations, labs, and homework assignments, GNU C-Graph is invaluable to the visual representation of 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 is packaged by top GNU/Linux distros and their derivatives: Alt Linux, Arch Linux, Debian, Devuan, Fedora, Guix, Kali, Parrot, Pure OS, Raspbian and Ubuntu. Fedora was the first GNU/Linux distro to include our package. Let's 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

Our mailing list is bug-c-graph. Here, we discuss C-Graph development, feaure 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).

Hundreds of thousands are discovering that visualizing convolution with C-Graph is easy! See our first press releases:

Contributions from other developers are welcome! Please join us via the mailing lists.

Supporting Us

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

Although industries round the globe rely on GNU C-Graph, C-Graph (whose sole author is a native Jamaican living in Jamaica) has been rewarded with zero donations since its release in 2011 - until January of 2019 when Paul Hardy of, home of GNU Unifont, rescued C-Graph with the donation of a new 17" Lenovo IdeaPad!!

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

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


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 © 2022 Adrienne Gaye Thompson

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

Updated: $Date: 2022/01/11 17:26:58 $