Como comentei em um post anterior, o método de análise de frequência e tempo conhecido como "transformada de Fourier de curto prazo" é equivalente a um banco de filtros, analisando seu sinal . Para uma determinada janela de análise , do tamanho , o filtro na frequência é:
x w n N k / N h n = w - n e j 2 π n kXxWnNk / N
hn= w- nej 2 πn kN
Para janelas de análise usuais (Hann, Hamming ou mesmo retângulo), isso corresponde a um filtro passa-baixo, com frequência de corte em torno de , que é "deslocado" para a faixa de frequência (graças à modulação exponencial complexa) , portanto, levando a um filtro passa-banda.k1 / Nk
Nesse ponto, para responder diretamente à sua preocupação em refletir a percepção humana, algumas pessoas derivaram a ["transformação Q constante" (CQT)] [Brown91]. Baseia-se no mesmo princípio que o FT, na sua interpretação do banco de filtros. No entanto, os centros não são espaçados linearmente quanto a um TF "normal", mas sim espaçados log2. A escala é então intimamente relacionada a uma escala musical ocidental: se alguém escolhe , obtemos 12 frequências por oitava (toca uma campainha? :-)) e a a largura de banda está configurada para, digamos, . Você também pode escolher outros centros, conforme a sua necessidade.f k + 1 = 2 1 / 12 f k 2 1 / 12 - 1fkfk + 1= 21 / 12fk21 / 12- 12fk
Você pode encontrar implementações do CQT aqui e ali, uma recente do Prof. Klapuri, que vem com um inverso bastante decente, pode ser encontrada aqui . O grupo de áudio da Telecom ParisTech também possui uma implementação do Prof. Prado, mas ainda não o testei.
[Brown91] J. Brown, "Cálculo de uma constante transformação espectral Q", Jornal da Sociedade Acústica da América, 1991, 89, 425, 425-434
EDIT 20121014: algumas respostas e comentários às suas perguntas (do bryhoyt).
Apenas idéias gerais sobre seus próprios comentários à pergunta principal: você parece estar interessado em muitas aplicações que, para mim, não são problemas triviais de resolver. A "modelagem timbrada" me parece mais relacionada ao reconhecimento de fala ou algo semelhante, para o qual a resolução ou precisão do tom ou da frequência não é um problema (considere como as MFCCs são geralmente calculadas).
Considere também quantos pesquisadores de ponta ( F. Pachet e a equipe de repmus do IRCAM, França , para citar alguns) estão trabalhando no tópico de improvisação e acompanhamento automáticos: a tarefa não é impossível, mas requer conhecimento em muitas áreas. Para resumir, um sistema típico precisa imitar o sistema auditivo humano (pelo menos), implementar a percepção de som / música / afinação / ritmo, conhecer a teoria musical e tomar decisões com base nas estimativas de todas as etapas anteriores. A transformação de Fourier, ou qualquer representação de sinal, é apenas um (minúsculo) passo em direção ao objetivo final - e potencialmente, na minha opinião, o melhor compreendido até agora.
Dito isto, ainda há a possibilidade de que todos estejam olhando muito além do que realmente acontece, e que você possa reprimi-lo em uma solução simples e elegante! Não se esqueça de publicar sobre isso assim que estiver pronto! :-)
uma amostra de 0,1s a 44kHz é suficiente para conter uma vasta gama de frequências
Isso levaria, no caso do FT, a uma resolução da ordem de , em todos os compartimentos de frequência do FT. São quase 2 semitons a 100Hz! Poderia ser melhor...Fs/ N= 44100 / 4410 = 10 Hz
A FFT não pode detectar isso para frequências baixas e altas, mas você diz que outros algoritmos podem: qual é o problema?
Resposta curta: leia minha tese sobre estimativa de melodia!
Para elaborar um pouco mais: muitos algoritmos de estimativa de afinação vão além das limitações do TF, graças a suposições sobre os sons a serem processados. Esperamos que as notas dos sons naturais (voz humana, oboé, sax, piano ...) sejam mais complexas que os sinusóides isolados. A maioria dos sons agudos é mais ou menos harmônica, o que significa que eles podem ser modelados como somas de sinusóides cuja frequência é um múltiplo da frequência fundamental.
Portanto, é útil levar em consideração esses harmônicos ao estimar o tom, com métodos que usam funções de detecção como somas espectrais, produtos espectrais ou funções de autocorrelação. Alguém iniciou um tópico relacionado recentemente.
Quais são as compensações? Mais especificamente, que nível de precisão de frequência posso esperar para uma janela razoavelmente curta? (Entendo que o tamanho da janela no CQT é variável - quanto?) Ainda mais especificamente, até que ponto poderei chegar ao meu aprox. objetivo de 0,5% de diferença de frequência com uma janela de 0,005s?
Como dito anteriormente, com uma janela de 0,005s, você pode esperar algo como 200Hz de "vazamento de frequência". Isso é realmente um problema apenas quando você tem 2 sinusóides com frequências inferiores a 200Hz, de modo que o FT não será capaz de mostrar que são 2 sinusóides diferentes. Bem, estamos longe dos seus 0,5% (a propósito, um semitom está em 6% da frequência!) E 0,005s é realmente um pouco pequeno para o seu propósito. No entanto, se você quiser fornecer uma estimativa a cada 0,005s, ainda poderá processar quadros sobrepostos mais longos, como geralmente feito no processamento de fala / música. É isso que você realmente quer?
Quanto ao tamanho das janelas, você pode consultar [Schoerkhuber2010], com comprimentos de quadro iguais a:
que é o número de frequência caixas por oitava desejadas para o CQT. Isso significa muito longo janelas: e requerem cerca de 0,7s longas janelas. Não é nada dizer que perdemos um pouco da resolução temporal ... Mas, como mencionado anteriormente, isso é um problema apenas se esquecermos a estrutura do som. Além disso, a psicoacústica considera que abaixo de 500Hz, os seres humanos realmente não distinguem tão bem os sinusóides: até os humanos são desafiados por lá. Obviamente, podemos esperar que nossos computadores possam fazer melhor do que nós, mas aqui enfrentamos um problema difícil!
Nk= Fsfk( 21 / B- 1 )
BB = 48fk= 100 Hz
Por fim, observe que existem outras formas de calcular uma representação de som no tempo, considerando, por exemplo, bancos de filtros de gammatona. A vantagem do CQT que mencionei anteriormente é que há software para a transformação e seu inverso. Pessoalmente, continuo atento ao STFT, por sua simplicidade e porque, até agora, nunca precisei de uma melhor resolução em baixas frequências, mesmo para a separação de fontes.
[Schoerkhuber2010] Schoerkhuber, C. e Klapuri, A., "Caixa de ferramentas de transformação Constant-Q para processamento de música", 7ª Conferência sobre Computação em Som e Música, Barcelona, Espanha, 2010.