Red de conocimiento informático - Consumibles informáticos - Introducción a los algoritmos de audio: transformada de Fourier

Introducción a los algoritmos de audio: transformada de Fourier

En el artículo anterior, hablamos de wsola, un algoritmo de procesamiento en el dominio del tiempo. A continuación, aprenderemos el algoritmo de procesamiento en el dominio de la frecuencia. Antes de eso, debemos tener algunos conocimientos sobre el dominio de la frecuencia. Para ser mencionado por la transformada de Fourier, el propósito de este artículo es permitir que todos aprendan a usar la fórmula de la transformada de Fourier y la fórmula de la transformada de Fourier inversa para realizar cálculos. Las fórmulas matemáticas son descripciones de los fenómenos del mundo que hace la gente. Cuando aprendemos fórmulas matemáticas, no debemos detenernos en el nivel de usar fórmulas para resolver problemas. Debemos comprender qué fenómenos describen las fórmulas y ver el mundo desde la perspectiva de estos genios. matemáticos. Puedes saltarte lo que entiendes. La dirección del proyecto se encuentra al final del artículo.

Déjame decirte la conclusión directamente. La fórmula de la serie de Fourier incluye la transformada de Fourier y la transformada de Fourier inversa (esto no es estrictamente hablando).

Hablemos brevemente de la relación específica. El matemático francés Fourier descubrió que cualquier función periódica puede representarse mediante una serie infinita compuesta de funciones seno y funciones coseno. Esta representación es el número de nivel de Fourier. Si hay una función periódica con una forma de onda relativamente compleja, entonces el método para encontrar las frecuencias de las funciones seno y coseno que se pueden usar para formar esta función periódica se llama transformada de Fourier. La superposición de las funciones seno y coseno de estas frecuencias. se utiliza para representar esto. El método de funciones periódicas se llama transformada de Fourier inversa.

Veamos su relación desde la fórmula. Primero, presentaremos qué es la serie de Fourier. En primer lugar, la serie se refiere a una función que conecta los elementos de la secuencia con un signo más. Quizás no entiendas esto. Por ejemplo: e^x=1+x/1!+x^2/2!+...x^n/n!...., el lado izquierdo del signo igual es el. función exponencial, el lado derecho del signo igual es la serie. La fórmula de la serie de Fourier es la siguiente:

Observamos principalmente la fórmula de la serie de Fourier en forma exponencial Eliminamos el signo de suma y lo expandimos a f(t)=Fa*e^jaω0t+Fb *e^. jbω0t+Fc*e^jcω0t+Fd*e^jdω0.... Ahora mire el diagrama de efecto de superposición de funciones periódicas a continuación. La imagen muestra las imágenes de tres funciones periódicas en los ejes de coordenadas (tiempo del eje horizontal, amplitud del eje vertical). Escrita en forma de serie de Fourier es f (t) = fa (t) +. fb(t)+0...., este es el fenómeno que describe la fórmula de la serie de Fourier. Entre ellos, Fa*e^jaω0t=fa(t), Fb*e^jbω0t=fb(t), Fc*e^jcω0t=0....

Si observa las fórmulas de la transformada de Fourier y la transformación inversa en la siguiente figura, encontrará que la fórmula de la transformada inversa de Fourier es muy similar a la fórmula de la serie de Fourier, y la fórmula del coeficiente de la serie de Fourier Fn es la misma que La fórmula de la transformada de Fourier es muy similar. Por lo tanto, el proceso de expansión en serie de Fourier de una función periódica puede considerarse como el proceso de realizar primero la transformada de Fourier y luego realizar la transformada de Fourier inversa.

La imagen de arriba es la fórmula de la transformada de Fourier, también llamada fórmula de la transformada de Fourier continua. Una cosa muy importante es que la fórmula de la transformada de Fourier y la fórmula de la transformada inversa deben darse juntas, de lo contrario será engañosa. Verá varias formas de escribir en Internet, pero todas son correctas. Las más comunes son las que se muestran en la siguiente imagen.

Para facilitar la explicación posterior, cambié la frecuencia angular ω a 2πf. Como se muestra en la imagen de arriba, ω es una letra griega que se pronuncia Omega. La mayúscula es Ω y la minúscula es. ω. En el futuro, se verá a menudo que estas dos letras son iguales a 2πf. No te confundas con la unidad de resistencia en la electricidad. Debes entender que una letra es solo un símbolo y se usa indistintamente en diferentes áreas temáticas, siempre y cuando no entre en conflicto con otras letras en tu propia fórmula. la fórmula de la transformada de Fourier anterior. La j en es en realidad la unidad imaginaria i. Por lo general, escribiremos la unidad imaginaria como i, pero debido a que la transformada de Fourier se usa a menudo para resolver algunos problemas en electricidad, no debe confundirse con el símbolo actual. i, la fórmula escribe i como j.

