"Existe alguma aplicação prática?" Definitivamente sim, pelo menos para verificar o código e os erros associados.
"Na teoria, teoria e prática combinam. Na prática, não combinam." Portanto, matematicamente, não, conforme respondido por Matt. Porque (como já respondido), F( F( x ( t ) ) ) =x(-t) (até um fator de escala potencial). No entanto, pode ser útil computacionalmente, porque a equação acima é geralmente implementada via transformada discreta de Fourier e seu avatar rápido, a FFT.
Uma primeira razão surge da vontade de verificar se a implementação de Fourier, codificada por você, outra pessoa ou de uma biblioteca, faz o que deve ser feito com seus dados. Ordenação de amostras, fatores de escala, limites no tipo de entrada (realidade, profundidade de bits) ou comprimento são fontes de possíveis erros subsequentes para implementações de Fourier como a FFT. Portanto, como verificação de integridade, é sempre bom verificar se as versões implementadas herdam, pelo menos aproximadamente, as propriedades teóricas. Como você verá, como mostrado por Machupicchu, você não recupera exatamente uma entrada real invertida: frequentemente, a parte imaginária não é exatamente zero e a parte real é o que se espera, mas dentro de um pequeno erro relativo, devido a cálculos imperfeitos do computador (ponto flutuante) dentro de uma tolerância dependente da máquina. Isso é visível na figura a seguir. A FFT é aplicada duas vezes em um sinal aleatório de 32 amostras e invertida. Como você pode ver, o erro é pequeno, usando flutuadores de precisão dupla.
Se o erro não for relativamente pequeno, pode haver erros no código que você usa.
x0 01 e 6xk + 1= R e ( f( f( f( f( xk) ) )))
fmax | xk- x0 0|
Como você pode ver, a ordem de magnitude do erro mudou, devido ao tamanho do sinal. Além disso, o erro máximo aumenta constantemente. Após iterações, ele permanece pequeno o suficiente. Mas você pode supor que, com um cubo -voxel e milhões de iterações, esse erro pode se tornar não negligenciável.10001000 × 1000 × 1000
Limitar o erro e avaliar seu comportamento em iterações podem ajudar a detectar esses comportamentos e reduzi-los com limiares ou arredondamentos apropriados.
Informação adicional:
Não, tomar a transformação de Fourier duas vezes é equivalente à inversão do tempo (ou inversão de qualquer dimensão em que você esteja). Você obtém vezes uma constante que depende do tipo de dimensionamento usado para a transformação de Fourier.x ( - t )
A transformação inversa de Fourier aplicada a um sinal no domínio do tempo fornece apenas o espectro com inversão de frequência. Veja esta resposta para mais detalhes.
fonte
Enquanto tomando a transformada de Fourier diretamente duas vezes seguidas apenas lhe dá um tempo de inversão trivial que seria muito mais barato de implementar, sem FT, não é coisa útil que pode ser feito tomando uma transformada de Fourier, aplicando alguma outra operação, e depois novamente Fourier transformando o resultado disso. O exemplo mais conhecido é a autocorrelação , que é um tipo de convolução de um sinal consigo mesmo. E as convoluções são O ( n 2 ) se implementadas ingenuamente, mas apenas O ( n · log n) ao fazer um desvio através da transformação de Fourier. Portanto, a autocorrelação geralmente é feita por FT 's sinal, tomando o quadrado absoluto e IFT-lo de volta ao domínio do tempo.
fonte
A transformada 2D de Fourier (2D DFT) é usada no processamento de imagens, pois uma imagem pode ser vista como um sinal 2D. Por exemplo, para uma imagem em escala de cinza , , isso significa que nas coordenadas e a imagem tem o valor de intensidade z. Veja isso por exemplo:I I(x,y)=z x y
https://ch.mathworks.com/help/matlab/ref/fft2.html
Tente o seguinte:
e compare com:
mais ou menos assim. Eu apliquei fft2 às vezes, não ifft2 na segunda vez. Acho que isso ilustra o que @Matt L. disse:
"tomar a transformada de Fourier duas vezes é equivalente à inversão do tempo",
você pode ver a imagem invertida por causa do negativo imaginário -i em vez de positivo no ifft ().
Eu também fiz isso para um sinal 1D (por exemplo, temporal):
fonte
Para responder à segunda pergunta, nas comunicações digitais existe atualmente uma técnica em uso em telefones celulares que faz bom uso da aplicação do IFFT a um sinal no domínio do tempo. O OFDM aplica um IFFT a uma sequência de dados no domínio do tempo no transmissor e depois reverte isso com uma FFT no receptor. Embora a literatura goste de usar o IFFT-> FFT, realmente não faz diferença qual deles vem primeiro.
O principal benefício aqui está fortemente relacionado à resposta anterior. Existe um tipo de distorção que se chama desbotamento por caminhos múltiplos , e os celulares em áreas urbanas densas precisam lidar com muito disso. Gostamos de modelar o desbotamento de caminhos múltiplos como uma convolução com coeficientes desconhecidos. Como a cadeia de eventos se parece com IFFT-> Transmit-> Apply multipath-> Receive-> FFT, o desbotamento do multipath percorrerá a FFT e se tornará uma simples multiplicação ponto a ponto com valores desconhecidos. Esses valores são muito mais fáceis de prever e retificar do que os coeficientes de convolução.
Esse efeito também torna um sinal mais resistente a multipath / fading que pode eliminar (ou "nulo") um canal de frequência inteiro. Este artigo descreve como
fonte
Esta informação foi fornecida pelo usuário "Birdwes", mas ele não tinha reputação suficiente para publicá-la, então eu a publicarei aqui para ele porque parece relevante e útil.
"Não tenho pontos suficientes neste fórum para adicionar um comentário, por isso estou fazendo isso aqui: dê uma olhada no código fonte do Accord.Math Hilbert Transform e você verá por que isso pode ser uma opção viável: https: //github.com/primaryobjects/Accord.NET/blob/master/Sources/Accord.Math/Transforms/HilbertTransform.cs
Os usos práticos incluem a construção de transmissores SSB ou quase qualquer plano de modulação. Consulte a modulação de QI e verá por que a mudança de fase de -90 graus é relevante. Um produto de princípios trigonométricos. por exemplo, https://user.eng.umd.edu/~tretter/commlab/c6713slides/ch7.pdf
A Hilbert Transform usa um passo intermediário entre as FFTs para zerar os componentes negativos. Você pode abusar dele para filtrar outras frequências também. "
fonte