Sentido de zeropadding em um domínio do tempo

7

Eu tenho a tarefa relacionada à transformação Radon, que contém uma subtarefa que usa reamostragem por meio de DFT.

Vamos considerar o sinal discretizado não periódico (Fig.1) (por exemplo, a sequência de pixels) com 515 pixels de comprimento. Na minha implementação para reamostragem contém as seguintes etapas:

  1. Deslocamento à esquerda cíclico (Fig.2).
  2. Adicione zeros ao centro para que o comprimento do sinal se torne 2 ^ n (no nosso caso, 1024-515 = 509 zeros, devemos adicionar) (Fig. 3).
  3. Obtenha DFT deste sinal (Fig. 4).
  4. Deslocamento à direita cíclico. (para mudar as frequências baixas para o centro) (Fig.5)

Figura 1 Imagem original

Figura 2 Deslocamento à esquerda cíclico

Fig.3 Zeropadded

Fig.4 DFT Spectrum

Fig.5 DFT mudou de volta

A questão principal:

Por que devemos executar a mudança cíclica do sinal e adicionar zeros exatamente no centro? (Eu assumi o que isso tornava o sinal periódico). Zeropadding faz espectro DFT de interpolação, está correto? (Perguntei e alguém diz o que não é bem assim) Talvez alguém possa explicar de maneira simples o que acontece com o sinal após o zeropadding.

Fiz algumas experiências em um Matlab e descobri que qualquer outra sequência de ações não pode dar o resultado necessário.

Agora vamos considerar dois casos:

a) (ESTA VARIEDADE CORRETA) Temos o sinal discretizado não periódico (por exemplo, a sequência de pixels) que será cíclica deslocada para zeros à esquerda e preenchidos no centro, após o qual será obtida a DFT a partir disso e a mudança para trás. insira a descrição da imagem aqui

b) Temos o sinal discretizado não periódico (por exemplo, as seqüências de pixels definidas) que serão preenchidos com zeros da esquerda e da direita depois disso será obtido DFT a partir disso.

insira a descrição da imagem aqui

Qual a diferença desses espectros DFT?

Eu li alguns livros, mas não encontrei a resposta do caso deste zeropadding. Parece que isso só pode ser encontrado por experiência própria.

Resposta no livro:

AC Kak e Malcolm Slaney, Princípios de Imagem Tomográfica Computadorizada, Sociedade de Matemática Industrial e Aplicada, 2001 na página 25

Roman Shkarin
fonte
É difícil para mim dizer exatamente o que você está tentando fazer. Deseja interpolar o sinal no domínio do tempo (por exemplo, DFT, zero-pad no domínio da frequência e depois IDFT) ou interpolar no domínio da frequência (zero-pad no domínio do tempo e depois DFT)?
Jason R
@JasonR, quero executar a interpolação do domínio da frequência através do preenchimento zero em um domínio do tempo. Mas não consigo entender por que, para uma interpolação adequada, devo executar um deslocamento circular no N / 2 e depois fazer com que o zeros de preenchimento seja o centro.
Roman Shkarin
11
Se você não alternar o ffts, todos os resultados da fase serão alterados após o preenchimento com zero (em qualquer quantidade diferente da largura da janela original). Assim, você obterá resultados diferentes, não apenas resultados interpolados. Um espectro torcido não é o mesmo que um espectro não torcido.
hotpaw2

Respostas:

3

Mudar os pontos de dados (fftshift) e zerar o centro exato da abertura da FFT possui a propriedade de que todos os componentes pares (simétricos) com referência ao centro dos dados originais acabam na parte real do resultado complexo da FFT , e todos os componentes ímpares terminam na parte imaginária. por exemplo, a razão de uniformidade / estranheza é preservada, o que permite que a fase (com referência ao centro da janela) seja facilmente interpolada.

Ser capaz de interpolar a fase é importante no caso de uma FFT com preenchimento zero, porque o preenchimento zero interpola também a magnitude espectral. Como o preenchimento zero resulta em um resultado FFT interpolado, isso significa que quaisquer pontos de resultado FFT não interpolados originais precisarão ser interpolados do resultado preenchido com zero. Sem um desvio da FFT dos dados não preenchidos e zero, esses resultados interpolados serão diferentes dos resultados da FFT não interpolados (em fase).

Essa técnica é um resultado simples (nível de dever de casa ou questionário) da propriedade FT de que uma mudança em um domínio é uma modulação de frequência complexa no outro domínio.

hotpaw2
fonte
Pelo que entendi, se adicionar zeros ao final do sinal, a fase no domínio da frequência não será simétrica no centro, certo? Você poderia explicar o sentido físico da "relação entre uniformidade e estranheza" e como calcular isso?
Roman Shkarin
Funções pares versus funções ímpares parecem uma nova pergunta. Talvez uma pergunta de matemática?
hotpaw2
Você poderia explicar o que obteremos quando "o conjunto de dados original terminar na parte real do resultado complexo da FFT e todos os componentes ímpares acabarem na parte imaginária" ou por que isso é melhor do que quando o conjunto de dados original não corresponde aos valores reais da FFT e todos os componentes ímpares não correspondem à parte imaginária do resultado da FFT? Para mim, é muito importante entender o sentido físico dessas ações.
Roman Shkarin
11
Ângulo de referência = 0 para o centro da janela. Então todos os cossenos serão funções pares (simétricas ao redor do centro) e aparecerão na parte real de qualquer resultado complexo de FFT. Verdadeiro mesmo para frequências não periódicas e, portanto, invariável em relação à largura da janela. Se você deseja que as coisas não mudem, propriedades invariantes são úteis.
hotpaw2
Eu poderia refinar todas as suas mensagens sobre o caso, quando o zero-padding e shift são executados exatamente ANTES de usar FFT nesse sinal? Porque me parece que eu confundido um pouco :)
Roman Shkarin
1

@ Roman: a partir da minha experiência, seja no domínio do tempo ou no domínio da frequência, a interpolação (digamos pelo fator 2) resulta em maior frequência de amostragem (sinal de aumento de amostragem, (2 * Fs)). Para a interpolação no domínio do tempo, inserimos zeros em amostras alternativas, da mesma forma que inserimos zeros porque estamos convertendo o sinal em uma frequência de amostragem mais alta, deixando a largura de banda do sinal intocada. O motivo exato para o "preenchimento central" está relacionado ao índice FFT versus o índice de banda base (BB). por exemplo, sinal BW fm e frequência de amostragem Fs, no domínio da frequência, temos o sinal fm centrado em + NFs e -NFs onde N é um número inteiro (0,1,2 ...). O sinal em torno de DC (sinal da banda base) ocupa de -fm / 2 a fm / 2 e o sinal em Fs ocupa de Fs-fm / 2 a Fs + fm / 2 e assim por diante, todas essas réplicas carregam a mesma informação. Em vez de considerar -fm / 2 em DC, estamos considerando Fs-fm / 2 (ambos são iguais), apenas a diferença é positiva ou negativa. Finalmente, o sinal que consideramos é {[DC para fm / 2] [Fs-fm / 2 para Fs]} por esse motivo, preenchemos zeros extras (depende do fator de ampliação) entre [fm / 2 a Fs-fm / 2] por mantendo o sinal original fm intacto.

Taru
fonte
Obrigado! Você poderia explicar por que você subtrai fm / 2 da frequência de amostragem? Você também disse "o sinal fm centrado em + NFs e -NFs onde N é inteiro (0,1,2 ...)" você quis dizer que o sinal localizado entre -NFs e + NFs, certo?
Roman Shkarin
11
@ Roman: Após a amostragem, temos réplicas do sinal (fm) em + NFs e -NFs. O sinal da banda base (N = 0) está localizado entre [-fm / 2 fm / 2]. As réplicas (imagens) do sinal original estão centralizadas em + NFs e -NFs (N = 1,2,3, ... ) Para N = 1, o sinal (fm) é centralizado em Fs e a banda do sinal é [Fs-fm / 2 Fs + fm / 2] semelhante ao caso da banda base, exceto a adição de Fs.
Taru
Como eu entendi no caso de sinal finito (faixa de pixels), o DFT reconhece isso como sinal periódico, também o arranjo de amostras no sinal de origem faz sentido no caso de zeropadding (zeropadding dará resultados diferentes no caso de diferentes posições de amostras). Antes da DFT, realizamos o deslocamento circular para organizar as amostras no sinal de origem da mesma maneira que serão organizadas após a DFT? Se a mudança circular tem algum sentido de evitar erros causados ​​pela convolução circular do zeropaddding? Desculpe, eu não sou tão experiente nesta área.
Roman Shkarin
0

Se eu tiver uma saída do filtro passa-banda e quiser convertê-lo novamente no domínio do tempo.

Também é a abordagem correta do deslocamento cíclico para a esquerda e zeros no meio antes de aplicar a janela e converter novamente no domínio do tempo?

jomegaA
fonte