Triangle wave

Non-sinusoidal waveform
title: "Triangle wave" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["fourier-series", "waveforms"] description: "Non-sinusoidal waveform" topic_path: "general/fourier-series" source: "https://en.wikipedia.org/wiki/Triangle_wave" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0
::summary Non-sinusoidal waveform ::
::data[format=table title="Infobox mathematical function"]
| Field | Value |
|---|---|
| name | Triangle wave |
| image | triangle-td and fd.svg |
| imagesize | 400px |
| imagealt | A bandlimited triangle wave pictured in the time domain and frequency domain. |
| caption | A bandlimited triangle wave pictured in the time domain (top) and frequency domain (bottom). The fundamental is at 220 Hz (A3). |
| general_definition | x(t) = 4 \left\vert t - \left\lfloor t + 3/4 \right\rfloor + 1/4 \right\vert - 1 |
| fields_of_application | Electronics, synthesizers |
| domain | \mathbb{R} |
| codomain | \left[ -1, 1 \right] |
| parity | Odd |
| period | 1 |
| root | \left{ \tfrac{n}{2} \right}, n \in \mathbb{Z} |
| derivative | Square wave |
| fourier_series | x(t) = -\frac{8}\sum_{k=1}^{\infty} \frac{\left( 2 k - 1 \right)^{2 |
| :: |
| name = Triangle wave | image = triangle-td and fd.svg | imagesize = 400px | imagealt = A bandlimited triangle wave pictured in the time domain and frequency domain. | caption = A bandlimited triangle wave pictured in the time domain (top) and frequency domain (bottom). The fundamental is at 220 Hz (A3). | general_definition = x(t) = 4 \left\vert t - \left\lfloor t + 3/4 \right\rfloor + 1/4 \right\vert - 1 | fields_of_application = Electronics, synthesizers | domain = \mathbb{R} | codomain = \left[ -1, 1 \right] | parity = Odd | period = 1 | root = \left{ \tfrac{n}{2} \right}, n \in \mathbb{Z} | derivative = Square wave | fourier_series = x(t) = -\frac{8}\sum_{k=1}^{\infty} \frac{\left( 2 k - 1 \right)^{2}} \sin \left(2 \pi \left( 2 k - 1 \right) t\right)
A triangular wave or triangle wave is a non-sinusoidal waveform named for its triangular shape. It is a periodic, piecewise linear, continuous real function.
Like a square wave, the triangle wave contains only odd harmonics. However, the higher harmonics roll off much faster than in a square wave (proportional to the inverse square of the harmonic number as opposed to just the inverse).
Definitions
::figure[src="https://upload.wikimedia.org/wikipedia/commons/7/77/Waveforms.svg" caption="sawtooth]] waveforms"] ::
Definition
A triangle wave of period p that spans the range [0, 1] is defined as x(t) = 2 \left| \frac{t}{p} - \left\lfloor \frac{t}{p} + \frac{1}{2} \right\rfloor \right|, where \lfloor\ \rfloor is the floor function. This can be seen to be the absolute value of a shifted sawtooth wave.
For a triangle wave spanning the range the expression becomes x(t)= 2 \left | 2 \left( \frac{t}{p} - \left\lfloor \frac{t}{p} + \frac{1}{2} \right\rfloor \right) \right| - 1.
::figure[src="https://upload.wikimedia.org/wikipedia/commons/6/61/Triangle_wave_with_amplitude=5,_period=4.png" caption="Triangle wave with amplitude = 5, period = 4"] ::
A more general equation for a triangle wave with amplitude a and period p using the modulo operation and absolute value is y(x) = \frac{4a}{p} \left| \left( \left(x - \frac{p}{4}\right) \bmod p \right) - \frac{p}{2} \right| - a.
For example, for a triangle wave with amplitude 5 and period 4: y(x) = 5 \left| \bigl( (x - 1) \bmod 4 \bigr) - 2 \right| - 5.
A phase shift can be obtained by altering the value of the -p/4 term, and the vertical offset can be adjusted by altering the value of the -a term.
As this only uses the modulo operation and absolute value, it can be used to simply implement a triangle wave on hardware electronics.
Note that in many programming languages, the % operator is a remainder operator (with result the same sign as the dividend), not a modulo operator; the modulo operation can be obtained by using ((x % p) + p) % p in place of x % p. In e.g. JavaScript, this results in an equation of the form 4*a/p * Math.abs((((x - p/4) % p) + p) % p - p/2) - a.
Relation to the square wave
The triangle wave can also be expressed as the integral of the square wave: x(t) = \int_0^t \sgn\left(\sin\frac{u}{p}\right),du.
Expression in trigonometric functions
A triangle wave with period p and amplitude a can be expressed in terms of sine and arcsine (whose value ranges from −π/2 to π/2): y(x) = \frac{2a}{\pi} \arcsin\left(\sin\left(\frac{2\pi}{p}x\right)\right). The identity \cos{x} = \sin\left(\frac{p}{4}-x\right) can be used to convert from a triangle "sine" wave to a triangular "cosine" wave. This phase-shifted triangle wave can also be expressed with cosine and arccosine: y(x) = a - \frac{2a}{\pi} \arccos\left(\cos\left(\frac{2\pi}{p}x\right)\right).
Expressed as alternating linear functions
Another definition of the triangle wave, with range from −1 to 1 and period p, is x(t) = \frac{4}{p} \left(t - \frac{p}{2} \left\lfloor\frac{2t}{p} + \frac{1}{2} \right\rfloor \right)(-1)^\left\lfloor\frac{2 t}{p} + \frac{1}{2} \right\rfloor.
Harmonics
::figure[src="https://upload.wikimedia.org/wikipedia/commons/b/bb/Synthesis_triangle.gif" caption="Fourier Analysis]] for a mathematical description."] ::
It is possible to approximate a triangle wave with additive synthesis by summing odd harmonics of the fundamental while multiplying every other odd harmonic by −1 (or, equivalently, changing its phase by ) and multiplying the amplitude of the harmonics by one over the square of their mode number, n (which is equivalent to one over the square of their relative frequency to the fundamental).
The above can be summarised mathematically as follows: x_\text{triangle}(t) = \frac8{\pi^2} \sum_{i=0}^{N - 1} \frac{(-1)^i}{n^2} \sin(2\pi f_0 n t), where N is the number of harmonics to include in the approximation, t is the independent variable (e.g. time for sound waves), f_0 is the fundamental frequency, and i is the harmonic label which is related to its mode number by n = 2i + 1.
This infinite Fourier series converges quickly to the triangle wave as N tends to infinity, as shown in the animation.
Arc length
The arc length per period for a triangle wave, denoted by s, is given in terms of the amplitude a and period length p by s = \sqrt{(4a)^2 + p^2}.
References
References
- (5 September 2017). "LP-BLIT: Bandlimited Impulse Train Synthesis of Lowpass-filtered Waveforms".
::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::