Sou um novato no processamento de sinais e sei que essa pergunta pode ser muito ampla. Mas ainda gostaria de ouvir dicas de especialistas.
Fui ensinado a usar butter
(para projetar o filtro Butterworth, também conhecido como filtro de magnitude máxima plana) e filtfilt
(filtragem digital de fase zero) para a filtragem de banda de sinais EEG (eletroencefalograma) no MATLAB offline (ou seja, após a conclusão da gravação). Dessa forma, você pode evitar o inevitável "atraso" causado pelo filtro digital (ou seja, filtragem de fase zero).
Então, alguém me perguntou por que não podemos usar fft
(transformação rápida de Fourier) para obter a representação do sinal no domínio da frequência e, em seguida, definir o poder das frequências indesejadas para zero, seguido por ifft
(transformação rápida inversa de Fourier) para recuperar os dados filtrados no tempo domínio para a mesma finalidade. Essa manipulação no domínio da frequência parecia mais simples e razoável para mim, e eu realmente não conseguia responder o porquê.
Quais são as vantagens e desvantagens do uso do fft/ifft
método simples para a filtragem de banda? Por que as pessoas preferem usar filtros digitais FIR ou IIR?
Por exemplo, o fft/ifft
método é mais propenso a vazamentos ou ondulações espectrais em comparação com os filtros digitais estabelecidos? O método também sofre de atraso de fase? Existe uma maneira de visualizar a resposta ao impulso desse método de filtragem para comparação?
fonte
Respostas:
A principal razão pela qual o processamento no domínio da frequência não é feito diretamente é a latência envolvida. Para fazer, por exemplo, uma FFT em um sinal, você deve primeiro registrar todo o sinal no domínio do tempo, do início ao fim, antes de poder convertê-lo no domínio da frequência. Em seguida, você pode fazer seu processamento, convertê-lo novamente no domínio do tempo e reproduzir o resultado. Mesmo que as duas conversões e o processamento do sinal no meio sejam efetivamente instantâneos, você não obtém a primeira amostra de resultado até que a última amostra de entrada tenha sido gravada. Mas você pode obter resultados "ideais" no domínio da frequência, se quiser tolerar isso. Por exemplo, uma música de 3 minutos gravada a 44100 amostras / segundo exigiria 8 milhões de transformações de ponto, mas isso não é grande coisa em uma CPU moderna.
Você pode ficar tentado a dividir o sinal no domínio do tempo em blocos de dados menores e de tamanho fixo e processá-los individualmente, reduzindo a latência ao tamanho de um bloco. No entanto, isso não funciona por causa de "efeitos de borda" - as amostras em cada extremidade de um determinado bloco não se alinham adequadamente com as amostras correspondentes dos blocos adjacentes, criando artefatos questionáveis nos resultados.
Isso acontece devido a suposições implícitas no processo que converte entre domínio de tempo e domínio de frequência (e vice-versa). Por exemplo, a FFT e a IFFT "assumem" que os dados são cíclicos; em outras palavras, esses blocos de dados idênticos no domínio do tempo vêm antes e depois do processamento do bloco. Como isso geralmente não é verdade, você obtém os artefatos.
O processamento no domínio do tempo pode ter seus problemas, mas o fato de você poder controlar a latência e não produzir artefatos periódicos o torna um vencedor claro na maioria dos aplicativos de processamento de sinal em tempo real.
(Esta é uma versão expandida da minha resposta anterior .)
fonte
Você certamente pode usar filtros ideais para "vagões" no domínio da frequência. A dualidade diz que isso é equivalente a convolver com uma função sinc de comprimento infinito. Para reduzir artefatos associados a tornar o comprimento finito, a função sinc é frequentemente multiplicada por uma janela. Você já deve ter ouvido falar de Hamming, Hanning (na verdade von Hann), cosseno elevado e outras técnicas de janelas. A convolução pode ser computacionalmente mais simples que a abordagem fft / ifft, mas as respostas são as mesmas.
Todo método terá pontos positivos e negativos. O Butterworth é IIR, e os vagões são FIR. Os Butterworths provavelmente são mais lisos na faixa de passes, mas provavelmente com menos rolagem íngreme, dependendo da ordem do IIR e da largura do FIR. seria mais difícil implementar em tempo real.
fonte
Perguntas relacionadas
Por que é uma má idéia filtrar zerando as caixas de FFT? /signals/6220/why-is-it-a-bad-idea-to-filter-by-zeroing-out-fft-bins
A remoção de valores da FFT resulta da mesma filtragem? /signals/11487/removing-values-from-fft-result-same-as-filtering?noredirect=1&lq=1
Por que usamos a janela no domínio do tempo, em vez de a FFT modificar o espectro e a FFT inversa /signals/8911/why-do-we-use-window-in-time-domain-rather -que-fft-modificar-o-espectro-e-t? noredirect = 1 & lq = 1
fonte