¿Cómo encontrar el núcleo de convolución en el dominio de frecuencia?


12

Tengo dos vectores de datos espaciales (cada uno de aproximadamente 2000 elementos de longitud). Uno es una versión enrevesada del otro. Estoy tratando de determinar el núcleo que produciría tal convolución. Sé que puedo hacer esto al encontrar la transformada inversa de Fourier de la relación de las transformadas de Fourier de los vectores de salida y entrada. De hecho, cuando hago esto obtengo más o menos la forma que esperaba. Sin embargo, mi vector kernel tiene la misma dimensionalidad que los dos vectores de entrada cuando en realidad la convolución solo usaba aproximadamente un quinto (~ 300-400) de los puntos. El hecho de que estoy obteniendo la forma correcta pero el número incorrecto de puntos me hace pensar que no estoy usando las funciones ifft y fft correctamente. Parece que si realmente estuviera haciendo lo correcto, esto debería suceder naturalmente. Por el momento simplemente estoy haciendo;

FTInput = fft(in); 
FtOutput = fft(out);
kernel = ifft(FtOutput./FTInput).

¿Es correcto y depende de mí interpretar el vector de salida correctamente o he simplificado demasiado la tarea? Estoy seguro de que es lo último, pero no estoy seguro de dónde.


2
¿Sus datos de entrada están rellenados con ceros en ambos lados a la longitud del núcleo de convolución? Debería serlo, de lo contrario perderá información allí, lo que podría ser la razón de estos artefactos.
Leftaroundabout

Respuestas:


5

Si tiene ruido presente en su señal, la división directa del dominio de Fourier causará muchos errores en su resultado. Algunas formas de evitarlo son mediante el uso del llamado FFT de doble canal ( Parte 1 y Parte 2 ). También puedo sugerir la deconvolución a través de filtros adaptativos, los filtros LMS o NLMS ([Normalized] Least Mean Squares), en particular, son fáciles de entender y no son muy caros en términos de ciclos de CPU en caso de que sus señales sean largas. Los filtros adaptativos LMS son muy robustos al ruido.


Eso funcionó de maravilla gracias y descubrí un tipo completamente nuevo de cosas que no sabía que existían.
Bowler

@Phonon, ¿funcionan esos enlaces? ¿Para qué es esto un registro exactamente?
Spacey

@Mohammad: es para acceder a los artículos y libros de revisión técnica de Brüel & Kjær. Registrarse es gratis y da acceso a muchos buenos artículos.
Thor
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.