Pergunta

I'm working on an application where i need to implement Mel Frequency Cepstral Coefficients (MFCC) for speech recognition.

The first step in MFCC is to apply Pre-Emphasis

Pre-Emphasis will increase the energy of signal at higher frequency. Because the low frequency band is occupied by sounds which are useless/harmful for speech recognition.

I found this equation for this process:

 Y[n]=X[n]−0.95⋅X[n−1]

My question is should i just simply apply this equation on the original signal?? So that it would increase the energy of the signal at higher frequency. Or should i apply a certain filter on the input signal before applying this equation? and if so, how would i program it?

Foi útil?

Solução

That equation is already the pre-emphasis filter.

In c-code an implementation could looks like this:

float last_input = 0;

float filter (float input)
{
  float output = input - 0.95 * last_input;
  last_input = input;
  return output;
}

Here is the frequency response of the filter, assuming a sample-rate of 44.1 kHz:

Frequency response

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top