Eu pensei que DSP seria feito usando FFT de porções de um sinal, modifique as amostras que resultam de FFT (uma vez que representam o espectro do nosso sinal + ruído) e remova quaisquer sinais indesejados e, em seguida, faça um FFT inverso para obter uma representação no domínio do tempo 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 funções de janela. Por quê?

Se multiplicarmos a função janela no domínio do tempo, estaremos convolvendo a resposta de frequência da função janela com o espectro do nosso sinal no domínio da frequência, como isso funciona? Quero dizer, se apenas fizéssemos tudo o trabalho no domínio da frequência multiplicando nosso sinal pela resposta de frequência do filtro, isso seria como filtrar certo? Mas aqui fazemos todas as coisas no domínio do tempo em vez de usar a janela.

-> Vamos ver onde minha confusão vem. Para filtros analógicos, por exemplo, filtro passa-baixo, temos esta resposta de frequência semelhante a pulso. Quando filtramos um sinal, estamos efetivamente multiplicando o espectro do nosso sinal com a resposta de frequência semelhante a pulso do filtro. Isso reduzirá todas as frequências em nosso sinal acima de um corte para 0. É assim que um filtro passa-baixa funciona em essência. Por que não fazer o mesmo com os filtros digitais também?

Comentários

Resposta

O uso de janelas reduz o espectro vazamento.

Digamos que você comece com $ \ sin (y) = \ cos (\ omega_0 t) $. O período é obviamente $ 2 \ pi / \ omega_0 $.

Mas se ninguém lhe disse que o período é $ 2 \ pi / \ omega $ e você cegamente escolhe o intervalo $ [0, 1.8 \ pi / \ omega_0] $ e toma FFT desta forma de onda truncada, você irá observar componentes de frequência em outras frequências que são todos falsos porque os saltos criados por copiar e colar a forma de onda truncada para periodicidade não estão realmente presentes no sinal original – é um artefato de um truncamento infeliz que não captura a transição entre os períodos suavemente . Idealmente, há apenas um componente espectral em $ \ omega = \ omega_0 $.

O objetivo da janela no domínio do tempo é reduzir todos esses componentes espectrais fictícios.

Resposta

O janelamento é usado porque os cálculos DFT operam na extensão periódica infinita do sinal de entrada. Uma vez que muitos sinais reais não são periódicos ou são amostrados em um intervalo diferente de seu período real, isso pode produzir componentes de frequência falsos na “borda” artificial entre intervalos repetidos, chamados de vazamento . Multiplicando primeiro o sinal no domínio do tempo por uma função de janela que vai a zero em ambas as extremidades, você cria uma transição suave entre intervalos repetidos na extensão periódica infinita, mitigando assim a criação desses componentes de frequência artificiais quando então tomamos o DFT.

Este artigo oferece uma visão mais aprofundada desse fenômeno, bem como algumas dicas sobre os efeitos das diferentes funções de janelas.

Resposta

Acho que você está confundindo duas operações diferentes.

O janelamento no domínio do tempo é explicado por @ sam, então não vou repetir isso. Mas o janelamento não é feito para realizar a filtragem. A filtragem pela multiplicação do FFT de um sinal pela resposta de frequência do filtro é inteiramente razoável em muitas situações, e realmente é feito. A alternativa para a filtragem é o tempo – convolução de domínio (que é diferente de janelamento). Isso tem suas próprias vantagens, como operar em um sinal em “tempo real e “como é medido sem esperar que tudo seja armazenado e depois transformado.

Então, para sua pergunta” Por que não fazer o mesmo com os filtros digitais também? “, a resposta é simplesmente” nós fazemos , quando for conveniente. “

Comentários

  • Também tenho a impressão de que convolução e janelamento se misturaram na pergunta. Que bom que você apontou!

Resposta

Existem várias respostas boas 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 o FFT de um sinal com a resposta de filtro desejada. Por exemplo, se quisermos filtrar nosso sinal passa-baixo, 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 projetar filtros FIR. O problema é que podemos apenas zerar os componentes de frequência discretos calculados pelo FFT. Não temos controle sobre o que acontece entre essas frequências discretas. .Acontece que uma versão tão simples de filtragem só fornecerá uma atenuação de banda de parada pobre (independentemente do comprimento da FFT). Se você tiver acesso ao matlab ou oitava, é muito instrutivo tentar você mesmo:

