oasys escribió:
Todas las funciones que he visto de FFT se le pasa un vector de números complejos con los datos de la onda y te devuelve otro del mismo tamaño en todo el rango de frecuencias, tantas como muestras tiene la onda. A partir del número imaginario se obtiene la amplitud de cada frecuencia.
Bueno, realmente no es así Tú le pasas como entrada un array de números reales, la onda muestreada, y te devuelve uno de complejos, su DFT. Es el módulo de cada complejo el que te da la amplitud en frecuencia, no sus partes real o imaginaria por separado.
oasys escribió:
Supongo que el número real, que no uso, es el que sirve para reconstruir la onda en el tiempo. Pero no de cada frecuencia o armónico, si no como un todo.
Así que supongo que la solución sería realizar el mismo cálculo pero solo sobre cada frecuencia individual por separado, y obtener su envolvente a partir del número real.
No, no. Necesitas comprender las matemáticas implicadas si quieres hacer algo con esto, simplemente suponer cosas y aplicar las librerías a ciegas no te va a llevar a ningún sitio (útil).
Aparte, para lo que quieres, insistimos, necesitas ventanear la entrada. Como veo que esto es algo que te confunde, mañana si tengo tiempo postearé algo de código para que veas en qué consiste más claramente.
oasys escribió:
Pero también sería problemático porque como se ha comentado no existen frecuencias puras, por lo que habría que calcular muchísimas para encontrar las de mayor amplitud. Así que habría que hacer cálculos previos para buscar las frecuencias más probables o vete a saber.
Vamos... que es demasiado embrollo.
No, no. Mañana si tengo tiempo, o el domingo, postearé código usando la técnica para obtener algo parecido a lo que buscas, para que lo veas con más claridad. No es tan embrollado para nada, es simplemente que tienes un lío considerable