How to design fir filter from transfer function

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)

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?

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.

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