I have an audio signal sampled at 44100Hz. I want to delay this signal by 1 microsecond (and maybe even less) for a steganographic purpose. Now if I delay it one sample, the corresponding time delay will be $\frac{1}{44100} = 2.2 \times 10^{-5}\,\text{s}$. But the delay I need is even lesser than that. How to achieve it?
-
3$\begingroup$ Related: Shift a signal by fraction of a sample $\endgroup$– JuanchoJul 23, 2018 at 19:36
-
$\begingroup$ Is it a real-time application? If so, you can use fractional delay filters, either IIR or FIR. users.spa.aalto.fi/vpv/publications/vesan_vaitos/… $\endgroup$– BenJul 23, 2018 at 20:27
1 Answer
It's called a "fractional delay".
A really comprehensive analysis on how to do this can be found here: https://ieeexplore.ieee.org/document/482137/ and the design tools are still available here http://legacy.spa.aalto.fi/software/fdtools/
-
1$\begingroup$ Interesting question/answer! Can you give the gist of it in the answer? $\endgroup$– BasjJul 23, 2018 at 20:20
-
$\begingroup$ @Basj: The gist? "it's a complicated problem with no one-size-fits-all solution, the best design method depends on your specific application requirements and constraints". If you google enough, you can probably find a non-pay version of the article but I didn't want to post this here, since I don't know whether these are fully legal. $\endgroup$– HilmarJul 24, 2018 at 13:12