Preenchimento zero no domínio da frequência - tratamento especial de X [N / 2]

18

Suponha que desejemos interpolar um sinal periódico com um número par de amostras (por exemplo, N = 8), preenchendo o zero no domínio da frequência.

Deixe o DFT X=[A,B,C,D,E,F,G,H]
Now, vamos adicionar 16 amostras para dar Y. Todo exemplo de livro didático e tutorial on-line que eu vi insere zeros na doação . (Então é o sinal interpolado).[Y4...Y11]
Y=[2A,2B,2C,2D,0,0,0,0,0,0,0,0,2E,2F,2G,2H]
y = idft(Y)

Por que não usar Y=[2A,2B,2C,2D,E,0,0,0,0,0,0,0,E,2F,2G,2H]?

Tanto quanto eu posso dizer (meu conhecimento de matemática é limitado):

  • Minimiza a potência total
  • Ele garante que, se xfor com valor real, seráy
  • yainda cruza xem todos os pontos de amostra, conforme necessário (acho que isso vale para qualquer plugar Y=[2A,2B,2C,2D,pE,0,0,0,0,0,0,0,(2-p)E,2F,2G,2H])

Então, por que isso nunca é feito dessa maneira?


Editar : xnão é necessariamente com valor real ou com banda limitada.

finnw
fonte
Você escreve "Todo exemplo de livro didático e tutorial on-line que eu vi insere zeros em ...", você pode atualizar sua postagem com algumas referências? Apenas curioso, porque você também escreve que x não é necessariamente com valor real e a primeira construção que você menciona não produz (em geral) um resultado real por DFT inverso.
Niaren 29/09/11
@niaren aqui está um exemplo: dspguru.com/dsp/howtos/…
finnw
1
Vale a pena notar que, para que seja com valor real, você deve permitir que Y = [ 2 A , 2 B , 2 C , 2 D , E , 0 , 0 , 0 , 0 , 0 , 0 , 0 , E * , 2 M , 2 L , 2 H ]yY=[2A,2B,2C,2D,E,0,0,0,0,0,0,0,E,2F,2G,2H](ou seja, quando você duplica E para a metade da "frequência negativa" do vetor no domínio da frequência, é necessário conjugá-lo. Sinais reais no domínio do tempo têm DFTs conjugados-simétricos.
Jason R
1
@ Jason R, se o sinal de entrada tiver valor real, então o E também será [2A, 2B, 2C, 2D, E, 0,0,0,0,0,0,0, E, 2F, 2G, 2H] satisfaz esta condição. Se a entrada não for com valor real, não é necessário forçar a saída para ser com valor real.
finnw
Você está certo. É o que recebo por escrever um comentário tarde da noite.
Jason R

Respostas:

7

Vejamos as frequências dos caixotes no seu DFT de 8 pontos:

Assim, quando interpolar por um factor de dois ,a frequência dopontoEse torna-πou+π.

ωA=0,ωB=π/4,ωC=π/2,ωD=3π/4,ωE=π=π (mod 2π),ωF=5π/4=3π/4 (mod 2π),ωG=3π/2=π/2 (mod 2π),ωH=7π/4=π/4 (mod 2π)
Eπ+π

À primeira vista, não consigo ver qual é o problema da sua abordagem, pois não está claro se deve ser colocado na lixeira associada a π ou - π .Eππ

Na página de Julius O. Smith III , ele afirma uma condição:

Além disso, exigimos quando N é par, enquanto que o ímpar não exige essa restrição.x(N/2)=x(N/2)=0N

E seu exemplo existe para um ímpar , que evita o problema.N


Não sei se é necessário, mas aqui está a referência completa ao trabalho de Julius:

Smith, JO Matemática da Transformada Discreta de Fourier (DFT) com Aplicações de Áudio, Segunda Edição, http://ccrma.stanford.edu/~jos/mdft/ , 2007, livro online, acessado em 28 de setembro de 2011.

Peter K.
fonte
2

Existem várias maneiras de interpolar dados. Interpolação em minha mente significa que você 'desenha' linhas entre alguns pontos de dados. Isso pode ser feito de várias maneiras. Um tipo de interpolação que é útil no DSP (especialmente no DSP multirate) é a 'Interpolação ilimitada por banda'. Se você pesquisar no Google, receberá muitos hits interessantes e úteis. O que você propõe não é interpolação ilimitada por banda. No seu 'upsampled' x, você tem componentes de frequência que não estão presentes no x original.

Editar (muito tempo para caber em um comentário):

Há uma diferença bastante significativa entre sua construção, começando com e o exemplo na referência que você fornece.X=[A,B,C,D,E,F,G,H]

Considerando a entrada real

X=[A,B,C,D,E,D,C,B]

Upsampling por um fator de 2 para entrada de banda cheia. Neste caso upsampling pode ser realizada por primeiros zeros colocação na entrada intercalados (que é . O resultado é um sinal com um espectro de frequência que contém uma versão comprimida do espectro de frequência x (na faixa de 0 - π / 2 ) e uma imagem que se estende de π / 2 - π (considerando apenas o eixo de frequência positivo) .Se x2 for a versão ampliada,x0,0,x1,0,...0π/2π/2π

X2=[A,B,C,D,E,D,C,B,A,B,C,D,E,D,C,B]

π/2

yn=k=x2ksinc(0.5nk)

Na prática, porém, haverá alguma distorção porque o filtro da parede de tijolos não é realista. O filtro prático pode suprimir / remover frequências na entrada ou pode deixar em alguns dos componentes de frequência na imagem no sinal ampliado. Ou o filtro pode fazer um compromisso entre os dois. Penso que a sua construção no domínio da frequência também reflete esse compromisso. Esses dois exemplos representam duas opções diferentes:

Y=[A,B,C,D,E,0,0,0,0,0,0,0,E,D,C,B]

Y=[A,B,C,D,0,0,0,0,0,0,0,0,0,D,C,B]

Se a entrada for limitada por banda abaixo da frequência nyquist, como na sua referência, esse problema desaparecerá.

ρ

Y=[A,B,C,D,ρ,0,0,0,0,0,0,0,ρ,D,C,B]

niaren
fonte
1
x
@leftaroundabout O x original é ilimitado em banda (neste exemplo, para a frequência Nyquist). O OP deseja aumentar a amostra x por um fator de 2 (minha interpretação). Uma maneira de fazer o upsample de x é inserir zeros na resposta de frequência, como mostra OP (o exemplo sem E, o mostrado nos manuais DSP) e executar uma FFT inversa. Eu acredito que o mesmo poderia ter sido conseguido inserindo zeros (intercalados) nos filtros xe (passa-baixo) por um sinc. Ao inserir E, como mostrado pelo OP, o x de amostra ampliada não é ilimitado de banda para a frequência Nyquist original. Isso normalmente não é desejado (é distorção). Você concorda?
Niaren
1
Eπ2π2
Estou assumindo que a frequência ± N / 2 esteja presente em x. Se não for (devido a bandlimiting ou de outro modo), em seguida, E seria 0 de qualquer maneira para que houvesse nenhuma diferença entre preenchimento com E (ou 2E) e preenchimento com 0.
finnw
1
Um sinal ilimitado de banda ainda pode ter conteúdo no compartimento N / 2 devido a "vazamento espectral" de qualquer conteúdo espectral não periódico na abertura DFT, especialmente próximo (mas não em) Fs / 2.
hotpaw2