Análisis de Fourier
La transformada discreta de Fourier (DFT) está definida como:


donde:



Donde T es el periodo de muestreo y fs es la frecuencia de muestreo.
La transformada inversa se define como:


Nótese que es contínua, es decir, que puede tomar cualquier valor real dentro del rango de 0 a .

, la DFT es periódica en con periodo - y por lo tanto, periódica en f con periodo fs.

La siguiente figura muestra la naturaleza periódica de una DFT.


El espectro de amplitud es la magnitud de cada componente en la DFT, | |. El espectro de la energía es el cuadrado de los componentes en el espectro de amplitud:


Propiedades de la transformada discreta de Fourier (DFT)
Linealidad


Es decir, la transformada de Fourier de una señal h(n) multiplicada por un escalar es la transformada de Fourier de la señal, , multiplicada por el escalar .

Del mismo modo, la transformada de Fourier de la suma de dos señales, h(n) y g(n), es la suma de las transformadas de Fourier de ambas señales.

Traslación en el tiempo (retardo)


Esto es, si una señal es desplazada k, la transformada discreta de Fourier sufre un desplazamiento de fase de k.

Traslación de frecuencia


Similar a la anterior, multiplicar la señal por eino introduce un desfase de o en la transformada de Fourier.

Convolución


La convolución de dos señales en el dominio temporal da como resultado una transformada de Fourier que es la multiplicación de las transformadas de Fourier de las dos señales originales. De igual forma, multiplicar dos señales en el dominio temporal da como resultado una convolución en el dominio frecuencial.

Entrada de valor real
Si h(n) es real, como ocurre en la mayoría de procesos de lenguajes, H(ei) es simétrica. De igual forma, si h(n) es par, es decir h(n) = h(-n) entonces H(ei) es real.

Las transformadas de Fourier de valores reales pueden obtenerse dos veces más rápido (están presentes únicamente la mitad de los números complejos).
'Windowing' (funciones ventana)
En el proceso del lenguaje, se asume que la señal es estacionaria en intervalos de tiempo lo suficientemente cortos, y se realizan transformadas de Fourier en cada intervalo. Solución: multiplicar la señal por una función ventana cuyo valor fuera de un determinado rango sea cero.

La ventana rectangular se define como:


Pero considerense las discontinuidades que esto puede provocar, como muestra la siguiente figura. Una manera de evitar discontinuidades en los extremos es acercar la señal a cero o cerca de cero en estos puntos, y así reducir el salto.


En el análisis del lenguaje ls más común es la ventana de Hamming:


No es más que una función coseno, mostrada en la siguiente figura:


Según la propiedad de convoluvión de la transformada de Fourier, la multiplicación de una señal por una función ventana en el dominio temporal es lo mismo que la convolución de la señal en el dominio frecuencial.

Una ventana rectangular da el máximo ajuste, pero produce grandes ondas laterales - una ventana de Hamming no tiene tanta precisión frecuencial, pero provoca efectos mucho menores.

n = 512;
m = 128;
h = hamming(m);
sr = zeros(size(1:n));
sh = zeros(size(1:n));
f = pi / 3;

for i = 1:m ; sr(i) =        sin(f * i) ; end
for i = 1:m ; sh(i) = h(i) * sin(f * i) ; end
ar=abs(fft(sr));
ah=abs(fft(sh));

plot(ar(1:n/2))
plot(20 * log10(ar(1:n/2)))
plot(20 * log10(ah(1:n/2)))
Las siguientes figuras muestran una señal senoidal, con una función ventana rectangular la primera, y una función ventana de Hamming la segunda.


FFT (Fast Fourier Transform) de una señal senoidal, con ventana rectangular y con ventana de Hamming.


FFT de una señal senoidal, con ventana rectangular y con ventana de Hamming, medido en dB.


Transformada de Fourier con términos cortos
Primero se extraen N muestras de lenguaje comenzando por N0 y se aplica la ventana:


Despues se aplica la DFT. El resultado es contínuo, pero puede muestrearse en n puntos sin pérdida de información.


La ecuación deifne un algoritmo que toma un array de N números complejos (o equivalentemente, un array de N números reales y N imaginarios) y devuelve un array de N números complejos.

La función inversa se puede definir de forma similar:


Rellenando con ceros
Se fuerza a la señal a tener un valor de cero fuera de la ventana.
Se pueden añadire ceros explícitamente.
Más puntos en el dominio frecuencial (pero no más resolución).
Transformada Rápida de Fourier (FFT)
Una interpretación simple requiere O(N2) operaciones. La FFT supone O(N log N) operaciones si N es un factor de dos. En general las técnicas del estilo de la FFT se pueden usar para cualquier N - primero se descompone N en factores primos y despues se realiza una operación de "mariposa" recursiva sobre cada factor.
Algoritmo 'Decimation in time' (Cooley y Turkley, 1965):

Comenzar con la transformada de Fourier de nivel superior descrita por:


depues escribir X1(k) como suma de términos pares y términos impares:


Es decir, la transformada de Fourier original se ha escrito como dos transformadas de Fourier operando sobre las partes pares e impares de los datos.

Este sistema recursivo puede continuarse hasta llegar al caso trivial de un punto.
Aplicación práctica de la transformada de Fourier
Se toman 512 muestras de lenguaje. L figura siguiente muestra un segmento de una vocal extraído con una ventana rectangular.


Se realiza una FFT y se dibuja la magnitud del resultado (la figura siguiente muestra el espectro en amplitud utilizando una ventana rectangular calculada utilizando Matlab: abs(fft(sig)) ):


Como se ve en la primera figura, hay una discontinuidad aguda en los extremos. La aplicación de una ventana de Hamming reduce la discontinuidad (la figura muestra un segmento de vocal extraído con una ventana de Hamming - calculado con Matlab: hamming(512) .* sig ):


