Frequency response (transfer function) of a parametric equalization filter.


Updated 10 Jul 2022

View License

This function computes the complex frequency response function (transfer function) of a parametric equalization filter based on the Bristow-Johnson (1994) formulation. The response is symmetric about the center frequency of the peak/dip when plotted on a log-frequency scale.
h = filtRespParamEQ(f,f0,GdB,Q)
h = filtRespParamEQ(f,f0,GdB,Q) returns the frequency response column vector computed at the frequencies supplied in f (in Hz). The location of the equalization peak or dip is f0 Hz, its height or depth in dB is given by GdB, and its quality factor (sharpness) is Q.
filtRespParamEQ(__) with no output arguments plots the magnitude and phase response of the parametric equalization filter (its frequency response).
filtRespParamEQ() with no input arguments plots the magnitude and phase response of an example parametric equalization filter.
If any one argument from the choice of f0, GdB, or Q is a row or column vector, the h result will be returned as a matrix of column vectors.
In the Bristow-Johnson formulation, the bandwidth specification is based on the gain at the two bandedge frequencies being equal to GdB/2 dB. This amplitude point is known as the midpoint gain. The bandwidth, in octaves, around the center frequency f0 is equal to 1/Q in the present implementation.
This parameteric equalizer also has the property that complementary equalizers with the same defined bandwidth, boost/cut frequency, but opposite boost/cut gains, cancel each other to result in a flat 0 dB overall response.
f = logspace(log10(100),log10(10000),401);
f0 = 1000;
GdB = 3;
Q = 0.5;
Setting the center frequency to f0 = 1000 Hz, the peak boost to GdB = 3 dB, and the quality factor to Q = 0.5, the "half-gain bandwidth" would be calculated by finding the two frequencies for which the boost is 1.5 dB. The upper and lower bandedges of this equalizer are related to each other in terms of octaves, and not simply the frequency difference. The lower bandedge frequency is fLBE = f0/2^(1/(2*Q)) = 500 Hz, and the upper bandedge frequency is fUBE = f0*2^(1/(2*Q)) = 2000 Hz. Hence, fUBE is 1/Q = 2 octaves higher in frequency than fLBE. Another way of looking at this is that FLBE is 1/(2*Q) = 1 octave below f0, and fUBE is 1 octave above f0.
Bristow-Johnson, Robert (1994). The Equivalence of Various Methods of Computing Biquad Coefficients for Audio Parametric Equalizers. 97th Audio Engineering Society Convention, 10–13 November 1994, San Francisco, Paper Number 3906.
Bristow-Johnson, Robert. The Equivalence of Various Methods of Computing Biquad Coefficients for Audio Parametric Equalizers. Access date: 2022-07-09.

Cite As

Witold Waldman (2023). filtRespParamEQBJ (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2022a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes