mel                   package:emu                   R Documentation

_C_o_n_v_e_r_t _H_z _t_o _t_h_e _m_e_l _s_c_a_l_e

_D_e_s_c_r_i_p_t_i_o_n:

     The calculation is done using the formulae  mel =   1/log(2) *
     (log(1 + (Hz/1000))) * 1000 where Hz is the frequency in Hz.

_U_s_a_g_e:

     mel(a)

_A_r_g_u_m_e_n_t_s:

       a: A vector or matrix of data or a spectral object.

_D_e_t_a_i_l_s:

     If 'data' is a spectral object, then  the frequencies are changed
     so that they are proportional to the mel scale and such that the
     mel intervals between frequencies are constant between the lowest
     and highest frequencies. More specifically,  suppose that a
     spectral object has frequencies at 0, 1000, 2000, 3000, 4000 Hz.
     Then the corresponding frequencies extend in mel between 0 and
     2321.928 mel (=4000 Hz in mels) in four equal intervals, and
     linear interpolation is used with the 'approx' function to obtain
     the dB values at those frequencies.

_V_a_l_u_e:

     A vector or matrix or spectral object  of the same length and
     dimensions as data.

_A_u_t_h_o_r(_s):

     Jonathan Harrington

_R_e_f_e_r_e_n_c_e_s:

     Traunmueller, H. (1990) \"Analytical expressions for the tonotopic
     sensory scale\" J. Acoust. Soc. Am. 88: 97-100.

_S_e_e _A_l_s_o:

     'bark',   'plot.spectral'

_E_x_a_m_p_l_e_s:

      #convert Hertz values to mel

      vec <- c(500, 1500, 2500)
      vec
      mel(vec)

             
             # convert Hertz values to mel 

             mel(vec)
             

             # convert the \$data values in a trackdata object to mel
             # create a new track data object

             t1 <- dip.fdat
             t1[1]
             
             # convert Hertz to mel

             t1$data <- mel(t1$data)
             t1[1]

     # warp the frequency axis of a spectral object such
     # that it is proportional to the mel scale.

     w = mel(e.dft)
     par(mfrow=c(1,2))
     plot(w, type="l")

     # The values of w are at equal mel intervals. Compare
     # with

     plot(e.dft, freq=mel(trackfreq(e.dft)))

     # the latter has a greater concentration of values
     # in a higher frequency range.

