Eu sou um engenheiro químico, não um EE, então isso é um pouco difícil.
Estou tentando descobrir como obter dados de amplitude versus tempo e transformá-los em frequência versus tempo. Meu primeiro instinto é dividir meus dados em partes, executar a FFT em cada parte e depois traçar isso. Infelizmente, como o tempo de duração de cada fatia se aproxima de zero, não há mais informações suficientes para obter informações precisas sobre a frequência (frequências baixas exigem mais do que uma fatia muito pequena). Então ... como eu faço isso? Tenho certeza de que esse é algum tipo de problema famoso que alguém já resolveu.
Aqui está o tipo de transformação que estou procurando, ilustrada com uma onda sonora (nota de piano G). Como você pode ver, este gráfico tem três eixos, com o terceiro sendo representado pela cor.
Obrigado!
fonte
Sim, muitas pessoas trabalharam na análise de frequência do tempo.
A abordagem de "dividir meus dados em partes, executar a FFT em cada parte" é uma boa idéia. A aplicação de uma "função de janela" em cada parte, imediatamente antes de executar a FFT, ajuda a evitar muitos artefatos. Permitir que os pedaços se sobreponham também ajuda. Após esses ajustes, você acaba com a transformação Gabor , que parece ser a transformada de Fourier (STFT) de curto prazo mais popular.
Como você já apontou, e como o artigo da Wikipedia aponta, todas as técnicas de transformação de Fourier de curto prazo têm uma desvantagem:
Este é um problema famoso, mas, infelizmente, não só não foi resolvido, como ficou provado que a incerteza entre os dois é inevitável - o limite de Gabor, o limite de Heisenberg-Gabor, o princípio da incerteza etc.
Se eu fosse você, começaria com uma das muitas bibliotecas disponíveis para calcular a transformação de Gabor e experimentaria cortar a série temporal em vários comprimentos. Há uma boa chance de que bonito você vai ter sorte e você vai acabar com algum comprimento que dá adequada localização tempo e adequada discriminação de frequências.
Se isso não funcionar para esta aplicação, então eu gostaria de passar para outras abordagens para a representação tempo-freqüência e análise tempo-freqüência - transformadas wavelet, transforma chirplet , fractional transformada de Fourier (FRFT), etc.
EDIT: Algum código fonte para gerar espectrogramas / gráficos em cascata a partir de dados de áudio:
A imagem no espectrograma vai na direção inversa dos utilitários acima.
fonte