Primero, aclaremos qué es la Transformada de Fourier rápida y por qué desea usarla. Las matemáticas se tratan de frecuencias. La transformada de Fourier es un método para distinguir ondas más pequeñas en una onda compleja. Eso sonaba complejo; cuando escuchas música, escuchas muchas notas diferentes del cantante, instrumentos, etc. Como seres humanos, a menudo podemos escuchar la guitarra por sí sola, pero si intentamos distinguirla con tecnología en una grabación, nos encontramos con problemas. La tecnología moderna puede hacerlo, gracias a las diferentes encarnaciones de las ecuaciones básicas de Fourier que se desarrollaron a lo largo de los años. Los usos modernos de la serie Fourier son la compresión de imágenes y video, los escáneres GPS y MRI. Todo esto hace una aproximación de la fuente y utiliza la serie de Fourier para ahorrar memoria y obtener resultados más rápidos.
El matemático Jean-Baptiste Joseph Fourier estaba tratando de resolver la ecuación del calor para poder calcular cómo se propaga el calor en la materia sólida. Lo que se le ocurrió fue mucho más útil que eso, aunque sus métodos se mejoraron más tarde a una versión más formal. Las ecuaciones ahora se utilizan en una amplia gama de campos.
Para seleccionar una frecuencia específica en una señal compleja, puede utilizar algunos cálculos, las transformadas rápidas de Fourier. La base matemática para esto requiere algo de práctica. Khan Academy es un buen lugar para aprender matemáticas.
Cuando necesite analizar cualquier onda, puede usar funciones sinusoidales para aproximar la onda total y obtener todas las señales separadas de la onda mixta. O viceversa, puede hacer una onda compleja a partir de varias ondas sinusoidales. Esta es la idea básica detrás de las matemáticas.
Para comprender mejor sus transformadas de Fourier, una buena práctica es escribirlas usted mismo. En Scilab tienes un lenguaje de programación sencillo diseñado con énfasis en matemáticas.
Las diferentes tareas que necesitará Las transformadas de Fourier comienzan con la búsqueda de los coeficientes de una transformada. La razón es que esto es lo que se usa para la compresión de imágenes y muchos otros procesos.
Cuando aprendes los conceptos básicos de la serie, lo primero que se usa son los coeficientes. Las ecuaciones son así:
El código para resolverlos es bastante simple, comienza con una función. Esta función implementa la Transformada de Fourier en pequeñas piezas.
Para definir una función, usa la construcción obvia de 'función'. A continuación se muestra una serie de Fourier para una onda cuadrada:
y = 4 * sin (t) / 1 *% pi + 4 * sin (3 * t) / 3 *% pi + 4 * sin (5 * t) / 5 *% pi + 4 * sin (7 * t) / 7 *% pi
+ 4 * sin (9 * t) / 9 *% pi
función final
Para hacer la onda aún más cuadrada, es una aproximación después de todo, necesitas seguir aumentando el número de términos. Cuando busca recrear un patrón, digamos una caricatura, usa la transformada de Fourier de una manera muy similar. Solo necesitas considerar el período como infinito.
Derecho simple? Bueno, no sin los conocimientos básicos de matemáticas. Pruebe algunos ejemplos usted mismo, usando scilab.
Este ejemplo muestra la combinación de señales más simple posible; dos señales de diferente frecuencia.
// Elija un tamaño de muestraN = 100;
// Establecer la secuencia, esto crea la matriz
n = 0: N-1;
// Crea la frecuencia de las señales
w1 =% pi / 4
w2 =% pi / 8
// Hacer las señales muestreadas
s1 = cos (w1 * n); // El primer componente de la señal
s2 = cos (w2 * n); // El segundo componente de la señal
// Combina los dos en una sola señal
// En este caso hacemos una señal limpia simple.
f = s1 + s2;
// Aquí está la señal resultante lista para transformar.
figura (0);
parcela (f);
// La transformada de Fourier de esta señal debe mostrar solo la frecuencia de los componentes.
F = fft (f);
F_abs = abs (F);
Figura 1);
plot (n, F_abs);
Figura 2);
trama (F);
Utilice el ejemplo anterior para practicar cómo funciona la transformación. Asegúrese de cambiarlo para filtrar de diferentes maneras.
Un consejo es usar la consola Scilab para ver qué contienen las variables en cada paso del programa, de esta manera también puedes ver que 'F' tiene un contenido imaginario. Intente cambiar äfä de otra manera para obtener un resultado más correcto.
En la industria, el uso más común de las transformadas de Fourier es para analizar señales. Para filtrar las frecuencias de una señal ruidosa, debe comenzar con la creación o la importación de una señal. El siguiente fragmento de código crea una señal mixta de dos frecuencias, 50 y 70 hz. En el código también puede ver el uso de 'grand', esta es la llamada de scilab a random. Estos valores aleatorios se agregan para hacer que la señal sea un poco más ruidosa, más cercana a la realidad.
sample_rate = 1000;t = 0: 1 / sample_rate: 0.6;
N = tamaño (t, '*'); //número de muestras
s = sin (2 *% pi * 50 * t) + sin (2 *% pi * 70 * t +% pi / 4) + grand (1, N, 'nor', 0,1);
Ahora, puede trazar 's' como una función de 't' y ver que el gráfico se ve desordenado.
>> trama (t, s);
Aquí, es hora de probar la más simple de las transformadas de Fourier, hacer 'y' la transformada de Fourier de s.
y = fft (s);fft
Si traza 'y' en función de 't', obtiene un patrón algo simétrico que va de 0 a 0.6. Los dos picos son lo que estamos buscando, pero ahora los estamos viendo en el dominio del tiempo. Lo que realmente sucedió fue que el resultado aún contenía los valores imaginarios. Para encontrar las dos frecuencias en el dominio de la frecuencia, necesitamos algunas operaciones más para encontrar solo los números reales. Y luego tomas el valor absoluto de los resultados. El gráfico señala claramente las frecuencias originales.
Aquí está el código:
// s es real, por lo que la respuesta fft es simétrica conjugada y retenemos solo la primeraN / 2 puntos
f = tasa_muestra * (0: (N / 2)) / N; // vector de frecuencia asociado
n = tamaño (f, '*')
clf ()
trama (f, absy (1: n)))
Este es el uso más común de la transformada de Fourier. Con este sistema puede encontrar cualquier frecuencia en una señal compleja y ruidosa. Las ecuaciones se utilizan ampliamente en muchas industrias en la actualidad.
La función fft2 de Scilab es la versión bidimensional de la transformación rápida de Fourier.
Una excelente manera de practicar es elegir los tonos DTMF, presionar un botón y hacer que scilab descubra la clave correcta.
Las demostraciones en Scilab en sí contienen un escaparate de archivos de sonido, estúdialo.
Si desea profundizar, aquí hay algunos enlaces para leer más.
Literatura avanzada:
https: // cnx.org / contents / [email protected] / Implementing-FFTs-in-Practice # uid8
Wolfram ..
http: // demostraciones.wolfram.com / ComplexAndRealPlanesOfDiscreteFourierTransforms /
Implementando en otros idiomas:
https: // www.nayuki.io / page / cómo-implementar-la-transformada-discreta-de-Fourier
Para tener la sensación correcta del sujeto:
https: // mejor explicado.com / articles / an-interactive-guide-to-the-fourier-transform /