Main Content

hz2erb

Convert from hertz to equivalent rectangular bandwidth (ERB) scale

Description

erb = hz2erb(hz) converts values in hertz to values on the ERB frequency scale.

example

Examples

collapse all

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

b = hz2erb([20,8000]);

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

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

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

hzVect = erb2hz(erbVect);

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

plot(erbVect,hzVect,'o')
title('ERB vs Hz')
xlabel('ERB')
ylabel('Hz')
grid on

Figure contains an axes object. The axes object with title ERB vs Hz, xlabel ERB, ylabel Hz contains a line object which displays its values using only markers.

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 ERB scale, returned as a scalar, vector, matrix, or multidimensional array the same size as hz.

Data Types: single | double

Algorithms

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

erb=Alog10(1+hz(0.00437))whereA=1000loge(10)(24.7)(4.37)

References

[1] Glasberg, Brian R., and Brian C. J. Moore. "Derivation of Auditory Filter Shapes from Notched-Noise Data." Hearing Research. Vol. 47, Issues 1–2, 1990, pp. 103–138.

Extended Capabilities

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

Version History

Introduced in R2019a