Eu pensei que o DSP seria feito usando FFT de partes de um sinal, modifique as amostras resultantes da FFT (uma vez que representam o espectro do nosso sinal + ruído) e remova quaisquer sinais indesejados e faça uma FFT inversa para obter um tempo representação de domínio do sinal filtrado (o ruído foi removido agora). No entanto, isso não é feito; em vez disso, fazemos todo o trabalho no domínio do tempo usando as funções da janela. Por quê?
Se multiplicarmos a função de janela no domínio do tempo do que convencer a resposta de frequência da função de janela com o espectro de nosso sinal no domínio de frequência, como isso funciona? Quero dizer, se apenas fizéssemos todo o trabalho no domínio da frequência, multiplicando nosso sinal pela resposta em frequência do filtro, seria como filtrar, certo? Mas aqui fazemos todas as coisas no domínio do tempo, usando a janela.
-> Vamos ver de onde vem minha confusão. Para filtros analógicos, por exemplo, filtro passa-baixo, temos esse pulso como resposta de frequência. Quando filtramos um sinal, multiplicamos efetivamente o espectro do nosso sinal com a resposta de freqüência do filtro como pulso. Isso reduzirá todas as frequências em nosso sinal acima de um ponto de corte para 0. É assim que um filtro passa-baixo funciona em essência. Por que não fazer o mesmo com filtros digitais também?
Respostas:
A janelas reduz o vazamento espectral.
Digamos que você comece com um . O período é obviamente 2 π / ω 0 .pecado( y) = cos( ω0 0t ) 2 π/ ω0 0
Mas se ninguém lhe disser que o período é e você escolher cegamente o intervalo [ 0 , 1,8 π / ω 0 ] e tirar a FFT dessa forma de onda truncada, observará os componentes de frequência em outras frequências, todas falsas, porque saltos criados ao copiar e colar a forma de onda truncada para periodicidade não estão realmente presentes no sinal original - é um artefato de um truncamento azarado que não captura a transição entre períodos sem problemas. Idealmente, existe apenas um componente espectral em ω = ω 0 .2 π/ ω [ 0 , 1,8 π/ ω0 0] ω = ω0 0
O objetivo da janela no domínio do tempo é reduzir todos esses componentes espectrais fictícios.
fonte
A janela é usada porque os cálculos de DFT operam na extensão periódica infinita do sinal de entrada. Como muitos sinais reais não são periódicos, ou são amostrados em um intervalo diferente do período real, isso pode produzir componentes de frequência falsa na 'borda' artificial entre intervalos repetidos, chamados vazamentos . Ao multiplicar primeiro o sinal no domínio do tempo por uma função de janela que chega a zero nas duas extremidades, você cria uma transição suave entre intervalos repetidos na extensão periódica infinita, mitigando a criação desses componentes de frequência artificiais quando fazemos o DFT.
Este artigo fornece uma visão mais aprofundada desse fenômeno, bem como algumas dicas sobre os efeitos de diferentes funções de janelas.
fonte
Eu acho que você está confundindo duas operações diferentes.
A janela no domínio do tempo é explicada por @sam, então não vou repetir isso. Mas a janela não é feita para realizar a filtragem. A filtragem multiplicando a FFT de um sinal pela resposta de frequência do filtro é inteiramente razoável em muitas situações, e é realmente realizada. A alternativa para a filtragem é a convolução no domínio do tempo (que é diferente da janela). Isso tem suas próprias vantagens, como operar um sinal em 'tempo real', pois é medido sem esperar que tudo seja armazenado e depois transformado.
Então, para a sua pergunta 'Por que não fazer o mesmo com os filtros digitais também?', A resposta é simplesmente 'nós fazemos, quando for adequado'.
fonte
Houve várias boas respostas para essa pergunta. No entanto, sinto que um ponto importante não foi totalmente esclarecido. Uma parte da pergunta era por que não apenas multiplicamos a FFT de um sinal com a resposta de filtro desejada. Por exemplo, se quisermos filtrar o nosso sinal com passagem baixa, poderíamos simplesmente zerar todos os componentes de frequência acima da frequência de corte desejada. Esta é de fato uma aplicação simples do conhecido método de amostragem de frequência para o projeto de filtros FIR. O problema é que podemos zerar os componentes de frequência discretos calculados pela FFT. Não temos controle sobre o que acontece entre essas frequências discretas. Acontece que uma versão tão simples da filtragem fornecerá apenas uma atenuação ruim da banda de parada (independentemente do comprimento da FFT). Se você tiver acesso ao matlab ou à oitava, será '
fonte
Se você não usar uma janela não retangular, os resultados da FFT já serão convoluídos com a transformação de uma janela retangular padrão (um Sinc periódico) antes de fazer qualquer filtragem no domínio da frequência. por exemplo, você aplicará dois filtros, um dos quais você provavelmente não deseja.
Ao fazer janelamento no domínio do tempo, antes da filtragem FFT e no domínio da frequência, você substitui qualquer filtragem (chamada "vazamento") realizada pelo janelamento retangular e, portanto, não obtém uma convolução indesejada adicional do filtro.
A outra maneira de fazer isso é usar métodos de sobreposição-adição ou sobreposição de salvamento em janelas consecutivas, onde os efeitos de uma janela retangular são cancelados por efeitos semelhantes das janelas adjacentes.
fonte
Janela no domínio do tempo porque
por exemplo, da wikipedia
O corte forçado a zero das funções de janelas significa que, no domínio espectral, eles têm lóbulos laterais que vão a zero muito lentamente. Se nos livrarmos dessa restrição, podemos ter funções compactas nos domínios espaciais e espectrais, como o filtro gaussiano. Isso significa que você pode filtrar através do domínio espectral, mas isso exige que todo o sinal seja conhecido.
Se você já tem o sinal inteiro, outra alternativa seria usar wavelets
fonte
Eu tive a mesma pergunta.
Uma convolução é a soma integral / cumulativa do sinal no domínio do tempo multiplicado pela janela. Isso não deve ser confundido com o sinal no domínio do tempo "em janela".
O final deste artigo me ajudou muito.
Basicamente, diz que os sinais reais são finitos e cortam abruptamente um sinal real, resultando em muitas frequências / artefatos indesejados no domínio da frequência.
Para evitar / minimizar esses artefatos, você pode usar uma função de janela suave (por exemplo, em forma de sino), para que sua amostra comece e termine com zero, em vez de terminar abruptamente com algum valor escalar diferente de zero.
A amostra em janela acima terá menos artefatos no domínio da frequência do que a amostra bruta abaixo.
fonte
Existem duas grandes categorias associadas a uma FFT e elas são 1) uma maneira eficiente de implementar um filtro FIR e 2) Análise Espectral.
Para a filtragem FIR, não se preocupa com janelas e não as utiliza, a menos que a janela corresponda a um filtro, mas isso não é algo comum de se fazer. Vazamento não é uma preocupação.
Análise espectral é onde se usa janelas. É aqui que você olha para um sensor conectado a uma grande máquina industrial e tenta descobrir se, no fundo de suas entranhas, um rolamento está falhando. Os rolamentos guincham quando falham, mas o ruído que eles podem é geralmente muito menor do que os outros sons que a máquina está emitindo. É aqui que entra o vazamento e a média. Dados os tons fortes, o vazamento inundará o sinal fraco de que estamos procurando algumas caixas. Melhora a sensibilidade da Análise Espectral a sinais fracos na presença de sinais fortes. Há um efeito semelhante quando o ruído de fundo é inclinado. As informações que buscamos estão no domínio da frequência. Este é o mesmo problema no RADAR, e SONAR e Geofísica. Ver o sinal fraco é objetivo.
fonte
A janela no domínio do tempo é necessária para evitar que uma única frequência que não esteja exatamente em um compartimento de frequência se espalhe por todo o espectro. Talvez esta página ajude: http://www.sm5bsz.com/slfft/slfft.htm O Linrad (meu projeto de 20 anos) usa uma FFT com janelas e aplica um filtro no domínio da frequência (faça zero o que não queremos.) Aplique uma janela - não vá abruptamente do peso 1 ao peso 0 nos compartimentos de frequência. Em seguida, aplique uma FFT ao contrário - mas agora em um número muito menor de pontos. Não há necessidade de incluir todos os compartimentos de frequência que sabemos que são zero! Como resultado, obtemos uma função de tempo com um tamanho muito menor - ou seja, com uma taxa de amostragem muito menor. O procedimento realiza a filtragem e dizimação em uma única etapa. Isso é muito eficiente caso se queira filtrar vários canais ao mesmo tempo. A página inicial do linrad está aqui: http://www.sm5bsz.com/linuxdsp/linrad.htm
fonte