Ao transformar um sinal ruidoso via Fast Fourier Transform do domínio do tempo para o domínio da frequência, existe um "ganho de processamento" da FFT que aumenta à medida que o número de posições aumenta. Ou seja, quanto mais caixas tiver, mais o piso de ruído no domínio da frequência é reduzido.
1. Na verdade, eu não entendo completamente, de onde vem esse ganho. Isso significa que eu preciso apenas amostrar o sinal com uma taxa de amostragem mais alta para ter mais compartimentos, portanto, um ganho maior no processamento de FFT?
2. O que há com a FFT inversa? Eu tenho um "Processamento perdido"? Ao iniciar no domínio da frequência, isso significa que, quanto mais amostras de frequência eu tiver, mais ruído aparecerá no sinal do domínio do tempo? No entanto, isso seria contra-intuitivo, pois isso também levaria a uma grande distorção dos sinais ao aplicar o preenchimento (dos dados no domínio da frequência) para fins de interpolação no domínio do tempo.
Respostas:
Eu acho que a maneira mais fácil de entender um conceito é ter um exemplo simples:
A trama da onda de pecado barulhenta e limpa no domínio do tempo é assim:
Os gráficos da FFT para tamanhos diferentes no domínio da frequência são:
ou seja, aumentar o tamanho da FFT significa adicionar mais amostras de sinal no cálculo e, portanto, é mais fácil para a FFT determinar a frequência, à medida que as informações do sinal são adicionadas, enquanto as informações do ruído não. Aqui você pode ver que o sinal wrt "relativo" do piso de ruído diminuiu.
Quanto a Fourier inverso, não direi que é uma perda, diria que voltamos de onde viemos.
hth.
fonte
O "'ganho de processamento' da FFT que aumenta à medida que o número de posições aumenta" deve-se apenas a um problema de definição. o FFT é um algoritmo "rápido" para calcular o DFT. geralmente o DFT (e DFT inverso) é definido como:
e
mas poderia ter sido definido como
e
e pode até ser definido como
e
nesta última forma, não há "ganho de processamento" da DFT nem da iDFT.
fonte
O ganho do processamento da FFT vem do fato de a DFT (da qual a FFT é simplesmente uma implementação rápida) ser uma transformação linear não normalizada. Isso é um bocado, então vamos ver o que isso significa.
Vou assumir que você sabe o que é uma transformação linear . Ou seja, dados os vetores e e uma matriz que temosx y A
DFT é exatamente essa transformação. De fato, você pode usar ox
dftmtx
comando MATLAB para gerar essa matriz para você com base no comprimento do vetor . Neste caso,Essa matriz tem algumas propriedades. Primeiro de tudo, é uma matriz quadrada, o que significa que provavelmente é invertível (e de fato é!). Também nos diz que estamos basicamente pegando componentes de x e realizando uma mudança de base dada pelas colunas de para obter sua DFT. Por enquanto, tudo bem.A A
Agora, vamos a algumas propriedades mais importantes. matriz é ortogonal. Isso significa que todas as colunas de são perpendiculares a todas as outras colunas, ou mais matematicamente, é uma matriz diagonal (você pode ter que pensar um pouco sobre por que isso é verdade). Essa é uma propriedade muito agradável, pois a simples transposição da matriz nos dá algo muito próximo de sua inversa.A A ATA
Para tornar esse relacionamento Transpose Inverse restrito, queremos que a matriz também seja normal . Essa é uma matriz cujo vetor de cada coluna possui comprimento 1. Em outras palavras, se é uma coluna de , então Se uma matriz é ortogonal e normal, chamamos de ortonormal e neste caso , de modo é de facto o inverso de . Arrumado!↔ A a A aTa−−−√=1. ATA=I AT A
A matriz DFT usual (ou a transformação DFT usual) é ortogonal, mas não ortonormal. Na verdade, se é a matriz DFT, então , onde é o número de colunas (ou filas, é quadrado!) Em . Para torná-lo ortonormal, devemos usar . Se você observar por tempo suficiente, percebe que, se dimensionamos as transformações para frente e inversa por , estamos fazendo um trabalho extra na execução dos cálculos, por isso geralmente apenas dimensionamos no inverso.D DTD=N N D DN√ 1N√ 1N
Existem melhores razões teóricas para fazê-lo de um lado do que de ambos. Veja minha resposta aqui para mais informações.
fonte
O ganho de processamento da FFT refere-se ao aumento da SNR para um sinusóide. Você pode pensar na DFT ou na FFT como um banco de filtros correspondentes. O filtro correspondente maximiza o SNR na saída. Outra maneira de analisar o ganho de processamento, se você tiver ruído senoidal no domínio do tempo em um determinado SNR e, em seguida, pegar a FFT e observar a potência do Sinsoid versus a potência do ruído no compartimento da FFT (supondo que a frequência corresponda exatamente a um Bin FFT), você verá um maior SNR ou ganho de processamento. Você pode pensar na FFT como filtros de largura de banda e o ruído em cada compartimento de frequência é espalhado em comparação com o sinal no domínio do tempo em que o ruído passa pelo sinal.
O ganho de processamento ocorre porque adiciona coerentemente os componentes do sinusóide. Então você também verá esse chamado ganho coerente. Essa adição coerente também é a razão pela qual, quando você tem um sinal mais longo, obtém mais ganho de processamento, ou seja, mais amostras se juntam de forma coerente. Por coerente, quero dizer que pressupõe que você tenha conhecimento da fase do sinal - neste caso, a frequência. Como alternativa, você pode pensar em um filtro compatível mais longo como tendo uma largura de banda mais estreita, para que menos ruído passe pelo filtro. Assim, você obtém melhor SNR ou ganho de processamento.
Observe que, se o sinusóide não se alinhar exatamente com a frequência de um compartimento de FFT, ainda haverá um pico próximo aos compartimentos de FFT, mas algumas das caixas vizinhas de FFT também conterão magnitudes significativas. Haverá um pico no compartimento de FFT mais próximo, mas será menor que o ganho de processamento. Esse efeito costuma ser chamado de vazamento espectral. Você pode usar janelas para reduzir o vazamento espectral, mas também diminui o ganho de processamento. A pior perda é quando o sinal fica exatamente entre duas frequências da caixa FFT.
Eu sugiro que você leia o jornal Harris nas janelas. Isso explica muitos detalhes dos quais estou falando.
Portanto, se você tiver um senoide com ruído branco, obterá o ganho de processamento usando a DFT / FFT. Ao pegar o IFFT / IDFT, você sofrerá uma perda de processamento porque está espalhando seu sinal de volta ao ruído.
fonte
O "ganho" é em termos do conhecimento desejado (e fácil de ver). Se você se transformar no domínio da frequência, obterá um conhecimento mais explícito / visível (como pode ser visto em um gráfico) de bandas de frequência específicas, mas perderá o conhecimento visível (não pode mais vê-lo no gráfico de FFT) de informações exatas de tempo. Se você voltar ao domínio do tempo, obterá um conhecimento mais explícito do tempo (tempo de impulso e mudanças transitórias etc.), mas perderá o conhecimento visível (se você jogar fora o gráfico anterior da FFT) de quais faixas de frequência esse tempo forma de onda do domínio estimula.
Não há ganho real nas informações inerentes presentes no vetor de tempo ou frequência, mais provavelmente algumas pequenas perdas devido à precisão numérica na FFT.
Aumentar a taxa de amostragem de um sinal já com banda limitada (já abaixo de Nyquist na taxa de amostragem mais baixa) não adiciona novas informações (exceto possivelmente mover os dados da amostra para longe das distorções do filtro anti-alias e espalhar o ruído de quantização). Não há nada novo para adicionar mais "ganho".
Porém, aumentar o tempo total do vetor de amostra (não com preenchimento zero, mas com dados relevantes mais reais) pode adicionar novas informações, o que pode permitir o "ganho" do processamento para diminuir o nível de ruído, especialmente devido a um sinal estacionário.
fonte