DSP Terms

Digital signal processing terminology.

ADC

Analog to Digital Converter

Converts a continuous time signal to a digital signal by sampling.

ADSR

Attack / Decay / Sustain / Release

By default this refers to a volume envelope.

Note that attack/decay/release are times and sustain is a level.

Aliasing

A type of distortion that results when reconstructing an analog signal from samples.

A set of samples could technically describe more than one signal. These are referred to as aliases, which is where the name comes from.

The common occurrence of this is trying to represent a signal higher than your nyquist frequency.

All-pass

Formally a filter, but it doesn't change the frequency content, only the phase.

All frequencies pass through unaffected, hence the name "all-pass".

A building block used in reverbs.

It's made by adding a feedforward delay and then subtracting a feedback delay — both using the same coefficients.

It was invented specifically to create a digital delay that doesn't impact the frequency response of a signal, like a comb filter does.

Amplitude

Peak value of a sinusoid.

Can be positive or negative, it's just "how far from 0".

Analog modelling

Digital algorithms that simulate the behavior of electronic circuits (resistors, capacitors, op amps).

There are various flavors of white box (literal model of each component and their interactions) and black box (modelling the response).

Angular frequency

omega (ω)

ω is used to represent radians per time unit, either per second or per sample depending on context.

When dealing with seconds, it's a factor of 2π larger than Hertz (1Hz = 2πω).

ASDF

Average Square Difference Function

A math function that measures the average absolute difference between overlapping sections of a signal.

Attenuation

Reduction in the magnitude of a signal.

The opposite of amplification.

Autocorrelation

Also known as Autocorrelation Function (ACF).

Similarity of a signal to a copy of itself with a variable amount of lag.

Cross correlation of a signal with itself, to provide analytical insight into its periodicity and tempo.

Autocorrelation is symmetric, which means that you only need to take the first half of values when calculating it.

Band-pass filter

A filter that lets through all frequencies within a certain range.

Beat frequency

Occurs when two waves with different frequencies overlap, causing a cycle of alternating constructive and destructive interference between waves.

Bilinear transform

A way to convert an analog (continuous time) filter into a discrete digital filter.

The transformation is achieved by mapping the s-plane (continuous-time domain) to the z-plane (discrete-time domain).

Biquad

Bi-quadratic Filter

The name comes from the fact that it's transfer function is a ratio of two quadratic functions.

A two-pole, two-zero filter.

Block diagram

High level visual description of how a signal flows through a system.

It's a rough sketch to give you a general idea of what's going on.

It's NOT a detailed schematic diagram which uses standardized symbolic representations of components or a circuit diagram (which shows electrical connections).

Bucket brigade

An analog delay where the signal moves one clock cycle at a time through a series of capacitors connected in a cascade.

Named after a way for humans to transport items by lining up in a chain and passing objects person by person down the chain (such as a bucket of water).

Buffer

A bunch of values stored contiguously in memory.

Instead of expecting programs to handle real time audio one value at a time, values are batched into buffers for more efficient processing.

Delay lines are implemented with buffers

Most of DAW's have input and output buffers to help ensure artifact-free and CPU-overload free performance.

Causal filter

A filter whose output doesn't depend on any future inputs.

Basically all real time filters are causal.

Cepstrum

The result of performing the inverse fourier transform of the logarithm of a spectrum.

Expresses the rate of change of spectrum over time, and is useful for investigating periodicity, presence of harmonics, etc.

The word "Cepstrum" has the first four letters of "Spectrum" reversed.

Characteristic Curve

I/O curve.

Amplitude plot of input to output.

Circular buffer

Ring buffer

A fixed-size block of memory that once you get to the end of reading/writing to it, you wrap back around to the start.

An implementation is a delay line

Coefficient

Multiplicative factor

A number that's used for scaling things, such as the magnitude of a signal.

Comb Filter

What happens when you add a delayed copy of a signal to itself, whether it be feedforward or feedback.

Named because the resulting frequency response visually resembles a comb.

Complex Number

A complex number is a way to store and use two numbers (a vector) as if they were one.

