C-GRAPH(1)
π NAME π
okay so first things first, this is c-graph(1), from the User Commands section of your man pages, and it's a visualization tool for the convolution theorem β¨
π¦ SYNOPSIS π¦
c-graph [-d|-h|-v] [-n]
πΈ DESCRIPTION πΈ
GNU C-Graph (the C is for Convolution, the Graph is for, you know, graph π
) is a tool for visualizing the convolution of two signals using Gnuplot under the X Window System. It computes the linear convolution of two signals in the time domain, then compares their circular convolution by demonstrating the convolution theorem β which is the whole vibe that convolution of two signals in the time domain corresponds to multiplication in the frequency domain. π€― Gnuplot command and graphics output files get saved in the c-graphs directory for later use, so you can come back and be obsessed with them again later.
Each signal is modeled by a register of discrete values simulating samples of a signal, and the discrete Fourier transform (DFT) is computed by means of the fast Fourier transform (FFT). FFTs are computed on data series containing a power of two elements. c-graph accepts data series sizes of powers of two in the range 64 to 1024, inclusive. no cap.
c-graph is menu-driven: it prompts you for a number of samples, the signal type, frequency, and a scaling coefficient (if applicable). it's giving interactive bestie energy π«Ά
Data sets may consist of 64, 128, 256, 512, or 1024 samples. If any other data set size is chosen, the size is adjusted to the nearest allowed power of two.
Signals may be periodic or aperiodic, according to input waveform type.
These signal types are periodic: sine, cosine, triangle, square, and sawtooth. Periodic signals can be selected as continuous waves or as a pulse. If the pulse form is chosen, the input signal consists of a half-wave of the signal type. For example, a sine wave chosen as a pulse will provide a sine wave of half the full wave duration (i.e., from 0 to Ο radians, or 0 to 180Β°). cute little half-sine, iconic β¨
These signal types are aperiodic: exponential, ramp, and the step function.
The allowable frequency range is from 0.5 to N/4, where N is the number of samples. If a value is entered outside of this range, the frequency is set to a default of 1 Hz. (yes, it just picks for you. main character behaviour tbh π)
The scaling coefficient may be positive or negative. The maximum absolute value of the scaling coefficient for signal types sine, cosine, exponential, and the step function is N, whereas for signal types triangle, square, sawtooth and ramp the maximum scale is 1. With the default scaling coefficient of 1, signal types sine, cosine, exponential, and the step function are unit functions; signal types square and sawtooth have a maximum amplitude of half the period, whereas that of a triangle is one-quarter the period.
Whether student, engineer, or scientist, aspiring special-effects animator or roboticist, GNU C-Graph will help you find the adventure in the mathematics of convolution. literally. go touch some waveforms π
β¨ OPTIONS β¨
-d,--dedicateβ Print the dedication and exit. π-h,--helpβ Print the list of options and exit.-n,--no-splashβ Invoke GNU C-Graph with no splash screen. skip the intro, get straight to the math, periodt π-v,--versionβ Print the version of GNU C-Graph and exit.
π ENVIRONMENT VARIABLES π
GDFONTPATHβ This is the directory path thatgnuplot(1)searches for fonts to produce its graphs.c-graphcommandsgnuplotto use a font named"serif". Ifgnuplotdoes not find this font, it will use a default. To select the gnuplot font, create a symbolic link from the desired font file to a file named"serif.ttf". Then setGDFONTPATHto the directory where"serif.ttf"is located. For example if the file/home/galactic/fonts/serif.ttflinks to the desired serif font, then in the Bourne shell use a command such as the following:
export GDFONTPATH=/home/galactic/fonts:/usr/share/fonts
π FILES π
Upon exit, c-graph saves its sample sets and graphics files in the c-graphs directory within the current working directory. Here is a typical recursive listing of the output directory contents:
$ ls -R c-graphs
c-graphs:
coms graphs
c-graphs/coms:
convolutions.cg signals.cg time.dat trans.dat transforms.cg
c-graphs/graphs:
convolutions.png signals.png transforms.png
The c-graphs/coms directory contains the input for Gnuplot that was used to generate the output graphics. Files ending in ".cg" are Gnuplot command files. Files ending in ".dat" are ASCII data input files; they are tables of floating point values of input waveforms.
The c-graphs/graphs directory contains the graphics output of Gnuplot, in Portable Network Graphics (PNG) format. These files can be used in presentations and other documents to visually demonstrate the convolution theorem. put them in your slides bestie, they ate π₯
π BUGS π
Report bugs to agt@codeartnow.com. (please be nice about it, she's been at this since 1982 π«Ά)
π AUTHOR π
GNU C-Graph was written by Adrienne Gaye Thompson (agt@codeartnow.com). This package evolved from the BSc. Electrical Engineering honours dissertation of Adrienne Thompson, "Interactive Computer Program Demonstrating: Sampling Convolution and the FFT", University of Aberdeen, Scotland (1983). academic icon behaviour, honestly β¨
π COPYRIGHT π
Copyright Β© 1982, 1983, 1996, 2008, 2009, 2010, 2011, 2018 Adrienne Gaye Thompson.
GNU C-Graph is licensed under the GPL version 3 or later with Additional Terms as permitted under the GPL; see the COPYING file in this package for details. For the latest version of the GPL, see http://gnu.org/licenses/gpl.html.
This is free software; you are free to modify and distribute it. There is NO WARRANTY, to the extent permitted by law.
π¨ bestie, that's the important bit: NO WARRANTY, to the extent permitted by law. fr fr.
πΈ SEE ALSO πΈ
The c-graph Texinfo manual, included in this package, contains further information. That manual provides a thorough description of possible parameters and waveforms, with typical examples. An appendix provides an overview of the convolution theorem.
With the GNU Texinfo package installed on your system, you can view the manual with the command
info c-graph
Further documentation can be found on the GNU C-Graph home page, https://www.gnu.org/software/c-graph/. The source package includes a PDF version of the Texinfo manual. A copy of this manual can also be found at https://www.gnu.org/software/c-graph/manual/c-graph.pdf.
okay that's the whole page bestie, and this version is c-graph from December 2018 π go forth and convolve, you absolute legend π¦β¨π
π¦ where this page comes from
- fedora 43: c-graph 2.0.1-15.fc43 Β· GPL-3.0-or-later
- fedora 44: c-graph 2.0.1-17.fc44 Β· GPL-3.0-or-later
- nixos 26.05: c-graph 2.0.1
- nixpkgs unstable: c-graph 2.0.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms