O gráfico ciano é um espectro de 50 Hz, e o magenta é uma onda senoidal de 50,1 Hz (com amplitude 0,7). Ambos são amostrados em 1024 amostras / s. Eu realizei uma FFT de 1024 pontos para obter esse espectro.
Por que apenas o espectro de 50Hz é um valor único? Por que o seno de 50,1 Hz consiste em outras frequências além de 50,1 Hz; De onde vêm essas novas frequências?
Eu não fiz nenhum processamento não linear no sinal de 50,1 Hz! Além disso, os 50,1 Hz parecem ter uma amplitude máxima menor, ou seja, não são 0,7, quando, de fato, a onda senoidal que geramos tem uma amplitude de 0,7.
Por que é isso?
Obtido pelo comando MATALB fft ();
Respostas:
Na verdade, a resposta de Matt já dá uma visão do problema aqui: a DFT é implicitamente periódica no domínio do tempo e da frequência (veja esta pergunta ). A partir dos seus parâmetros, podemos calcular que seu período de observação é de 1 s. Isso significa que você observa 50 períodos de um tom de 50 Hz. Estender periodicamente esse intervalo de observação sempre resultará em uma onda senoidal aparentemente. Se você usar o tom de 50,1 Hz, estará transformando 50,1 períodos de uma oscilação. A extensão periódica desse sinal resultará em saltos de fase que causam tributários espectrais adicionais.
Ambos os efeitos descritos acima contribuem para o espectro que você está observando.
fonte
Este é o efeito de truncar ou abaixar o sinal senoidal. Você precisa truncar de tal maneira que, se você adicionar o sinal alterado ao truncado, ainda será a onda senoidal original.
fonte
Você obterá apenas um ponto FFT de resultado único para uma frequência de sinusóide puro não modulado que seja exatamente inteiro periódico na abertura ou largura da FFT. Qualquer outra frequência de sinusóide aparecerá como convolvida com a transformação (um Sinc periódico) da janela padrão (um retângulo).
50,1 Hz não é exatamente periódico na janela de 1 segundo da sua FFT.
Esses outros compartimentos ou frequências de resultado de FFT de "vazamento" são necessários para representar a descontinuidade produzida entre os limites da janela por qualquer sinal que não seja exatamente inteiro periódico na largura da FFT. Isso ocorre porque todos os vetores de base de uma DFT são exatamente inteiros periódicos dentro da largura da DFT e, portanto, não têm descontinuidade acentuada entre o final e o início do vetor de base. Portanto, qualquer sinal que não tenha essas características não pode ser representado por apenas um vetor base DFT (e seu complexo conjugado); portanto, as informações sobre o restante do sinal precisam ir a algum lugar.
Como a energia total é preservada pela transformação FFT (teorema de Parseval'a), a energia nos compartimentos de "vazamento" retira-se do compartimento de pico. Portanto, a magnitude do compartimento de pico deve ser menor.
fonte
Aposto que sua onda senoidal é zero na primeira e na última amostra? Não deveria ser. Ele deve ser alinhado para que a próxima amostra após a última seja zero, para que você possa copiar e colar cópias do sinal uma após a outra e elas parecerão contínuas, sem amostras duplicadas. Talvez pense nisso como um papel de parede lado a lado, em que uma borda precisa atender perfeitamente à borda oposta quando lado a lado. :)
Vejo https://gist.github.com/endolith/236567 para obter um exemplo de python:
Veja como duas cópias do sinal se encaixam de ponta a ponta para formar uma onda contínua:
Quando isso acontece, a energia da FFT é contida inteiramente em uma única bandeja:
fonte
Isso ocorre devido a vazamentos espectrais e janelas. A resposta ideal, isto é, a função impulso, é para ondas senoidais de tempo contínuo. Quando você toma DFT de uma onda senoidal discreta em um computador digital, está basicamente tomando a Transformada de Fourier de seno com janela e com amostra e, em seguida, amostrando-a no domínio da frequência. Isso causa vazamento espectral. Consulte: http://w.astro.berkeley.edu/~jrg/ngst/fft/leakage.html
fonte