A mesma nota, um som diferente: a medição que eu errei de início
Três formas de onda a 528 Hz correspondem à mesma nota, mas não soam nem um pouco parecidas. Ao investigar o motivo, descobri um número que não deveria existir, e minha primeira tentativa de medi-lo estava errada.
Toque uma onda senoidal e uma onda quadrada na mesma frequência e ninguém vai confundi-las. Uma é suave, a outra é áspera. No entanto, se você perguntar a um instrumento qual nota está sendo tocada, ele dará a mesma resposta nas duas vezes.
Essa discrepância é o cerne da questão. Ela também me levou a um número que, segundo a teoria, não deveria estar lá de forma alguma — e minha primeira medição desse número estava errada, de uma maneira que vale a pena mostrar, em vez de corrigir discretamente.
A nota não é o som
Crie três formas de onda a 528 Hz em Python — uma senoidal, uma quadrada e uma triangular — e execute uma FFT em cada uma delas. Todas as três apresentam uma frequência fundamental de 528,00 Hz. Em termos de nota musical, elas são idênticas.
O que difere é tudo o que está acima da frequência fundamental. Uma onda repetitiva pode ser representada como uma sobreposição de ondas senoidais simples em múltiplos inteiros dessa frequência fundamental. Esses múltiplos são harmônicos, e quais deles estão presentes, e em que nível, é o que seu ouvido interpreta como timbre.
Para uma onda quadrada, a regra é antiga e específica: apenas os múltiplos ímpares sobrevivem, e cada um deles carrega uma fração da amplitude da fundamental igual a um dividido pelo seu próprio número. Um terço da amplitude na terceira harmônica. Um quinto na quinta.
Medido no meu próprio arquivo:
| Harmonic | Predicted | Measured |
|---|---|---|
| 3rd | −9.5 dB | −9.5 dB |
| 5th | −14.0 dB | −14.0 dB |
| 7th | −16.9 dB | −16.9 dB |
| 9th | −19.1 dB | −19.1 dB |
A regra se aplica até a casa decimal. Essa é a parte fácil.
O número que deveria ter sido zero
A mesma regra diz que os harmônicos pares devem estar totalmente ausentes. Não apenas reduzidos. Ausentes.
Elas não estão ausentes. A segunda harmônica está 75,9 dB abaixo da fundamental — cerca de uma parte em seis mil. Minúscula, inaudível e diferente de zero. A teoria dizia que era zero.
O suspeito óbvio é o instrumento de medição. Mas não é isso: ao realizar a mesma medição em um sinal senoidal puro, o mesmo intervalo apresenta uma leitura 238 dB abaixo, o que nada mais é do que o ruído aritmético dos próprios números. O instrumento é capaz de detectar valores muito menores do que esse.
A resposta correta é que a onda quadrada amostrada não se repete a 528 Hz de forma alguma.
Calcule o maior divisor comum entre a frequência e a taxa de amostragem: gcd(528, 44100) = 12. O padrão de amostras só se repete cerca de doze vezes por segundo; portanto, o que a transformada percebe não é uma série harmônica pura, mas um pente com uma linha a cada 12 Hz. Algumas dessas linhas do pente ficam próximas de onde um harmônico estaria, e uma delas é a que aparece no intervalo par.
Onde eu errei
Essa é a parte em que o vídeo se detém por mais tempo, pois é a parte que a maioria dos canais cortaria.
Minha primeira medição dessa harmônica parita resultou em −67,3 dB, e eu anotei esse valor como resposta.
Não era essa a resposta. Eu havia procurado o pico dentro de uma janela com largura de aproximadamente ±14 Hz em torno da frequência esperada, pensando que uma pequena tolerância seria aceitável. Mas as linhas do pente estão separadas por 12 Hz. Uma janela tão ampla certamente conteria uma linha de pente vizinha, e essa linha era mais intensa do que o harmônico que eu realmente buscava. A medição registrou fielmente o sinal mais intenso na janela, e eu o confundi com o que eu estava procurando.
O valor correto, medido exatamente nesse intervalo, em vez do som mais alto próximo a ele, é de −75,9 dB. Oito decibéis e meio mais baixo do que o que eu havia publicado inicialmente para mim mesmo.
A lição vai além deste arquivo: uma janela de tolerância não é ilimitada. Alargá-la por precaução aumenta a probabilidade de que a medição responda a uma pergunta diferente daquela que você fez. Se você for tirar uma lição prática deste artigo, que seja essa.
Ao ampliar a janela, descobri algo ainda pior
Quando deixei de confiar na interpretação restrita e passei a considerar todo o espectro, surgiu um artefato mais significativo, que não tem nada a ver com as linhas de pente.
Uma onda quadrada possui harmônicos infinitos. Tudo acima da metade da taxa de amostragem não pode ser representado e volta a se situar na faixa audível. Em uma nota mais aguda, é possível perceber isso sem precisar de nenhuma análise: gere uma onda quadrada a 3.000 Hz e você ouvirá um tom grave por baixo que não faz parte da nota. Esse é o décimo quinto harmônico, a 45 kHz, que se dobra de volta para 900 Hz — duas oitavas abaixo do que está sendo tocado.
De volta aos 528 Hz, a dobra mais intensa fica em −33 dB. Isso representa quarenta decibéis acima do artefato harmônico par que eu vinha procurando. O que eu chamava de artefato não era o mais significativo.
Dois testes confirmam que se trata de uma dobra e não de outra coisa:
Ao dobrar a taxa de amostragem, os picos caem seis decibéis, sempre. −33, −39, −45, −51. Não é sorte: a primeira harmônica que não cabe mais na frequência duplica seu valor, e uma harmônica com frequência duas vezes maior é seis decibéis mais fraca, de acordo com a mesma regra de “um sobre n”.
Construa a mesma forma a partir de senos que se encaixem perfeitamente — sem séries infinitas, sem borda que cause aliasing — e o nível cai para 236 dB abaixo, voltando ao ruído aritmético.
Três coisas que o timbre não é
Não é a nota. Todas as três formas têm 528,00 Hz. Pergunte ao instrumento o que está tocando e ele responde a mesma coisa três vezes.
Não é a intensidade sonora. Quando geradas com a mesma altura de pico, a onda quadrada carrega cerca de 3 dB a mais de energia do que a senoidal. Isso é verdade, mas trata-se de uma diferença no fator de crista — o quão compactamente a mesma energia se concentra em torno do pico — e não uma evidência de que os harmônicos aumentem a intensidade sonora. Se compararmos as duas em termos de energia, a própria fundamental da onda quadrada fica cerca de 1 dB abaixo da do seno: a mesma energia, distribuída em mais degraus.
Não se trata de qualidade. Nenhuma forma aqui é mais rica, mais pura ou melhor para você. O que medimos foi uma distribuição de energia ao longo de uma escada — seis números para o quadrado, seis números diferentes para o triângulo, a mesma nota subjacente a ambos. Essa é uma descrição completa de um tom constante, e é toda a afirmação que a física sustenta. Um instrumento real também muda enquanto é tocado, o que é uma questão à parte.
Experimente e leia o conteúdo exato do contêiner
Quatro linhas. Construa uma linha reta a 528 Hz com 44.100 amostras por segundo, calcule sua FFT e leia o nível na frequência três vezes maior que a fundamental e, em seguida, na frequência duas vezes maior.
Leia o bin exato, não o valor mais alto próximo a ele, ou você cometerá o mesmo erro que eu. Você deve encontrar −9,5 dB no bin ímpar e cerca de 76 dB a menos no bin par.
Em seguida, altere a frequência e execute novamente. O valor −9,5 não se alterará, em nenhum ponto entre 100 Hz e 1.000 Hz, pois trata-se de uma lei. O número par vai se mover, e você pode prever para onde antes de executar o programa: calcule o máximo divisor comum entre sua frequência e 44.100; esse valor representa o espaçamento de tudo o que a grade de amostragem acrescenta.
Ambas as correções acima constam na versão publicada do vídeo. Publicar o número errado ao lado do correto não é modéstia; é a única maneira de uma afirmação sobre uma medição poder ser verificada por qualquer pessoa que não seja quem a fez.
Referências
O conteúdo aqui abordado refere-se ao processamento de sinais em termos conceituais, e não a evidências clínicas: a transformada discreta de Fourier e sua grade de intervalos (numpy.fft), vazamento espectral e resolução da janela, o limite de Nyquist e o aliasing, além da série de Fourier para uma onda quadrada com suas amplitudes de harmônicos ímpares iguais a um sobre n. Implementado com numpy; o script de medição e sua saída são exibidos na tela no vídeo que acompanha este artigo.
Conteúdo educativo sobre processamento de sinais de áudio. Não se trata de orientação médica.
Listen · FFT-verified session A mesma nota, um som diferente: a medição que eu errei de início Watch on YouTube →