This is a pre-release version (2.0.0.dev0+git20260907.41eeb59).Go to latest (1.18.0)
{ } Raw JSON

bundles / scipy 2.0.0.dev0+git20260907.41eeb59 / scipy / signal / windows / _windows / triang

function

scipy.signal.windows._windows:triang

source: build-install/usr/lib/python3.14/site-packages/scipy/signal/windows/_windows.py:294

Signature

def triang(M, sym = True, *, xp = None, device = None)

Summary

Return a triangular window.

Parameters

M : int

Number of points in the output window. If zero, an empty array is returned. An exception is thrown when it is negative.

sym : bool, optional

When True (default), generates a symmetric window, for use in filter design. When False, generates a periodic window, for use in spectral analysis.

xp : array_namespace, optional

Optional array namespace. Should be compatible with the array API standard, or supported by array-api-compat. Default: numpy

device : any

optional device specification for output. Should match one of the supported device specification in xp.

Returns

w : ndarray

The window, with the maximum value normalized to 1 (though the value 1 does not appear if M is even and sym is True).

Examples

Plot the window and its frequency response:
import numpy as np
from scipy import signal
from scipy.fft import fft, fftshift
import matplotlib.pyplot as plt
✓
window = signal.windows.triang(51)
✓
plt.plot(window)
plt.title("Triangular window")
plt.ylabel("Amplitude")
plt.xlabel("Sample")
✗
Text(0.5, 0, 'Sample')
plt.figure()
✗
<Figure size 640x480 with 0 Axes>
A = fft(window, 2048) / (len(window)/2.0)
freq = np.linspace(-0.5, 0.5, len(A))
response = np.abs(fftshift(A / abs(A).max()))
response = 20 * np.log10(np.maximum(response, 1e-10))
✓
plt.plot(freq, response)
plt.axis([-0.5, 0.5, -120, 0])
plt.title("Frequency response of the triangular window")
plt.ylabel("Normalized magnitude [dB]")
plt.xlabel("Normalized frequency [cycles per sample]")
✗
Text(0.5, 0, 'Normalized frequency [cycles per sample]')

See also

bartlett

A triangular window that touches zero

Aliases

  • scipy.signal.windows.triang