Eu estava pensando no assunto da janela do DFT e um pensamento me veio à mente. Um DFT produzirá o espectro de um sinal contornado com o espectro da janela utilizada, tendo, portanto, lobos principais e lobos laterais.
Imaginei que seria possível remover o efeito da janela no espectro do sinal, convoluindo novamente a magnitude do sinal e da magnitude do espectro da janela, e funcionou de fato como você pode ver na imagem a seguir.
Esquerda é o espectro original gerado com uma janela de interrupção. À direita é o espectro complicado pela DFT de uma janela de iluminação. O topo é o próprio Spectrum, o fundo é o findpeaks
resultado do MATLAB .
Nunca li nada sobre essa técnica, mas tenho certeza de que não inventei nada lá. Então, eu estou me perguntando se há algum benefício em fazer esse processamento no espectro ou se há um aspecto negativo que eu não estou vendo.
Pelo que vejo, isso pode ajudar a detectar picos, como podemos ver na imagem anterior. Além disso, parece que o espectro está um pouco distorcido, como podemos ver nas 2 imagens a seguir. :
Onde o gráfico azul é o espectro e o gráfico vermelho o espectro pós-complicado.
- Alguma idéia sobre isso?
- Existe algum problema que possa surgir dessa convolução pós-FFT?
- Algum papel que trata do assunto?
EDITAR
Você pode encontrar um script aqui que irá gerar o seguinte gráfico:
fonte
Respostas:
De fato, há uma desvantagem em sua sugestão: os sinais que você mostrou são claramente divididos em seus componentes de frequência, mas, em geral, os sinais da vida real tendem a ser mais barulhentos.
Dependendo da aplicação, você deseja o máximo de amortecimento de vazamentos (lóbulos principais mais altos / lóbulos laterais menores de uma frequência de sinal no espectro transformado) ou, como outro exemplo, o lóbulo principal mais estreito possível.
Em suas plotagens, é visível que suavizar os espectros de magnitude com uma janela faz o oposto disso: os lobos principais ficam mais amplos e menores, enquanto os produtos de vazamento transformam um ganho finito de sinal no tempo. Aplicado a sinais ruidosos, isso traria uma desvantagem significativa.
Sua sugestão, no entanto, ainda é bastante útil para identificação de pico!
fonte
permanecendo fiel ao assunto "removendo o efeito da janela no domínio freq via convolução" (apesar do OP talvez desejasse obter algo mais ou algo semelhante), sinto que adiciono meu comentário tendo experiência pessoal com esse tópico específico.
Freqüentemente, tenho a necessidade de remover uma janela Hann no domínio da frequência, trabalhando em uma estrutura STFT que usa quadros com janelas Hann como padrão, para transportar processamento espectral avançado em que o espectro de entrada é esperado como NÃO NONO (em vez disso, por exemplo). filtragem).
Em uma palavra: sim, você pode. Apesar de remover matematicamente uma janela (no domínio do tempo ou da frequência) implica reconstruir dados que são perdidos para sempre, na prática, é possível com uma perda mínima provável.
Vamos pegar uma janela de Hann (cosseno elevado). Sua fórmula no domínio do tempo é y = (1-cos (pi * x)) / 2, com x variando de zero a e excluindo um no quadro. Sua representação correspondente no domínio da frequência é bin0 = (0,5,0i), bin1 = (- 0,5,0i). Para remover seu efeito no domínio do tempo, você pode simplesmente dividir o sinal pela função da janela acima mencionada. Para fazer o mesmo no domínio da frequência, você pode simplesmente convencer o espectro a não ser exibido com o espectro do inverso da referida função. Como essa função é zero nas duas extremidades (na verdade, é matematicamente zero apenas no primeiro ponto, a menos que haja erros de arredondamento), para evitar o infinito, você pode simplesmente trocar o infinito com um valor grande como 10000 ou mais. O resultado dessa convolução é o espectro sem janela. Ao convertê-lo no domínio do tempo,
Talvez você não possa remover uma janela retangular, porque a quantidade de dados perdidos pela multiplicação de grandes áreas do sinal por zero é impossível de recuperar em teoria. Mas acho que isso depende do conteúdo do espectro. Por exemplo, se é o espectro de um sinusóide simples, removendo o padrão de janela retangular, convolvendo com o espectro de uma função que é um valor alto onde o retângulo era zero e outro onde era um (isto é, recíproco), talvez você ainda possa obter (substancialmente) o espectro de um sinusóide para reconstruir todo o sinal.
fonte
é uma boa pergunta e um bom insight que tenho certeza de que outros tiveram. o de -convolution no domínio da frequência é como multiplicar no domínio do tempo e se você está deconvolving o efeito de uma janela de Hann no domínio da frequência, é como sua divisão pelo efeito da janela de Hann no domínio do tempo. nas caudas onde a janela de Hann chega a zero, há um número muito pequeno para se preocupar.
geralmente o efeito da janela é deixado porque, se você estiver voltando, poderá querer o efeito da janela no domínio do tempo. ou se você nunca estiver transformando de volta (isso é uma análise ou modelagem de alg e não uma modificação), você só está interessado em parâmetros que são propriedades desses picos e apenas lida com o efeito conhecido de convolver com um conhecido e que pode modificar um parâmetro extraído de maneira determinística. então você apenas compensa isso no seu parâmetro extraído.
Por fim, dependendo do que você estiver fazendo, considere o uso de uma janela guassiana para análise. tem muito pouco problema de lóbulo lateral e sob condições lineares (como um filtro), cada senoide com janela mantém a forma da janela quando transformado de volta ao domínio do tempo. essa janela pode ser desfeita e uma janela Hann aplicada após a transformação novamente no domínio do tempo.
fonte
A técnica que você usou para suavizar o espectro é frequentemente usada ao analisar o próprio espectro e você não se importa com os efeitos no domínio do tempo (por exemplo, na detecção de sinais com base na frequência ou na medição da largura de banda). Não existe nem um requisito de que a janela usada para suavização seja a mesma que a janela usada no domínio do tempo. Um dos principais motivos para usar uma janela no domínio do tempo antes da DFT é minimizar a descontinuidade no contorno que a DFT assume nas extremidades do sinal (a DFT é inerentemente circular). O objetivo da suavização no domínio da frequência é facilitar análises como detecção de pico ou medição de largura de banda. A janela "melhor" para um pode não ser a janela "melhor" para o outro. Na verdade, nunca vi o DFT de uma janela usada para suavização espectral.
fonte