Para comprender la fórmula de la transformada de Fourier, primero debes comprender el significado de la fórmula de Euler e^ix=cosx+isinx en la imagen. Tome el valor de la parte real cosx como valor de abscisa, el valor de la parte imaginaria sinx como valor de ordenada y el valor de x varía desde infinito negativo hasta infinito positivo. Después de dibujar todos los puntos e^ix, encontrará. que estos puntos formarán un círculo A con período 2π.

Como se muestra en la Figura 1 a continuación (si no lo comprende, se recomienda ver el video de 3Blue1Brown, enlace del video: /video/BV1pW411J7s8)

Entonces, la fórmula e^ix de Euler en realidad cambia en el sistema de coordenadas como x aumenta En el proceso de dibujar un círculo en sentido antihorario, entonces e^-ix significa dibujar un círculo en el sentido de las agujas del reloj, y e^-i2πx significa que la velocidad de dibujar un círculo aumenta 2π veces. En otras palabras, el proceso de dibujar x desde. 0 a 1 es dibujar un círculo en el sentido de las agujas del reloj. El proceso de un círculo completo (por supuesto, x puede dibujar un círculo completo de 1 a 2 o de 2 a 3, etc.), después de reemplazar x con t, e ^ -i2πt significa que Se dibujará un círculo en el sentido de las agujas del reloj cada segundo. e^-i2πft significa que f círculos se dibujarán en el sentido de las agujas del reloj cada segundo. f(t) representa la amplitud en el tiempo t, y la función f(t) se dibuja como un diagrama de forma de onda en el dominio del tiempo. f(t)*e^-i2πft significa que f círculos se dibujarán en el sentido de las agujas del reloj cada segundo y, mientras se dibujan los círculos, el radio del círculo en el momento t debe multiplicarse por la amplitud en el momento t, que en realidad es la frecuencia de audio. por segundo, los datos de amplitud se rotan alrededor de la velocidad del círculo f (para facilitar la comprensión, no se utilizan datos de audio complejos. Se utiliza un experimento que utiliza un audio de onda sinusoidal con una frecuencia de 3. Consulte la Figura 2 a continuación. La parte superior de la figura es el diagrama de forma de onda en el dominio del tiempo. La esquina inferior izquierda del diagrama es un diagrama dibujado en el sistema de coordenadas compuesto por la parte real y la parte imaginaria usando la fórmula f(t)*e^-i2πft cuando. f es igual a 0,4. La esquina inferior derecha del diagrama es el espectrograma. La abscisa es la frecuencia, la ordenada es la amplitud y el valor de la amplitud es el doble de la distancia desde el centroide del patrón formado por el. datos en la esquina inferior izquierda (el punto rojo en la figura) hasta el origen del sistema de coordenadas). Al cambiar el valor de f, encontrará que la mayoría de las veces los datos son lo que pensamos, rodeando el origen del sistema de coordenadas como centro, es decir, la amplitud siempre es 0, pero cuando el valor de f es, es el número de revoluciones por segundo. Cuando es igual a la frecuencia de los datos de audio, encontrará un fenómeno mágico, es decir, todos los datos formarán un círculo en un lado del eje de coordenadas real o imaginario (como se muestra en Figura 3 a continuación, para que conozca este párrafo Los datos de audio contienen una onda sinusoidal con frecuencia 3 y amplitud 0,5). Por lo tanto, al utilizar la fórmula de Fourier para los datos de audio que se superponen con múltiples ondas sinusoidales y atravesar f desde el infinito negativo hasta el infinito positivo, puede encontrar todas las ondas sinusoidales contenidas en los datos de audio una por una. (Si no lo entiende, se recomienda ver el video de 3Blue1Brown, enlace de video: /video/BV1pW411J7s8)

Generalmente hablamos del procesamiento de audio mediante transformada de Fourier, pero en realidad estamos hablando de procesamiento de audio de corto tiempo. transformada discreta de Fourier. La fórmula de la transformada de Fourier discreta de corto tiempo (que también se puede llamar directamente fórmula de transformada de Fourier discreta) es la siguiente.

