Desplazar una señal por fracción de una muestra

9

Tengo una señal con un tiempo de muestra de 0.5 micro segundos y me gustaría cambiar esta señal por una fracción del tiempo de muestra, digamos por 3 nano segundos.

He leído algunos recursos en línea sobre el filtrado de retraso fraccional y sobre el uso de FFT e IFFT para realizar dicho retraso. ¿Alguien puede señalarme alguna teoría sobre esto o darme una idea sobre cómo implementarlo?

Para el desplazamiento regular de la señal para muestras enteras, he implementado esto cambiando la señal por el número requerido de muestras y agregando ceros al principio. ¿Es correcto este enfoque?

smyslov
fuente

Respuestas:

13

Hay un buen artículo general que apareció en 1996 en la revista IEEE Signal Processing: División de la unidad de retraso: herramientas para el diseño de filtro de retraso fraccional . Lo bueno de esto es que también hay un conjunto de archivos Matlab relacionados disponibles. Estas rutinas le permitirán diseñar dicho sistema.

En cuanto al desplazamiento por un número entero de muestras, lo que hiciste es obviamente correcto.

Matt L.
fuente
Solo hojeé el documento, así que no estoy seguro de si esto está explícitamente allí, pero el retraso fraccional está relacionado con la derivada fraccional, que generaliza la derivada n-ésima al orden arbitrario.
soultrane
2

Además de hacer soluciones de tipo fft, también puede usar la interpolación, ¡el tipo específico de interpolación que sea apropiado se basará en sus necesidades, por supuesto! La interpolación lineal me ha funcionado bien en el pasado con efectos de brida, pero su kilometraje puede variar.

La interpolación de Lagrange también podría valer la pena mirar por cierto, si la interpolación lineal no es lo suficientemente buena. http://blog.demofox.org/2015/07/08/lagrange-interpolation/

Alan Wolfe
fuente
Hermite podría ser mejor que Lagrange, pero si tiene acceso a MATLAB (o un programa de diseño de filtro FIR), puede diseñar usted mismo un interpolador de "banco de filtros polifásicos" en el que tenga conjuntos de coeficientes para una variedad de diferentes, uniformemente espaciados, retrasos fraccionados elija los dos retrasos fraccionados discretos más cercanos a su retraso fraccional dado e interpole linealmente entre ellos.
robert bristow-johnson el
0

Esto se puede hacer usando la función 'delayseq' en MATLAB. Esta función puede cambiar la señal en muestras fraccionarias. Puede escribir la cantidad de muestras que desea cambiar o, en términos de tiempo, la cantidad de retraso que desea. Pero lo importante a tener en cuenta es que la señal retrasada tiene la misma longitud que la señal original, por lo que si no desea truncar la señal, primero use cero relleno y luego delayseq. https://in.mathworks.com/help/phased/ref/delayseq.html

Mitali Rathod
fuente