Estou usando um FFT para analisar o que é essencialmente o envelope de potência de um sinal (veja aqui para obter informações sobre o projeto que o contém) e, como os números de potência são sempre positivos, para eliminar o componente DC que eu gostaria de usar em uma janela função 50/50 positiva e negativa, versus a função totalmente positiva usual.
Eu peguei a função " flat top ", removi o a0
viés e o converti de cossenos em senos, mas não tenho certeza se isso é ótimo (ou mesmo significativo).
Alguma sugestão?
fft
window-functions
Daniel R Hicks
fonte
fonte
Respostas:
A primeira derivada das funções mais comuns da janela contínua (von Hann, etc.) rejeitará a DC, mas ainda terá uma resposta de frequência de magnitude semelhante à da função original da janela; portanto, você ainda pode usar o critério original de "bondade" para a seleção da janela, se não estiver relacionado à fase.
fonte
Se você está preocupado em fazer uma análise espectral de um sinal com um grande componente CC e deseja suprimir esse pico de CC, uma função de janela não é o que você deseja. Como algumas outras respostas observadas, um filtro passa-alto (ou, visto de maneira diferente, um filtro de entalhe com o entalhe na frequência zero) é uma solução apropriada.
Para entender o porquê, você precisa pensar no que a aplicação de uma função de janela faz na resposta de frequência de cada saída DFT. O DFT é definido como:
Uma interpretação de como o DFT funciona é como um banco de filtros em frequências igualmente espaçadas entre - f sN efs−fs2 . Redefina a soma acima da seguinte maneira:fs2
Onde:
Assim, a ésima saída DFT é gerada pegando primeiro o sinal de entrada x [ n ] e multiplicando-o por um exponencial complexo na frequência - 2 π kk x[n] para gerar um sinal de conversão descendentexk[n]. O sinal resultante é então somado sobre ajanelaN-sample para produzir a saída DFTX[k]. Este é efetivamente um filtro de média móvel (às vezes chamado de filtro de vagão), cuja resposta ao impulso pode ser descrita como:−2πkN xk[n] N X[k]
A resposta de magnitude do filtro de vagão coberto pode ser encontrada usando a transformada de Fourier em tempo discreto (DTFT) dessa resposta de impulso:
Este é um núcleo do Dirichlet , e às vezes é chamado de "sinc periódico", pois parece um pouco com uma função sinc, mas se repete periodicamente, o que um sinc não faz. Essa expressão fornece a resposta de magnitude de cada saída DFT, em que é medido como o deslocamento de frequência da frequência central do respectivo compartimento de saída. Isso ilustra o efeito de vazamento espectral ; cada saída DFT possui uma resposta de frequência que cobre uma faixa contínua do espectro do sinal de entrada, não apenas a frequência central discreta de cada saída.f
Agora considere como as coisas mudam se você aplicar uma função de janela ao sinal de entrada antes de executar o DFT:x[n]
Portanto, se você realmente deseja apenas cancelar o componente DC do sinal, removê-lo através de algum outro tipo de pré-processamento, não a janela no domínio do tempo, é o caminho a percorrer. Você pode usar um filtro passa-alto linear com uma frequência de corte muito baixa ou subtrair a média estimada do sinal primeiro, por exemplo. A escolha entre esses métodos deve basear-se em outras restrições que seu sistema possui.
fonte
Não acho que usar uma função de janela seja uma boa maneira de remover o controlador de domínio. Como o endólito mencionado, um método comum é apenas subtrair a média antes da janela. Outra opção seria aplicar um filtro passa-alto ao seu sinal antes da análise, por exemplo, com uma frequência de corte de cerca de 10 Hz.
fonte