Main Content

getCenterFrequencies

Center frequencies of filters

Description

cf = getCenterFrequencies(obj) returns the center frequencies of the filters created by obj, in Hz.

example

Examples

collapse all

Create a gammatoneFilterBank and get the center frequencies of the filters in the filter bank.

gammaFiltBank = gammatoneFilterBank;

cf = getCenterFrequencies(gammaFiltBank)
cf = 1×32
103 ×

    0.0500    0.0822    0.1181    0.1581    0.2027    0.2525    0.3081    0.3700    0.4391    0.5162    0.6022    0.6980    0.8050    0.9242    1.0573    1.2056    1.3711    1.5557    1.7616    1.9912    2.2473    2.5329    2.8515    3.2069    3.6032    4.0453    4.5384    5.0883    5.7017    6.3858    7.1489    8.0000

Center frequencies of a gammatone filter bank are spaced evenly on the ERB scale. Convert the center frequencies vector to the ERB scale and calculate the differences between center frequencies.

diff(hz2erb(cf))
ans = 1×31

    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130    1.0130

Create an octaveFilterBank and get the center frequencies of the filters in the filter bank.

octFiltBank = octaveFilterBank;

cf = getCenterFrequencies(octFiltBank)
cf = 1×10
104 ×

    0.0032    0.0063    0.0126    0.0251    0.0501    0.1000    0.1995    0.3981    0.7943    1.5849

Center frequencies of an octave filter bank are spaced evenly on a logarithmic scale. Convert the center frequencies vector to the log scale and calculate the differences between center frequencies.

diff(log10(cf))
ans = 1×9

    0.3000    0.3000    0.3000    0.3000    0.3000    0.3000    0.3000    0.3000    0.3000

Create an octave bandwidth splMeter and get the center frequencies of the octave filter bank. Round the center frequencies to two significant digits for display purposes.

SPL = splMeter('SampleRate',44100,'Bandwidth','1 octave');
cf = getCenterFrequencies(SPL);
round(cf,2,'significant')
ans = 1×10

          32          63         130         250         500        1000        2000        4000        7900       16000

Input Arguments

collapse all

Object to get filter bank center frequencies from, specified as an object of gammatoneFilterBank, octaveFilterBank, or splMeter.

Output Arguments

collapse all

Filter bank center frequencies in Hz, returned a scalar or vector.

Version History

Introduced in R2019a