Por ejemplo, para la búsqueda de la frecuencia pico, parece válido usar métodos de interpolación de banda limitada en los contenedores DFT complejos, o por separado en sus partes reales e imaginarias y para calcular las magnitudes o las magnitudes al cuadrado de los resultados. Pero, ¿qué hay de la interpolación limitada en banda de las magnitudes de los contenedores (no creo que sea válido), o sus magnitudes al cuadrado (tal vez válidas)? Por válido quiero decir que los valores perfectamente interpolados deben ser iguales a los encontrados al calcularlos a partir de un DFT más grande de una versión con relleno de cero de la señal del dominio del tiempo.
El primer enfoque garantiza un resultado no negativo, a diferencia de los otros, si la interpolación no es perfecta, consulte esta pregunta sobre la interpolación limitada de banda positiva o no negativa .
fuente
Respuestas:
Los puntos interpolados de la DFT se pueden calcular utilizando un producto de puntos de algunas muestras alrededor de la región del pico con un vector de interpolación precalculado. El vector de interpolación está determinado por la ubicación de la muestra interpolada deseada, teniendo en cuenta la cantidad de relleno cero requerido, etc., etc.
Esta técnica y la metodología para calcular los vectores de interpolación se tratan en el Apéndice B de este documento:
http://ericjacobsen.org/FTinterp.pdf
Espero que ayude un poco.
fuente
Primero una demostración de que los cuadrados de ambos
igual
pero los cuadrados de sus interpolaciones sinc difieren (Fig. 1):
Figura 1. Cuadrados de interpolaciones sinc de
Esto demuestra que, en general, no es posible recuperar el cuadrado de una señal de banda limitada de sus muestras uniformes tomadas a la frecuencia de muestreo crítica de la señal de banda limitada.
Probemos diferentes enfoques de interpolación en Octave. El estándar de oro de la interpolación de banda limitada es DFT – zero-pad – DFT:
El último conjunto de números son los valores de magnitud calculados a partir de intervalos de dominio de frecuencia perfectamente interpolados. Intentemos interpolar la magnitud en su lugar:
Parece un poco fuera de lugar. Ahora intentemos interpolar la magnitud al cuadrado :
No solo está desactivado, sino que también
sqrt()
devuelve un número complejo para un valor interpolado negativo. Entonces, ¿es la única forma válida de interpolar los valores bin?Demos una oportunidad más, al tratar de interpolar datos de dominio de frecuencia muestreados por un factor de 2. Debido a la transformación de longitud par, esto requiere duplicar la "muestra de Nyquist", por lo que me disculpo si el código es difícil de leer.
Lo anterior es lo que queremos. Intentemos interpolar 2 veces la magnitud de muestreo :
Eso todavía está apagado. Intentemos interpolar 2 veces la magnitud al cuadrado muestreada :
¡Ahora funciona perfecto! El mensaje principal es tomar una muestra ascendente (dominio cero del dominio del tiempo) al menos por un factor de dos antes de intentar interpolar en el dominio de frecuencia e interpolar la magnitud al cuadrado en lugar de la magnitud. Funciona porque tomar la magnitud al cuadrado es lo mismo que multiplicar cada valor bin por su conjugado complejo. La conjugación compleja conserva el ancho de banda de la función de banda limitada representada por los datos, por lo que la multiplicación duplica el "ancho de banda del dominio del tiempo" porque es equivalente a la convolución del dominio del tiempo. Tenga en cuenta que al elegir el método de interpolación, la magnitud al cuadrado muestreada 2x todavía se muestrea críticamente, por lo que un sobremuestreo adicional debería facilitar mucho la interpolación precisa.
¡Ya respondí mi propia pregunta, pero aceptaré más información como respuesta!
PD: Acabo de descubrir que también existe
interpft
, lo que hace la interpolación con menos sintaxis.Utilizando información adicional
La interpolación se vuelve más fácil o incluso exacta con información adicional sobre los datos, por ejemplo, que es un sinc cuadrado desplazado en el tiempo muestreado críticamente. En ese caso, dadas las dos muestrasα justo antes y γ justo después de la muestra más grande, el tiempo −1<d<1 del pico se puede calcular por:
con significa que el sinc se desplaza exactamente al tiempo de la muestra más grande. La misma interpolación se puede hacer a la mitad de la frecuencia de muestreo, que es la frecuencia de muestreo crítica de la función subyacente, cuya magnitud es igual a la de un sinc desplazado en el tiempo, con las dos muestras sucesivas de mayor valor y del cuadrado del valor absoluto de la función subyacente:d=0 α β
Las fórmulas no se ven afectadas por la escala de amplitud de los datos. Para la estimación de frecuencia, rara vez tendría un sinc cambiado de tiempo puramente real, pero si lo hace, hay fórmulas de interpolación exactas para ello .
fuente