It's a number that consists of a real part and an an imaginary part bundled together in one package such as `5 + 4i`. The imaginary part is the part with the imaginary unit `i`.

In dsp and electrical engineering, `j` is used as the imaginary unit instead of `i` (which often denotes current).

Complex numbers are graphed on the complex plane.

Complex Sinusoid

A signal's magnitude and phase stored together as one complex number.

Can be thought of as two sinusoids, a cosine and sine of the same frequency, offset by 90 degrees in phase.

Storing these two values in a complex number makes calculations and manipulation simpler in the frequency domain.

Conjugation

Change the sign of the imaginary part of a complex number.

Continuous time

Analog signal

Convolution

Operation where a signal gets combined with an another signal, usually an impulse response, to form a third signal.

Mathematically, the operator used is a star ∗ which can be confusing since the star * is used to represent multiplication in most programming languages.

Algorithmically, you slide a reversed version of the impulse response over the signal.

Convolution in the time domain is equal to multiplication in the frequency domain.

Correlation

How similar 2 signals are to each other.

It is determined with the dot product.

See: autocorrelation and cross correlation.

Cosine

Given an angle in a triangle, cosine is equal to ratio of the length of the side adjacent to the length of the hypotenuse.

On the unit circle (where the radius of 1 is the hypotenuse), it's the value of the x coordinate.

One of the three main trigonometric functions.

A cosine wave starts 1/4 cycle (90 degrees) earlier than a sine wave.

Cross correlation

Sliding Dot Product

A way to measure the similarity of 2 signals.

Multiply the 2 signals together sample by sample while sliding one of them along the other (increasing lag).

Mathematically very similar to convolution, which uses the same sliding dot product method but with one signal reversed in time.

Cutoff frequency

Corner frequency, Break frequency

Generic term for a chosen frequency where the signal above or below this will be changed.

Low-pass, High-pass and Band-pass filters all rely on and typically offer the ability to change this frequency.

Cycle

One complete iteration of a waveform.

One cycle often has its period expressed as 360 degrees or 2π radians.

DAC

Digital to Analog Converter

Converts a digital signal to a continuous time, analog signal.

The opposite of an ADC.

DAW

Digital Audio Workstation

An audio or music program that lets you run plugins and arrange multiple audio or MIDI tracks.

Examples: Ableton Live, Logic Pro, etc.

DC

Direct current

In the DSP domain, DC refers to whether the signal adds up to 0.

If the mean amplitude of a signal is 0, there's no DC bias, and it's DC balanced.

Decibel

dB

A generic unit to measure relative sound volume logarithmically.

The unit is relative to the quietest measurable sound for humans.

An increase in +3dB doubles the amount of sound energy.

Human hearing is able to perceive around 120dB worth of dynamic range.

There are many other related units such as dBV, dBu, dB SPL.

Decomposition

Breaking apart a signal into components, for example, into sine waves.

This is what the DFT does.

Delay Line

Delay

A delay.

The name used to refer to a line of electrical components that introduced a phase change between input and output signal. A bucket brigade is a classic analog example.

Digitally, delay lines are implemented with a circular buffer.

A building block used in comb filters and waveguide synthesis.

Delay Tap

The name for an output somewhere in a delay line.

Multiple taps are used to get multiple echoes out of one delay line.

Destructive Interference

When two waves are superimposed and have similar frequency components, cancellation happens when the crest of one wave aligns with the trough of another.

Difference Equation

The actual equation used to implement a filter, one sample at a time.

y[n] = 1.5y[n-1] + 0.5x[n-2] + 0.5x[n]

Discrete version of a differential equation.

Discontinuity

A jump in a signal from one sample to another.

Often will be reproduced as a click sound when played back.

Discrete

Discrete Time, Digital Signal

A signal is discrete when it is broken down into a time series and represented by specific separate numbers called samples.

A signal must be discrete to be stored in a computer.

There are discrete forms of many signal processing functions, such as the discrete Fourier transform.

In a math context, it's convention to refer to discrete units of time with square brackets like so x[n].

Discrete Fourier Transform

