1C-GRAPH(1) User Commands C-GRAPH(1)
2
3
4
6 c-graph - visualization tool for the convolution theorem
7
9 c-graph [-d|-h|-v] [-n]
10
12 GNU C-Graph (for Convolution Graph) is a tool for visualizing the con‐
13 volution of two signals using Gnuplot under the X Window System. It
14 computes the linear convolution of two signals in the time domain, then
15 compares their circular convolution by demonstrating the convolution
16 theorem - convolution of two signals in the time domain corresponds to
17 multiplication in the frequency domain. Gnuplot command and graphics
18 output files are saved in the c-graphs directory for later use.
19
20 Each signal is modeled by a register of discrete values simulating sam‐
21 ples of a signal, and the discrete Fourier transform (DFT) computed by
22 means of the fast Fourier transform (FFT). FFTs are computed on data
23 series containing a power of two elements. c-graph accepts data series
24 sizes of powers of two in the range 64 to 1024, inclusive.
25
26 c-graph is menu-driven: it prompts the user for a number of samples,
27 the signal type, frequency, and a scaling coefficient (if applicable).
28
29 Data sets may consist of 64, 128, 256, 512, or 1024 samples. If any
30 other data set size is chosen, the size is adjusted to the nearest
31 allowed power of two.
32
33 Signals may be periodic or aperiodic, according to input waveform type.
34
35 These signal types are periodic: sine, cosine, triangle, square, and
36 sawtooth. Periodic signals can be selected as continuous waves or as a
37 pulse. If the pulse form is chosen, the input signal consists of a
38 half-wave of the signal type. For example, a sine wave chosen as a
39 pulse will provide a sine wave of half the full wave duration (i.e.,
40 from 0 to π radians, or 0 to 180°).
41
42 These signal types are aperiodic: exponential, ramp, and the step func‐
43 tion.
44
45 The allowable frequency range is from 0.5 to N/4, where N is the number
46 of samples. If a value is entered outside of this range, the frequency
47 is set to a default of 1 Hz.
48
49 The scaling coefficient may be positive or negative. The maximum abso‐
50 lute value of the scaling coefficient for signal types sine, cosine,
51 exponential, and the step function is N, whereas for signal types tri‐
52 angle, square, sawtooth and ramp the maximum scale is 1. With the
53 default scaling coefficient of 1, signal types sine, cosine, exponen‐
54 tial, and the step function are unit functions; signal types square and
55 sawtooth have a maximum amplitude of half the period, whereas that of a
56 triangle is one-quarter the period.
57
58 Whether student, engineer, or scientist, aspiring special-effects ani‐
59 mator or roboticist, GNU C-Graph will help you find the adventure in
60 the mathematics of convolution.
61
63 -d, --dedicate
64 Print the dedication and exit.
65
66 -h, --help
67 Print the list of options and exit.
68
69 -n, --no-splash
70 Invoke GNU C-Graph with no splash screen.
71
72 -v, --version
73 Print the version of GNU C-Graph and exit.
74
76 GDFONTPATH
77 This is the directory path that gnuplot(1) searches for fonts to
78 produce its graphs. c-graph commands gnuplot to use a font
79 named "serif". If gnuplot does not find this font, it will use
80 a default. To select the gnuplot font, create a symbolic link
81 from the desired font file to a file named "serif.ttf". Then
82 set GDFONTPATH to the directory where "serif.ttf" is located.
83 For example if the file /home/galactic/fonts/serif.ttf links to
84 the desired serif font, then in the Bourne shell use a command
85 such as the following:
86
87 export GDFONTPATH=/home/galactic/fonts:/usr/share/fonts
88
90 Upon exit, c-graph saves its sample sets and graphics files in the c-
91 graphs directory within the current working directory. Here is a typi‐
92 cal recursive listing of the output directory contents:
93
94 $ ls -R c-graphs
95 c-graphs:
96 coms graphs
97
98 c-graphs/coms:
99 convolutions.cg signals.cg time.dat trans.dat transforms.cg
100
101 c-graphs/graphs:
102 convolutions.png signals.png transforms.png
103
104 The c-graphs/coms directory contains the input for Gnuplot that was
105 used to generate the output graphics. Files ending in ".cg" are Gnu‐
106 plot command files. Files ending in ".dat" are ASCII data input files;
107 they are tables of floating point values of input waveforms.
108
109 The c-graphs/graphs directory contains the graphics output of Gnuplot,
110 in Portable Network Graphics (PNG) format. These files can be used in
111 presentations and other documents to visually demonstrate the convolu‐
112 tion theorem.
113
115 Report bugs to agt@codeartnow.com.
116
118 GNU C-Graph was written by Adrienne Gaye Thompson (agt@codeartnow.com).
119 This package evolved from the BSc. Electrical Engineering honours dis‐
120 sertation of Adrienne Thompson, "Interactive Computer Program Demon‐
121 strating: Sampling Convolution and the FFT", University of Aberdeen,
122 Scotland (1983).
123
125 Copyright © 1982, 1983, 1996, 2008, 2009, 2010, 2011, 2018 Adrienne
126 Gaye Thompson.
127
128 GNU C-Graph is licensed under the GPL version 3 or later with Addi‐
129 tional Terms as permitted under the GPL; see the COPYING file in this
130 package for details. For the latest version of the GPL, see
131 http://gnu.org/licenses/gpl.html.
132
133 This is free software; you are free to modify and distribute it. There
134 is NO WARRANTY, to the extent permitted by law.
135
137 The c-graph Texinfo manual, included in this package, contains further
138 information. That manual provides a thorough description of possible
139 parameters and waveforms, with typical examples. An appendix provides
140 an overview of the convolution theorem.
141
142 With the GNU Texinfo package installed on your system, you can view the
143 manual with the command
144
145 info c-graph
146
147 Further documentation can be found on the GNU C-Graph home page,
148 https://www.gnu.org/software/c-graph/. The source package includes a
149 PDF version of the Texinfo manual. A copy of this manual can also be
150 found at https://www.gnu.org/software/c-graph/manual/c-graph.pdf.
151
152
153
154c-graph December 2018 C-GRAPH(1)