Main Content


Convert from hertz to Bark scale



bark = hz2bark(hz) converts values in hertz to values on the Bark frequency scale.


collapse all

Set two bounding frequencies in Hz and then convert them to the Bark scale.

b = hz2bark([20,8000]);

Generate a row vector of 32 values uniformly spaced on the Bark scale.

barkVect = linspace(b(1),b(2),32);

Convert the row vector of values into equivalent frequencies in Hz.

hzVect = bark2hz(barkVect);

Plot the two vectors for comparison. As Bark values increase linearly, Hz values increase exponentially.

title('Bark vs Hz')
grid on

Input Arguments

collapse all

Input frequency in Hz, specified as a scalar, vector, matrix, or multidimensional array.

Data Types: single | double

Output Arguments

collapse all

Output frequency on the Bark scale, returned as a scalar, vector, matrix, or multidimensional array the same size as hz.

Data Types: single | double


The frequency conversion from Hz to the Bark scale uses the following formula:


The Bark value correction occurs after the conversion from Hz to the Bark scale.


[1] Traunmüller, Hartmut. "Analytical Expressions for the Tonotopic Sensory Scale." Journal of the Acoustical Society of America. Vol. 88, Issue 1, 1990, pp. 97–100.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2019a