A practical implementation of the Discrete Time Fourier Transform that computers can perform.

Converting a discrete signal from the time domain to the frequency domain.

This is how we get the z-transform.

There are a million things named Something Something Fourier Transform. This category just means it's in the digital domain.

It's called a transform because it takes a function of one variable (time) and transforms it to a function of another (frequency).

It results in complex numbers.

Its implementation performs the inner product of the signal with sine waves of different frequencies to check which sine waves are present.

Discrete Time Fourier Transform

The mathematical (theoretical) form of Fourier transform used to analyze a function that is being sampled regularly over time.

DFT is a practical implementation for computers.

Dot Product

Inner Product

A way to multiply two vectors.

Walking through each element n of a vector/array and multiplying it by the same numbered element n of another vector and then summing those together.

One of the two types of vector multiplication, the other being cross product.

Double

A variable type similar to a float that uses 64 bits to store the value.

A double has "double precision," which means it uses twice as many bits to store a value than a float does. A double uses 52 bits for the significand (significant digits), 11 bits for the exponent, and 1 for the sign.

Downsample

To decrease the sampling rate of a signal.

To prevent aliasing, it's common to low pass filter the signal before downsampling. These 2 operations together are called "decimation".

Opposite of upsample.

Energy

For a discrete signal, energy is the sum of the squared magnitudes of a signal.

Fast Fourier Transform

FFT

Algorithm invented in 1965 making it efficient to compute the discrete Fourier transform.

The FFT is built to treat input as if it loops, so except for the case where the input signal is an integer number of cycles, you'll need to use a window function to improve accuracy.

Feedback Delay

Feedback Comb Filter, Recirculating Delay

A copy of the output is added back to the input signal after a certain time.

Considered an IIR filter because given an input signal, it theoretically keeps producing output forever.

The comb filter peaks produced by the feedback delay are tighter and more narrow and spiky than the feedforward delay.

Feedforward

Feedforward Comb Filter, Non-recirculating

The simplest form of delay.

A copy of the input is added back to the input signal after a certain time.

Technically considered an FIR filter because when the input stops, the output stops.

Filter

A formula or function for going from one signal to another.

Finite Impulse Response (FIR) Filter

Feed Forward Filter

A type of filter where some frequencies go to zero.

These filters only exist digitally, analog filters are all IIR.

Named because the impulse response is finite and the filter is stable, no feedback is possible.

Example: A normal, non-feedbacking delay. When the input stops, the output stops (after the delay line empties out).

Float

Floating point number

The default variable type in most DSP libraries.

A 32 bit floating point uses 23 bits to represent the significand (significant digits), 8 bits for the exponent, and 1 sign bit.

The name refers to the fact that the decimal in the number "floats" — it can be placed anywhere in the significant digits via specifying the exponent value.

They are also called single precision, as the double uses twice the number of significant digits.

CPU speed is often measured in FLOPS, or floating points operations per second.

Fourier transform

A mathematical transform that converts a function of amplitude over time (a signal) into complex numbers containing magnitude and phase.

It's used as a noun for a signal's representation in the frequency domain.

The transform is reversible. See Inverse Fourier transform.

Fractional delay line

A simple digital delay line implementation might support delay times that are integer number of samples long, such as 10 samples.

A fractional delay line uses linear interpolation to support delay times that fall between an integer number of samples, such as 10.687 samples long.

Frame

A series of samples, batched together for processing.

Think of the buffer size on your favorite DAW.

Frequency

Number of cycles per time period, usually per second.

See: Hertz.

Frequency Domain

Z domain

The spectrum of a signal.

Representing a signal by specifying magnitude of each frequency for specific buckets of time.

What the Discrete Fourier Transform or other Fourier flavors result in.

The 'opposite' of time domain.

Frequency Modulation Synthesis

FM synthesis, FM, Phase Modulation

One signal called the 'modulator' changes the pitch of another signal called the 'carrier' to create rich harmonic and inharmonic sounds.

Technically it's the phase of a carrier signal that's modulated by the modulator, so FM synthesis is actually phase modulation (not frequency modulation).

Frequency Response

How a filter responds in the frequency domain to an impulse.

The impulse response characterizes a system in the time domain.

Gibbs Phenomenon

The Fourier series sucks for square, saw, and other waves that aren't smoothly interpolating between values.

Trying to model these types of waves with results in overshoot and rippling, causing ringing.

Group Delay

Envelope Delay

Delay in amplitude, as a function of frequency.

The derivative (rate of change) of the phase of a filter.

Haas Effect

When two identical signals are mixed together with a delay of under 30ms, it appears as a tone. When it's >= 30ms, it appears as two distinct signals.

Hard Sync

One oscillator causes second oscillator to reset its cycle on the first's schedule, forcing their frequencies to be the same.

Assuming the original frequency of the second oscillator isn't the exact same as the first, the result is more complex waveforms with desirable harmonics.

Hertz

Hz

Cycles per second. A 440Hz waveform has 440 periods happening per second.

High-pass filter

A filter that lets through all frequencies higher than a certain cutoff frequency.

Impulse

A signal that is 0 everywhere except at one sample, where it is 1.

When fed through a filter, it produces an impulse response.

Impulse Response

How something (like a filter) responds when you send an impulse through it.

Characterizes a system in the time domain whereas a transfer function characterizes it in the frequency domain.

Infinite Impulse Response (IIR) Filter

A recursive filter that relies on previous inputs and outputs, making some frequencies go to infinity.

This is what 99.9% of analog filters are, including all the fancy names like Butterworth, Chebyshev, Moog Ladder Filter.

Named because the output could theoretically keep going on forever, even after the input stops, so the impulse response is technically infinite.

Example: A feedback delay theoretically will always output some smaller and smaller signal, even after the input signal stops.

Inner product

The main thing that the discrete Fourier transform does.

Take two signals, walk through each element, multiply them together, then sum up the products to get a single value.

It measures the similarity, or amount of correlation, two signals have.

Interference

An complicated way to say that an signal has combined with another signal, producing a third signal.

When that third resultant signal has less amplitude than the original, we call it 'destructive'. When the third signal has more amplitude, we call it 'constructive.'

Interpolation

Creating in-between samples from existing samples via an algorithm.

This can be seen as upsampling.

Linear Interpolation is a computationally cheap and popular method.

Inverse Fourier Transform

Mathematical process that converts complex values representing a signal in the frequency domain to a time domain.

The opposite of the Fourier Transform.

Lag

A quantity of time in samples used in functions such as autocorrelation.

Laplace transform

Going from analog to digital domain to produce a difference equation.

Latency

A delay by a certain amount of time.

In a DAW context, this is the amount of time the DAW is taking to process playback, often specified in powers of 2, such as 64, 128, 512, etc.

Linear

A filter or system that obeys the superposition principle.

Opposite of non-linear.

Linear Feedback Shift Register

LFSR

An efficient way of generating deterministic, pseudo-random numbers.

A set of individual bits that shift to the right on each iteration (shift register), where the leftmost 'input' bit is created by combining other bits, often via XOR.

Linear Interpolation

Lerp

Finding a value somewhere between two points.

When you have a discrete signal, you sometimes want to find an arbitrary value between two samples. You can do this by drawing a line between them.

Linear Phase

A type of filter (usually FIR) where all frequency components are delayed in time by a constant amount.

It avoids phase distortion.

Linear Time Invariant (LTI) Filter

This is a category of filters that are:

1. Linear, which means the sum of two signals going through a filter results in the same output as when they go through the filter individually and get summed afterwards.

2. Time Invariant, which means a sample going through the filter is always going to have the same output no matter WHEN it goes through.

Logarithm

log

Inverse mathematical function to taking the exponent of a number.

Almost all human perception, including hearing occurs on a logarithmic scale.

Low-pass Filter

LPF

A filter that lets through all frequencies lower than a certain (cutoff) frequency.

Magnitude

Absolute value of some measured amount.

For example, a DFT bin has a magnitude.

Unlike amplitude, it's always a positive value.

Mantissa

Historically, the digits after the decimal point in a logarithm.

Also used as a synonym to significand.

Non-linear

Describes a filter or a system where the

Distortion. Compression.

Harmonics are created.

Characteristic curve is no longer just a line.

Nyquist

Half of the sampling rate.

The highest frequency that a digital signal can store at a given sample rate.

Generated frequencies that are higher than the nyquist will 'fold' over and alias.

Operator

A building block of FM synthesis, comprised of an input, an oscillator, an amplifier and an output.

Order

Transfer Function Order

Max of numerator or denominator orders.

Filter order = number of poles or zeros, whichever is greater.

Orthogonal

Perpendicular.

Dot product is zero.

Sine and Cosine are orthogonal.

Passband

A range of frequencies that will pass through untouched by a filter.

The other frequencies will either be in the stopband or in the rolloff

Period

Periodic Time

How long a cycle of a waveform takes, in time or samples.

Sometimes used interchangeably with cycle but technically the period of is the duration in time of 1 cycle.

Reciprocal of frequency. One cycle often has its period expressed as 360 degrees or 2π radians.

Real signals aren't usually periodic.

Periodic signal

A signal that repeats itself regularly and therefore has pitch.

Generated sine, saw, square waves are good examples.

Wavetable synthesis stores one cycle of a waveform and uses it to generate periodic waveforms.

Phase Angle

theta, θ, phase, angle

Phase is the position in the cycle of a waveform. The phase angle is a fraction of a full cycle of 360 degrees or 2π radians.

One of the two components of a signal in the frequency domain, the other being magnitude.

θ (lowercase theta) is used as the variable to represent the angle in math.

Phase Distortion

A filter that's not linear phase introduces different delays for different frequency components.

The shape of the waveform changes.

Phase Shift

The offset or difference in phase of two waveforms.

A cosine wave is a sine wave shifted π/2 radians "left" earlier

Phasor

Sinor, Complexor

A complex number storing amplitude, frequency, and phase.

Polar Form

A notation for complex numbers that uses sine and cosine instead of real and imaginary numbers.

Poles

The name comes from plotting the magnitude of the transfer function as a function of z.

Something something denominator approaching infinity.

A point, or a value of z for which the equation is equal to infinity is called a pole. A point, or a value z for which the equation is equal to zero is called a zero. The location of poles and zeros can tell you a lot about the frequency response of a filter.

Power

Power is the rate of energy per time unit.

In a signal, power is proportional to amplitude squared.

Unlike the analog world, which measures power in Watts, in dsp, power doesn't have a physical unit.

PSOLA

Pitch Synchronous Overlap and Add

Speech synthesis technique invented in 1986 that chops audio into overlapping chunks. The distance between chunks can be increased or decreased to change pitch or repeated/deleted to change duration.

Quadrature Oscillator

An oscillator that produces values for both sine and cosine.

Radian

A unit of measure, like degrees but expressed with π.

1 radian is the angle made at the center of a circle by an arc whose length is equal to the radius of the circle.

A full circle has 2π radians.

Rad for short. So rad.

Rectification

Absolute value.

Rolloff

The slope / steepness of a filter's frequency response

The units are usually expressed in db per octave.

Also used as a noun to specify the transition region between a passband and a stopband.

Sample

A single value from a discrete signal.

Samples are usually evenly spaced in time, each one represents a value at that point in time.

Sample Rate

Sampling frequency.

How many discrete samples per second.

CD is 44,100 samples per second. Film is 48,000 samples per second.

The sample rate determines the highest frequency that can be stored. See Nyquist.

Sideband

The additional spectral components above and below a modulated frequency, such as in FM synthesis.

Signal

"A way to convey information"

Amplitude as a function of time.

On a computer, signals are discrete.

Significand

Significant digits

The part of the floating point

Sometimes Mantissa is used interchangeably with this term.

SIMD

Single instruction, multiple data

A type of optimized CPU instruction that operates on a vector instead of a single piece of data.

Simple Harmonic Motion

The underlying physical oscillation that is responsible for sinusoidal movement.

Air molecules are temporarily displaced when hit by sound waves, their vibration back and forth is Simple Harmonic Motion.

Think of a weight on a spring or a pendulum.

Sine

Given an angle in a triangle, sine is equal to the ratio of the length of the side opposite to the hypotenuse.

On the unit circle (where the radius of 1 is the hypotenuse), it's the value of the y coordinate.

One of the three main trigonometric functions.

Sinusoid

Sine Wave

A periodic signal generated by the mathematical function `sin`.

Spectrum

A noun referring to what the Fourier transform produces, the magnitude and phase of each of the frequency components.

Data in the frequency domain.

See: Cepstrum.

Stopband

A range of frequencies that do not pass through a filter at all, or are fully attenuated by the filter.

The other frequencies will be in the passband or in the rolloff.

Superposition

Superposition principle (property)

When two signals are summed and then go through a filter, the result is the same as when they go through the filter individually and are summed afterwards.

When a filter or system obeys this principle, it's called linear.

System

Something that produces one or more outputs when zero or more inputs.

Often used as a synonym to a filter.

Time Domain

An array of numbers, each number representing the value of that signal at that particular moment in time.

The default way we store a signal and convert it from electronic information into digital information.

Mathematically, when the independent variable is a time index.

Time Invariant

A system that behaves the same at any point in time.

A sample going through a filter is always going to have the same output no matter WHEN it goes through.

Time Series

A collection of values taken at equally spaced points in time.

Transfer function

Frequency response of a filter. How a filter behaves in the in the frequency domain.

Ratio of the output frequency response to the input frequency response. How much of the input "transfers" to the output?

Calculated by taking the z-transform of both sides of the difference equation.

Unity gain

Input equals output.

Mostly used in audio engineering.

Upsample

Increase the sampling rate, usually with some method of interpolation.

Opposite of downsample.

Vector

In math, a vector is a magnitude and an angle on a plane.

In C++ (and some other languages), this is an "array" of values, for example, a collection of floats. Unlike an array, there can be a variable number of values.

Wave

Most of the time people mean signal.

Sometimes they mean an audio file, such as WAV, which is an audio file format standard.

Wave Shaping

A fancy name for processing a signal, usually with the intention of adding extra harmonics or distortion.

Waveform

Two meanings:

1. The shape of a single cycle of a periodic signal such as a sine, sawtooth, or square, for example visualized on an oscilloscope.

2. A signal's amplitude graphed over time, as you would see in a DAW.

Waveguide

A network of nodes that delay/allpass the signal and send out signal in both directions (to/from) the node. The total energy in the network is lossless (the same) at any given point in time.

Window Function

Windowing

Smooths out the input to an FFT to increase accuracy, as the FFT assumes the input is one cycle of a periodic signal.

It fades in and out the input signal so that it's loopable without discontinuities.

XOR

Exclusive OR

Bitwise XOR

Inspect the individual bits of a number, returning 1 when the bits are different from each other and 0 when the bits are the same (both 1 or both 0).

The caret ^ is used in most computer languages including C++ and Javascript.

Z

"Z" is a complex variable used to represent "some angular frequency" when working in the frequency domain.

It is normally defined as:

z = e^{jωt}

See angular frequency.

Z-plane

Complex plane

A way to graph complex numbers, usually z, where the x-axis representing the real part (Re) and the y-axis representing the imaginary part (Im).

Z-transform

Maps a function of n (discrete time such as in a filter), to a function of z in the frequency domain.

This is the type of thing that a Fourier transform does.

It's the discrete time version of the Laplace transform.

Zero Order Hold

ZOH

The most naive way to reconstruct a continuous signal from a set of sampled values.

Not actually how a DAC works these days, but people imagine it to be [1].

Zero Padding

Adding zeros at the end of a signal.

This is common to do during DFT when the signal length is shorter than the window size.

Zero-phase Windowing

A technique used when computing the FFT where the signal is split in half and zeros are added in the middle of the signal.

This gives the benefit of increasing the fidelity of the FFT while keeping the signal as symmetrical as possible.

Navigation