A continuación le enseñaremos cómo entender esta fórmula. Hay dos razones por las que no podemos utilizar la fórmula de transformada continua de Fourier mencionada anteriormente. El primer requisito es que el tiempo de los datos de audio sea desde infinito negativo hasta infinito positivo, y el segundo requisito es que cualquier tiempo t debe tener un valor de amplitud x. (t) se puede sustituir en la fórmula de cálculo. Entonces, para resolver estos dos problemas, la fórmula se cambia a una fórmula de transformación de Fourier discreta y de tiempo corto. Esta fórmula puede transformar de Fourier los datos de audio discretos (con N datos de muestra) durante un período de tiempo (se supone que el tiempo es). Ts segundos). transformación de la hoja. Puede entender la fórmula de la transformada de Fourier discreta como una deformación de la transformada de Fourier continua. El punto más importante es que f en la fórmula de la transformada de Fourier continua y k en la fórmula de la transformada de Fourier discreta tienen significados diferentes. . Por lo tanto, la fórmula de la transformada discreta de Fourier también se puede escribir como F(f)=1/n*∑f(t)*e^-j2πf*Ts*n/N, donde Ts*n/N corresponde a la transformada continua de Fourier. Transforma la t de la fórmula, pero esta t no se puede elegir en ningún momento. El valor de t pasa a ser un punto de tiempo discreto con el valor de n, por lo que el coeficiente anterior cambia de 1/2π a 1/N. De esta forma, las dos fórmulas se corresponden entre sí. Esta fórmula se describe con más detalle a continuación.

El párrafo anterior decía k=f*Ts. Permítanme explicar por qué en este párrafo, de hecho, k en la fórmula de transformada discreta de Fourier representa el círculo de datos de audio de Ts segundos alrededor del origen de la coordenada. número del sistema, por lo que k no es la frecuencia f en la fórmula de transformada continua de Fourier, y la frecuencia f se refiere al número de oscilaciones en un segundo, la frecuencia f también corresponde al número de círculos de datos de audio en. un segundo, entonces La frecuencia real f=k/Ts.

Algunas personas pueden sentir curiosidad: ¿por qué no sustituir la variable independiente k en la fórmula de la transformada discreta de Fourier por f? Será más fácil de entender, pero no es necesario. Si usas f, tendrás que hacer una conversión inútil. Debido a que solo hay N puntos de muestreo, el rango de valores de k es limitado. El rango de valores de k solo puede ser un número entero de 0 a N-1. Es por eso que k se usa como variable independiente en lugar de f.

Otros pueden sentir curiosidad por saber cómo la transformada inversa de Fourier restaura la información del dominio de la frecuencia al dominio del tiempo. De hecho, F (k) calculado por la fórmula es un número complejo, y este número complejo incluye esta información. sobre la amplitud y fase de la función periódica de la frecuencia, suponiendo F(k)=a+ib, el módulo de F(k) |F(k)|=(a^2+b^2)^1/2 , frecuencia La amplitud cuando f=k/Ts es |F(k)|*2 (porque el valor calculado es equivalente al centro del círculo, pero de hecho la amplitud es la distancia desde el punto más alejado del círculo desde el centro al origen de coordenadas, por lo que debe multiplicarse por 2), la fase en la frecuencia f=k/Ts es arctan(b/a). Entonces, si sabe qué frecuencias de funciones periódicas contiene una función periódica y conoce la amplitud y fase de estas funciones periódicas, puede superponer fa(t) y fb(t) y restaurar f nuevamente a f como se muestra a continuación (t). ). El método de la transformada inversa de Fourier es ligeramente diferente, pero el significado es el siguiente. Después de comprender el cálculo de la fórmula de la transformada discreta de Fourier, la transformada inversa en realidad casi se sustituye en el cálculo numérico. (Si no comprende cómo utilizar la fórmula de la transformada discreta de Fourier para calcular, se recomienda ver el video. El proceso de cálculo completo de la transformada discreta de Fourier se incluye en el video. Enlace del video: /zvideo/1276595628009377792)

Transformada Rápida de Fourier Se recomienda ver los siguientes dos vídeos para la transformación

/video/BV1za411F76U

/video/BV1Jh411d7CN

A continuación se muestra la transformada discreta de Fourier y la inversa que implementé usando la transformada Java y la transformada rápida de Fourier y la transformada inversa. Se puede ver en su tiempo de ejecución que la transformada rápida de Fourier es mucho más rápida. (Después de aprender la transformada rápida de Fourier, piense por qué el espectro es simétrico en el eje Y. ¿Por qué N/2 es simétrico?)