Here is a plot of the generated 1D sinc filter kernel.

Here is a plot of the generated 2D jinc filter kernel.

I'd expect it to look more like a series of rings or ripples, rather than a donut or torus.

The FFT output for randn noise put through the 2D filter doesn't look right either.

Changing filter_ = 2 * cutoff * window * jinc(2 * cutoff * time) to filter_ = 2 * cutoff * window * sinc(2 * cutoff * time) in kaiser_jinc_filter2d makes a more familiar kernel.

And the FFT output for randn noise put through this 2D filter looks about how I'd expect.
Here is a plot of the generated 1D sinc filter kernel.

Here is a plot of the generated 2D jinc filter kernel.

I'd expect it to look more like a series of rings or ripples, rather than a donut or torus.
The FFT output for randn noise put through the 2D filter doesn't look right either.
Changing
filter_ = 2 * cutoff * window * jinc(2 * cutoff * time)tofilter_ = 2 * cutoff * window * sinc(2 * cutoff * time)inkaiser_jinc_filter2dmakes a more familiar kernel.And the FFT output for randn noise put through this 2D filter looks about how I'd expect.