Por que o vazamento espectral surge em uma FFT?

18

Tentei pesquisar no Google e pesquisá-lo na Wikipedia, mas não obtive respostas além de 'é porque a frequência do sinal de entrada está entre duas caixas'.

Entendo que esse é o motivo, mas o que não consigo entender é por que o vazamento parece se estender a vários compartimentos adjacentes, em vez de apenas a um compartimento adjacente.

Para ilustrar o que estou falando, aqui estão alguns dados simulados (código no final da postagem): Freq_10

Acima está o espectro da FFT (plotado em uma escala logarítmica) de uma onda senoidal de frequência 10. A taxa de amostragem é uma e o número de amostras é 100. O gráfico foi deslocado pela FFT. Claramente, existe apenas um pico no compartimento 10, e o restante está na ordem de erro numérico ou aproximadamente.

Freq_10_1

Este é o espectro de frequências a uma frequência gerada de 10,1. Claramente, há 'vazamento' em mais compartimentos do que apenas no compartimento imediatamente adjacente.

freq_10_5

Este é o gráfico para uma frequência de 10,5.

Pergunta: Por que esse vazamento ocorre e por que ele se estende a todos os outros compartimentos, e não ao compartimento adjacente imediato?


Código, para quem estiver interessado (código Python)

import numpy as np
import matplotlib.pyplot as plt

xFreq = 10.5
xSize = 100.0
xPeriod = xSize/xFreq
x = np.linspace(1,xSize,xSize)

data = np.sin(2*np.pi*x/xPeriod)
fft = np.fft.fft(data)
fft = np.fft.fftshift(fft)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(abs(fft), "o")
ax.set_yscale('log')
plt.show()

Alterei o xFreqvalor de 10.0para 10.5etc.

Kitchi
fonte
Qualquer sinal que não se encaixe exatamente no comprimento da janela da FFT produz uma descontinuidade quando você o envolve. Descontinuidades, como impulsos ou funções de passo, contêm algumas de todas as frequências.
endolith 6/09/13

Respostas:

12

Uma FFT tem comprimento finito e, portanto, constitui uma janela retangular padrão em um fluxo de dados. Uma janela no domínio do tempo resulta em uma convolução no domínio da frequência com a transformação da janela. Observe que a transformação de uma janela retangular é uma função Sinc (sin (x) / x), que possui largura infinita. Não são apenas 2 caixas de largura. Assim, as ondulações da função Sinc aparecerão como "vazamento" longe de qualquer pico espectral que não seja perfeitamente periódico no comprimento da FFT.

A figura abaixo mostra parte da resposta em frequência da função sinc. Quando o tom é centralizado em uma das caixas, todos os outros pontos são alinhados com os nulos na resposta de frequência. Se não estiver centralizado em uma lixeira, é como mudar toda a resposta de frequência, o que faz com que as outras caixas caiam em porções não nulas da resposta de frequência.

insira a descrição da imagem aqui

Outra maneira de ver é que uma FFT é apenas um banco de filtros, onde cada piso da faixa de parada do filtro tem muitas ondulações e certamente não é infinito na atenuação a mais de um escaninho da frequência central. Algumas janelas (von Hann, etc.) Que não sejam retangulares têm faixas de parada mais baixas, que é uma das razões para seu uso popular.

hotpaw2
fonte
1
Observe que o chamado "vazamento" espectral não aparece na FFT das entradas periódicas exatamente centradas no compartimento, porque a função Sinc é exatamente zero (entre as mudanças de sinal) em todas as outras frequências do centro do compartimento (completamente ortogonais aos núcleos de filtro e Vetores de base FFT).
hotpaw2
Espero que você não se importe com a edição. Sinta-se livre para jogá-lo se você não gostar.
21713 Jim Clay
@ Jim Clay: Obrigado pelo gráfico adicionado. Não consegui descobrir como enviar um do meu iPhone.
hotpaw2
1
Obrigado, obrigado, obrigado. Obrigado por NÃO explicar o vazamento dizendo: "A FFT assume que sua sequência de entrada é periódica". Infelizmente, essa noção boba de "periodicidade assumida" é repetida com muita frequência na literatura do DSP. [-Rick-]
Ocasionalmente, a suposição de periodicidade de entrada é útil, ao fazer amostragem síncrona de rotação do eixo do comprimento do quadro da FFT (ou criar exemplos sintéticos da sala de aula), por exemplo. Porém, com o áudio (etc.), os quadros de dados de seção e janela não relacionados a quaisquer comprimentos de periodicidade são mais comuns, tornando a suposição geralmente falsa para o trabalho nessas áreas.
hotpaw2
0

hotpaw2A resposta é boa, mas eu gostaria de elaborar um pouco user5133o comentário de:

Obrigado por NÃO explicar o vazamento dizendo: "A FFT assume que sua sequência de entrada é periódica". Essa noção tola de "periodicidade assumida" é, infelizmente, repetida com muita frequência na literatura da DSP

e ao mesmo tempo responda a pergunta também. Observe que sou um especialista neste campo - fique à vontade para comentar, corrigir ou confirmar.

Z{1,2,...,N}

X(ω)=n=-x[n]e-Euωn.

NNZ

Xk =def n=0 0N-1xne-2πEukn/N,kZ
X(2πk/N)n{1,2,...,N}x[n]W[n]Wn{1,...,N}

Mas a transformação de Fourier de um produto é a convolução das transformadas de Fourier:

F{fg}=F{f}F{g}

sinc

-W(f)e-jωtdt=-ττe-jωtdt=2τsinc(ωτ)

sinc

compreendido
fonte
parece que @ user5133 não está mais por aqui. mas a gratidão de Rick é equivocada: "Obrigado por NÃO explicar o vazamento, dizendo: 'A FFT assume que sua sequência de entrada é periódica". Essa noção boba de 'periodicidade assumida' é, infelizmente, repetida com muita frequência na literatura do DSP ". Ele está enganado. O DFT certamente estende periodicamente os dados de tamanho finito passados ​​para ele. O DFT faz supor os dados passados para ele é um período de uma sequência periódica.
226166 Robert Bristow-Johnson