y como consecuencia la estructura armónica del lenguaje es más visible (la figura muestra el espectro en amplitud usando una ventana de Hamming - calculado con Matlab: abs(fft(hamming(512) .* sig)) ):


Esta es la base para la mayoría de los espectrogramas generados por computador (mostrar la intensidad del pixel sobre una escala logarítmica limitando el rango dinámico a alrededor de 60-80 dB). La figura muestra un espectro de energía mostrado en dB. Calculado con Matlab: 10 log10(abs(fft(hamming(512) .* sig)))


Para ilustrar el efecto del tamaño de ventana el análisis anterior se ha realizado con una longitud de ventana de 64. El lenguaje se representa en la figura siguiente que muestra que en la ventana de análisis se ha incluido menos de un punto de afinación. De aquí que no sea posible resolver los armónicos en la DFT, sino únicamente mostrar los patrones abiertos formantes del lenguaje.

La figura siguiente muestra una vocal extraído con una ventana de Hamming de longitud 64.


La siguiente figura muestra el espectro en amplitud utilizando una ventana de Hamming de longitud 64.


Superposición y suma para filtrado lineal
La DFT seguida por la DFT inversa consigue una reconstrucción exacta de la señal original. Esto proporciona una forma sencilla de implementar un filtro digital, como se muestra en las siguientes figuras:


El método de superposición y suma en el dominio temporal:


Ejemplo: resta espectral

Una señl de lenguaje, s, es perturbada por ruido aditivo, n. La señal combinada, s+n, es observada y se dispone de una estimación del espectro en amplitud del ruido, | N(ei) |. Una aproximación del espectro en amplitud de la señal original, viene dado por:


Es decir, la amplitud estimada de la señal a una frecuencia dada es la amplitud real de la señal más el ruido a esa frecuencia menos la amplitud estimada del ruido. La fase de la señal se supone que es la misma que la de la señal más el ruido. Esta modificación de la información en el dominio frecuencial puede insertarse en el esquema de superposición y suma, lo que nos lleva a la técnica llamada resta espectral. Hay bastantes problemas con este método.

  • Es bastante probable que la ecuación (39) de como resultado una estimación negativa de . Esto no es real y una solución sencilla puede ser poner tales valores a cero.
  • Invariablemente hay grandes diferencias entre | N(ei) | y . Si | N(ei) | >> entonces todavía hay un ruido considerable.
  • Todos los canales se procesan independientemente: a menudo esto lleva a un canal de un marco a tener falsamente una gran amplitud significante. La señal resultante tiene una corta explosión tonal y a este problema se le conoce como el de 'los tonos musicales'.

Se pueden añadir gran cantidad de truquitos a este método básico (en inglés tweaks), por ejemplo, la resta de una sobreestimación de la señalde ruido, o el uso de un filtro intermedio que facilite la supresión de los tonos musicales.
Análisis cepstral
El modelo de producción de lenguaje de filtrado de la fuente descompone la señal de lenguaje, sn, en una excitación, en, y un filtro lineal , H(ei). En el dominio frecuencial:


Se desea que H(ei) represente al envoltura del espectro de energía del lenguaje, y E(ei) que represente el detalle de la excitación.
Con una definición adecuada del logaritmo de un número complejo (log z = log |z| + i·arg{z}), lo anterior se puede indicar como:


En la mayoría de las aplicaciones de proceso de lenguaje, únicamente es necesaria el espectro de amplitud, por lo que la ecuación se puede escribir:


Los componentes del log(|S(ei)|) varían lentamente y se representan por las bajas frecuencias y los pequeños detalles por las altas frecuencias. De esta forma otra transformada de Fourier es la manera natural de separar los componentes de H(ei) y E(ei). Esto produce el análisis cepstral.


El resultado del análisis cepstral del anterior ejemplo práctico de la transformada de Fourier, es el siguiente:


Se puede observar que la mayoría de los cambios ocurren cerca del origen y en diferentes picos a lo largo del cepstro (cepstrum, en el original). Así los coeficientes con numeración más baja proporcionan la información de la envoltura. El resto está en su mayoría contenido en los picos, que se encuentran separados por el periodo de afinación (pitch period) - en este caso, alrededor de la muestra 70 - y proporcionan la información acerca de los detalles.

Una ampliación de algunas muestras aparece en la siguiente figura:


Filtrado homomórficos
El análisis cepstral proporciona un m´todo para separar la información del tracto vocal de la información de la excitación. De este modo la transformación contraria puede ser llevada a cabo para obtener un espectro de energía más suave. Este proceso se conoce como filtrado homomórfico y el resultado es el mostrado en la siguiente figura:


Análisis degún la escala mel
Todas las técnicas de análisis tratadas anteriormente enfatizan por igual todas las partes de la escala de frecuencias desde cero hasta la máxima frecuencia representable. Como ya se señaló anteriormente, a menudo es mejor utilizar una escala de frecuencias no lineal. Anteriormente se mostraba una aplicación práctica de la transformada de Fourier; en ella se presentaba un figura en la que aparecía un espectro de energía mostrado en dB. A continuación se muestra la misma figura, pero utilizando una escala mel:


Nótese que estos puntos solo muestran parte del espectro - recuérdese que la DFT es periódica. Transformar un gráfico como el anterior al dominio cepstral involucra reflejar la frecuencia cero o bien usar una Transformada Discreta de Coseno.
La autocorrelación de la FFT
Puede demostrarse que la transformada de Fourier del espectro de energía es la función de autocorrelación. En aplicaciones donde es necesaria la función de autocorrelación completa, puede ser más rápido usar este método que el cálculo directo. El resultado para el ejemplo de lenguaje se muestra a continuación: