Relleno cero en el dominio de la frecuencia: tratamiento especial de X [N / 2]

18

Supongamos que deseamos interpolar una señal periódica con un número par de muestras (por ejemplo, N = 8) rellenando con ceros en el dominio de frecuencia.

Deje que el DFT X=[A,B,C,D,E,F,G,H]
ahora lo llenemos a 16 muestras para dar Y. Cada ejemplo de libro de texto y tutorial en línea que he visto inserta ceros al dar . (Entonces es la señal interpolada).[Y4...Y11]
Y=[2A,2B,2C,2D,0,0,0,0,0,0,0,0,2E,2F,2G,2H]
y = idft(Y)

¿Por qué no utilizar en su lugar Y=[2A,2B,2C,2D,E,0,0,0,0,0,0,0,E,2F,2G,2H]?

Por lo que puedo decir (mi conocimiento de matemáticas es limitado):

  • Minimiza la potencia total.
  • Asegura que si xes un valor real, entonces también lo esy
  • ytodavía se cruza xen todos los puntos de muestra, según sea necesario (creo que esto es cierto para cualquier plugar Y=[2A,2B,2C,2D,pE,0,0,0,0,0,0,0,(2-p)E,2F,2G,2H])

Entonces, ¿por qué nunca se hace de esta manera?


Editar : xno es necesariamente un valor real o limitado por banda.

finnw
fuente
Usted escribe "Cada ejemplo de libro de texto y tutorial en línea que he visto inserta ceros en ...", ¿puede actualizar su publicación con algunas referencias? Es curioso porque también escribes que x no es necesariamente un valor real y que la primera construcción que mencionas no produce (en general) un resultado real por DFT inversa.
niaren
@niaren aquí hay un ejemplo: dspguru.com/dsp/howtos/…
finnw
1
Vale la pena señalar que para que tenga un valor real, entonces deberá dejar (es decir, cuando duplica E para la mitad de "frecuencia negativa" del vector de dominio de frecuencia, necesita conjugarlo. Las señales que son reales en el dominio de tiempo tienen DFT simétricos conjugados.Y = [ 2 A , 2 B , 2 C , 2 D , E , 0 , 0 , 0 , 0 , 0 , 0 , 0 , E , 2 F , 2 G , 2 H ]yY=[2A,2B,2C,2D,E,0,0,0,0,0,0,0,E,2F,2G,2H]
Jason R
1
@ Jason R, si la señal de entrada tiene un valor real, entonces también lo es E así [2A, 2B, 2C, 2D, E, 0,0,0,0,0,0,0, E, 2F, 2G, 2H] Satisface esta condición. Si la entrada no tiene un valor real, entonces no es necesario forzar la salida para que tenga un valor real.
finnw
Estás en lo correcto. Eso es lo que obtengo por escribir un comentario demasiado tarde en la noche.
Jason R

Respuestas:

7

Veamos las frecuencias de los contenedores en su DFT de 8 puntos:

E-π+π

ωUN=0 0,ωsi=π/ /4 4,ωC=π/ /2,ωre=3π/ /4 4,ωmi=π=-π (metroore 2π),ωF=5 5π/ /4 4=-3π/ /4 4 (metroore 2π),ωsol=3π/ /2=-π/ /2 (metroore 2π),ωH=7 7π/ /4 4=-π/ /4 4 (metroore 2π)
Entonces, cuando se interpola por un factor de 2, la frecuencia del punto convierte en o .mi-π+π

A primera vista, no puedo ver cuál es el problema con su enfoque, ya que no está claro si debe colocarse en el contenedor asociado con o .π - πmiπ-π

En la página de Julius O. Smith III , declara una condición:

Además, requerimos cuando es par, mientras que impar no requiere dicha restricción.NX(norte/ /2)=X(-norte/ /2)=0 0norte

Y su ejemplo es para un impar , lo que evita el problema.norte


No estoy seguro de que sea obligatorio, pero aquí está la referencia completa al trabajo de Julius:

Smith, JO Mathematics of the Discrete Fourier Transform (DFT) with Audio Applications, Segunda edición, http://ccrma.stanford.edu/~jos/mdft/ , 2007, libro en línea, consultado el 28 de septiembre de 2011.

Peter K.
fuente
2

Hay muchas formas de interpolar datos. La interpolación en mi mente significa que 'dibuja' líneas entre algunos puntos de datos. Esto se puede hacer de muchas maneras. Un tipo de interpolación que es útil en DSP (especialmente en DSP multirate) es 'interpolación de banda limitada'. Si buscas en Google, obtendrás muchos éxitos interesantes y útiles. Lo que usted propone no es interpolación ilimitada de banda. En su x 'muestreado' tiene componentes de frecuencia que no están presentes en la x original.

Editar (demasiado largo para caber en un comentario):

Hay una diferencia bastante significativa entre su construcción, comenzando con y el ejemplo en la referencia que proporciona.X=[UN,si,C,re,mi,F,sol,H]

Considerando real input

X=[UN,si,C,re,mi,re,C,si]

Upsampling por un factor de 2 para entrada de banda completa. En este caso se puede realizar colocando primero ceros en la entrada intercalada (es El resultado es una señal con un espectro de frecuencia que contiene una versión comprimida del espectro de frecuencia de x ( en el rango ) y una imagen que se extiende desde (considerando solo el eje de frecuencia positiva). Si x2 es la versión muestreada, entonces0 - π / 2 π / 2 - πX0 0,0 0,X1,0 0,...0 0-π/ /2π/ /2-π

X2=[UN,si,C,re,mi,re,C,si,UN,si,C,re,mi,re,C,si]

En el caso ideal, se requiere un filtro de pared de ladrillo ideal con frecuencia de corte para eliminar la imagen. Es decir (para entrada infinita)π/ /2

ynorte=k=-X2ksyonorteC(0,5norte-k)

En la práctica, habrá cierta distorsión porque el filtro de pared de ladrillo no es realista. El práctico filtro puede suprimir / eliminar frecuencias en la entrada o puede dejar algunos de los componentes de frecuencia en la imagen en la señal muestreada. O el filtro puede hacer un compromiso entre los dos. Creo que su construcción de dominio de frecuencia también refleja este compromiso. Estos dos ejemplos representan dos opciones diferentes:

Y=[UN,si,C,re,mi,0 0,0 0,0 0,0 0,0 0,0 0,0 0,mi,re,C,si]

Y=[UN,si,C,re,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,re,C,si]

Si la entrada está limitada por banda por debajo de la frecuencia de nyquist como en su referencia, este problema desaparece.

Tal vez sea posible encontrar un valor de continuación, de modo que alguna función de error, por ejemplo, el error al cuadrado entre el espectro de entrada y el espectro de salida muestreado sea mínimo.ρ

Y=[UN,si,C,re,ρ,0 0,0 0,0 0,0 0,0 0,0 0,0 0,ρ,re,C,si]

niaren
fuente
1
Claro que es interpolación de banda ilimitada. ¿Qué quieres decir con componentes de frecuencia no presentes en la original ? X
Leftaroundabout
@leftaroundabout La x original está limitada en banda (en este ejemplo a la frecuencia Nyquist). OP quiere muestrear x por un factor de 2 (mi interpretación). Una forma de aumentar la muestra x es insertar ceros en la respuesta de frecuencia como se muestra en OP (el ejemplo sin E, el que se muestra en los libros de texto DSP) y hacer una FFT inversa. Creo que lo mismo podría haberse logrado insertando ceros (intercalados) en x y (paso bajo) filtro por un sinc. Al insertar E como se muestra en OP, la x aumentada no está limitada a la frecuencia Nyquist original. Esto normalmente no se desea (es distorsión). ¿Estás de acuerdo?
niaren
1
Insertar ceros intercalados y convolucionados con un sinc (multiplicado por 2) debería ser la operación correspondiente en el dominio del tiempo. - No creo que sea una distorsión: los dos contenedores en los que OP puso s representan la misma frecuencia, . miπ2-π2
Leftaroundabout
Supongo que la frecuencia ± N / 2 está presente en x. Si no lo es (debido a la limitación de banda o no), entonces E sería 0 de todos modos, por lo que no habría diferencia entre el relleno con E (o 2E) y el relleno con 0.
finnw
1
Una señal de banda limitada aún puede tener contenido en el contenedor N / 2 debido a la "fuga espectral" de cualquier contenido espectral de apertura no periódica en DFT, especialmente cerca (pero no en) Fs / 2.
hotpaw2