I need to find a way to create some fractional delay in a signal processing application that I am working on. Separately to this, I have been messing around with basic filter design (despite reading alot about them, including in the Scientists and engineers guide to DSP, I have still only basic understanding of filters).
During the course of this experimentation, I noticed that one of the random filters I was messing around with caused a delay of 3 samples, and that the impulse response was centred at 3 samples. I have gone back over relevant pages in the DSP guide and now understand what it says better, and that this should be the case.
So, by my current understanding, if I was to create a filter with an impulse response of:
1, 0, 0, 0, 0, 0 (starting at sample 0)
it would pass the signal unchanged.
if I had an impulse response of:
0, 0, 1, 0, 0, 0 (starting at sample 0)
it would pass the signal unchanged aside from a delay of 2 samples.
So, could I create a filter that gives fractional delay by interpolating the impulse response? As an example, if I wanted a delay of 0.75 samples, could I create a filter with this impulse response:
0.25, 0.75, 0, 0, 0, 0 (starting at sample 0)
and if I wanted a time delay of 2.4 samples, an impulse response of:
0, 0, 0.6, 0.4, 0, 0 (starting at sample 0)
I am aware that these filters would be very much sample rate dependant in terms of the real time shifts they created, but that could be easily accounted for.
Cheers in advance for any help,
Pete
EDIT:
I'm sorry if the impulse response notation is a bit crummy, I'm not really sure how the best way to write it would be