Home > ACA-Code > ToolMfccFb.m

ToolMfccFb

PURPOSE ^

> see function mfcc.m from Slaneys Auditory Toolbox

SYNOPSIS ^

function [H] = ToolMfccFb (iFftLength, f_s)

DESCRIPTION ^

> see function mfcc.m from Slaneys Auditory Toolbox

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 %> see function mfcc.m from Slaneys Auditory Toolbox
0002 function [H] = ToolMfccFb (iFftLength, f_s)
0003 
0004     % initialization
0005     f_start         = 133.3333;
0006     
0007     iNumLinFilters  = 13;
0008     iNumLogFilters  = 27;
0009     iNumFilters     = iNumLinFilters + iNumLogFilters;
0010 
0011     linearSpacing   = 66.66666666;
0012     logSpacing      = 1.0711703;
0013 
0014     % compute band frequencies
0015     f               = f_start + (0:iNumLinFilters-1)*linearSpacing;
0016     f(iNumLinFilters+1:iNumFilters+2) = ...
0017               f(iNumLinFilters) * logSpacing.^(1:iNumLogFilters+2);
0018 
0019     % sanity check
0020     f               = f (f<f_s/2);
0021     iNumFilters     = length(f)-2;
0022     
0023     f_l             = f(1:iNumFilters);
0024     f_c             = f(2:iNumFilters+1);
0025     f_u             = f(3:iNumFilters+2);
0026 
0027     % allocate memory for filters and set max amplitude
0028     H               = zeros(iNumFilters,iFftLength);
0029     afFilterMax     = 2./(f_u-f_l);
0030     f_k             = (0:iFftLength-1)/(iFftLength-1)*f_s/2;
0031 
0032     % compute the transfer functions
0033     for (c = 1:iNumFilters)
0034         H(c,:)      = ...
0035             (f_k > f_l(c) & f_k <= f_c(c)).* ...
0036             afFilterMax(c).*(f_k-f_l(c))/(f_c(c)-f_l(c)) + ...
0037             (f_k > f_c(c) & f_k < f_u(c)).* ...
0038             afFilterMax(c).*(f_u(c)-f_k)/(f_u(c)-f_c(c));
0039     end
0040 end

Generated on Fri 22-Apr-2022 20:59:51 by m2html © 2005