Transfer function is this equation in frequency domain:

$$G(f) = \frac{1}{4\pi d} e^{i2 \pi d f/c}$$

or Hankel function

d : constant (distance), c : 340

We may think we know complex number of frequency response

I usually use windowing method. but this method have group delay (filter length / 2)

(Please See this overlap save method zero padding fft gibb's phenomenon)

I have to carefully match phase. So adding linear phase (fillength/2 delay) to phase of fir filter is not reasonable.

How could I model fir filter from frequency response without group delay?


1 Answer 1


This looks very much like a simple spherical wave except that there should be a minus in the exponent somewhere.

The impulse response for this would just be

$$h_1(t) = \frac{d_0}{4\pi d} \cdot \delta(t-d/c)$$ where $d_0$ is some suitable reference distance to make the units work otherwise you end up with a transfer function that has units of $\frac{1}{m}$.

Since you DON'T have the minus, the whole thing becomes non-causal and you get

$$h_2(t) = \frac{d_0}{4\pi d} \cdot \delta(t+d/c)$$

You can sample this as

$$h_2[n] = \frac{d_0}{4\pi d} \cdot \delta(t+d/c\cdot f_s)$$ where $f_s$ is the sample rate.

The tricky part here is that $d/c \cdot f_s $ isn't an integer, so you either have to round or (if that's not good enough) implement a fractional delay. Fractional delays filters will introduce some amount of latency but it's typically small, in the order of a few samples.

See for example https://home.agh.edu.pl/~turcza/sr/Splitting%20the%20Unit%20Delay.pdf

  • $\begingroup$ Several times Thank you. $\endgroup$
    – gg h
    Feb 24, 2022 at 4:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.