# How to design a delay and sum beam former with fractional delay less than one sample?

I am supposed to design a delay and sum beam former for a short audio. But the sampling frequency is only 8kHz and after times the delay, the fractional delay is less then one sample, and after the "floor" function in Matlab, all the fractional delay integer will be 0 and the results are neither fractional delayed nor time aligned. Exponential weights cannot be used in this case for the reason no imaginary part should be in the filtered signal.

• What you need is a fractional delay filter. You would pass the signal through the filter to apply the desired fractional sample delay, then add it to the original. – Jason R Mar 29 '15 at 1:03
• um, that's hard to do if your interpolation is symmetric (i.e. the interpolation would work the same if you reversed the signal in time). the only way to interpolate to a fractional sample precision where the actual delay, in real time, is less than 1 sample, is linear interpolation. in other words, if you were using 4-sample 3rd-order Hermite polynomial interpolation, your fractional-sample-precision delay would have to be at least 1 sample delay. if it was an 8-sample 7th-order Hermite polynomial, the delay would have to be at least 3 samples. – robert bristow-johnson Mar 29 '15 at 4:05

A different approach is to use interpolation in time-domain to obtain values between samples, e.g. using interp1. This approach will be much slower, if it matters.