Triangular function



A triangular function (also known as a triangle function, hat function, or tent function) is a function whose graph takes the shape of a triangle. Often this is an isosceles triangle of height 1 and base 2 in which case it is referred to as the triangular function. Triangular functions are useful in signal processing and communication systems engineering as representations of idealized signals, and the triangular function specifically as an integral transform kernel function from which more realistic signals can be derived, for example in kernel density estimation. It also has applications in pulse-code modulation as a pulse shape for transmitting digital signals and as a matched filter for receiving the signals. It is also used to define the triangular window sometimes called the Bartlett window.

Definitions
The most common definition is as a piecewise function:

\begin{align} \operatorname{tri}(x) = \Lambda(x) \ &\overset{\underset{\text{def}}{}}{=} \ \max\big(1 - |x|, 0\big) \\ &= \begin{cases} 1 - |x|, & |x| < 1; \\ 0       & \text{otherwise}. \\     \end{cases} \end{align} $$

Equivalently, it may be defined as the convolution of two identical unit rectangular functions:



\begin{align} \operatorname{tri}(x) &= \operatorname{rect}(x) * \operatorname{rect}(x) \\ &= \int_{-\infty}^\infty \operatorname{rect}(x - \tau) \cdot \operatorname{rect}(\tau) \,d\tau. \\ \end{align} $$

The triangular function can also be represented as the product of the rectangular and absolute value functions:


 * $$\operatorname{tri}(x) = \operatorname{rect}(x/2) \big(1 - |x|\big).$$

Note that some authors instead define the triangle function to have a base of width 1 instead of width 2:



\begin{align} \operatorname{tri}(2x) = \Lambda(2x) \ & \overset{\underset{\text{def}}{}}{=} \ \max\big(1 - 2|x|, 0\big) \\ &= \begin{cases} 1 - 2|x|, & |x| < \tfrac12; \\ 0        & \text{otherwise}. \\     \end{cases} \end{align} $$

In its most general form a triangular function is any linear B-spline:



\operatorname{tri}_j(x) = \begin{cases} (x - x_{j-1})/(x_j - x_{j-1}), & x_{j-1} \le x < x_j; \\ (x_{j+1} - x)/(x_{j+1} - x_j), & x_j \le x < x_{j+1}; \\ 0                             & \text{otherwise}. \end{cases} $$

Whereas the definition at the top is a special case


 * $$\Lambda(x) = \operatorname{tri}_j(x),$$

where $$x_{j-1} = -1$$, $$x_j = 0$$, and $$x_{j+1} = 1$$.

A linear B-spline is the same as a continuous piecewise linear function $$f(x)$$, and this general triangle function is useful to formally define $$f(x)$$ as


 * $$f(x) = \sum_j y_j \cdot \operatorname{tri}_j(x),$$

where $$x_j < x_{j+1}$$ for all integer $$j$$. The piecewise linear function passes through every point expressed as coordinates with ordered pair $$(x_j, y_j)$$, that is,


 * $$f(x_j) = y_j$$.

Scaling
For any parameter $$a \ne 0$$:



\begin{align} \operatorname{tri}\left(\tfrac{t}{a}\right) &= \int_{-\infty}^\infty \tfrac{1}{|a|} \operatorname{rect}\left(\tfrac{\tau}{a}\right) \cdot \operatorname{rect}\left(\tfrac{t-\tau}{a}\right) \,d\tau \\ &= \begin{cases} 1 - |t/a|, & |t| < |a|; \\ 0 & \text{otherwise}. \end{cases} \end{align} $$

Fourier transform
The transform is easily determined using the convolution property of Fourier transforms and the Fourier transform of the rectangular function:



\begin{align} \mathcal{F}\{\operatorname{tri}(t)\} &= \mathcal{F}\{\operatorname{rect}(t) * \operatorname{rect}(t)\}\\ &= \mathcal{F}\{\operatorname{rect}(t)\}\cdot \mathcal{F}\{\operatorname{rect}(t)\}\\ &= \mathcal{F}\{\operatorname{rect}(t)\}^2\\ &= \mathrm{sinc}^2(f), \end{align} $$ where $$\operatorname{sinc}(x) = \sin(\pi x) / (\pi x)$$ is the normalized sinc function.