x=2*rand(1024,1)-1; X=fft(x); Y=X.*[ones(200,1);zeros(625,1);ones(199,1)]; % lowpass filter y=real(ifft(Y)); % real() just to remove numerical errors Y=fft(y,4096); plot(20*log10(abs(Y(1:2048)))),axis([0,2048,-30,50]) 

Resposta

Se você não usar uma janela não retangular, então os resultados da FFT já estarão envolvidos 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ê terá dois filtros aplicados, um dos quais provavelmente não deseja.

Ao criar janelas no domínio do tempo, antes da FFT e da filtragem no domínio da frequência, você substitui qualquer filtragem (o chamado “vazamento” ) feito por janelas retangulares e, portanto, não obtém uma convolução de filtro indesejada adicional.

A outra maneira de fazer isso é usar os métodos de sobreposição-adição ou sobreposição de salvamento em janelas consecutivas, onde os efeitos de um a janela retangular é cancelada por efeitos semelhantes das janelas adjacentes.

Resposta

Janela no domínio do tempo porque

  • podemos garantir zero nas bordas da janela
  • funções de janela têm uma boa expressão analítica no domínio espacial
  • muitas funções de janela têm um espectro de formato estranho que seria difícil de aproximar
  • apenas um número finito de amostras é necessário (o janelamento pode ser feito conforme o sinal flui)

por exemplo de wikipedia

insira a descrição da imagem aqui

O difícil cortar indo para zero das funções de janela significa no domínio espectral que eles têm lóbulos laterais que vão para zero muito lentamente. Se nos livrarmos dessa restrição, podemos ter funções compactas nos domínios espacial e espectral, como o filtro gaussiano. Isso significa que você pode filtrar por meio do domínio espectral, mas requer que todo o sinal seja conhecido.

Se você já tem o sinal completo, outra alternativa seria usar wavelets

Resposta

Eu tive a mesma pergunta.

Uma convolução é a soma integral / cumulativa do sinal no domínio do tempo multiplicada pela janela. Isso não deve ser confundido com o sinal de domínio do tempo “em janela”.

O final deste artigo me ajudou muito.

Basicamente, diz que os sinais reais são finitos e o corte abrupto de um sinal real resulta 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) de forma que sua amostra comece e termine com um zero, em vez de terminar abruptamente com algum valor escalar diferente de zero.

Corte suave

A amostra em janela acima terá menos artefatos no domínio da frequência do que a amostra bruta abaixo.

Corte abrupto

Resposta

Existem duas categorias amplas associadas a um FFT e são 1) uma maneira eficiente de implementar um filtro FIR e 2) Análise espectral.

Para Filtragem FIR, não se preocupa com as janelas e não as usa, a menos que a janela corresponda a um filtro, mas isso não é uma coisa fina comum g para fazer. Vazamento não é uma preocupação.

A 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, uma falha de rolamento. Os rolamentos guincham quando falham, mas o ruído que podem ser geralmente muito mais baixo do que os outros sons que a máquina está fazendo. É aqui que o vazamento e a média entram. Em caso de tons fortes, o vazamento eliminará o sinal fraco que procuramos em alguns compartimentos. Ele 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 em RADAR, SONAR e Geofísica. Ver o sinal fraco é o objetivo.

Resposta

O janelamento no domínio do tempo é necessário para evitar que uma única frequência que não esteja exatamente em uma categoria de frequência se espalhe em todo o espectro. Talvez esta página ajude: http://www.sm5bsz.com/slfft/slfft.htm Linrad (meu projeto de 20 anos) usa uma janela FFT e, em seguida, 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 nas caixas de frequência. Em seguida, aplique uma FFT para trás – mas agora em um número muito menor de pontos. Não há necessidade de incluir todos os bins de frequência que sabemos que são zero !! Como resultado, obtemos uma função de tempo com um tamanho muito menor – o que significa uma taxa de amostragem muito menor. O procedimento faz filtragem e dizimação em uma única etapa.Isso é muito eficiente no caso de se desejar filtrar vários canais ao mesmo tempo. A página inicial do linrad está aqui: http://www.sm5bsz.com/linuxdsp/linrad.htm

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *