J'ai un signal avec un temps d'échantillonnage de 0,5 micro seconde et je voudrais décaler ce signal d'une fraction du temps d'échantillonnage, disons de 3 nano secondes.
J'ai lu quelques ressources en ligne sur le filtrage des retards fractionnaires et sur l'utilisation de la FFT et de l'IFFT pour effectuer un tel retard. Quelqu'un peut-il m'indiquer une théorie à ce sujet ou me donner une idée sur la façon de le mettre en œuvre.
Pour le décalage régulier du signal pour les échantillons entiers, je l'ai mis en œuvre en décalant le signal du nombre d'échantillons requis et en ajoutant des zéros au début. Cette approche est-elle correcte?
En plus de faire des solutions de type fft, vous pouvez également utiliser l'interpolation, le type spécifique d'interpolation approprié serait bien sûr basé sur vos besoins! L'interpolation linéaire a bien fonctionné pour moi dans le passé avec des effets de bride, mais votre kilométrage peut varier.
L'interpolation de Lagrange pourrait également valoir la peine de se pencher sur btw, si l'interpolation linéaire n'est pas assez bonne. http://blog.demofox.org/2015/07/08/lagrange-interpolation/
la source
Cela peut être fait en utilisant la fonction 'delayseq' dans MATLAB. Cette fonction peut décaler le signal dans des échantillons fractionnaires. Vous pouvez soit écrire le nombre d'échantillons que vous souhaitez décaler, soit le délai souhaité. Mais la chose importante à noter est que le signal retardé a la même longueur que celui du signal d'origine, donc si vous ne voulez pas tronquer le signal, utilisez d'abord le remplissage zéro puis delayseq. https://in.mathworks.com/help/phased/ref/delayseq.html
la source