5
$\begingroup$

I have a filter kernel $K(\omega)$ completely defined in the frequency domain as a continuous function of angular frequency $\omega$. I know $K(\omega)$ defined as a continuous mathematical equation.

Using the discrete FFT and IFFT, I would like to apply this kernel to a discrete time-domain signal using convolution via multiplication in the frequency domain.

What is a good way to deal with this convolution? Should I generate the $U(\omega)$ as a continuous function in the frequency domain, take the IFFT, and then truncate, shift and window the signal as mentioned in the book Steven W. Smith - The Scientist and Engineer's Guide to Digital Signal Processing?

Alternately, should I take the continuous inverse Fourier transform of the function $K(\omega)$, and generate $k(t)$ completely in the time domain as a discrete signal by evaluating $k(t)$ for discrete values of $t$? Then $k(t)$ can be treated as a FIR filter kernel and taken into the frequency domain.

Although this is a discrete 1D signal, are 2D image filtering kernels generated in the frequency or spatial domains? What is the difference between the application of the kernels in the time and frequency domains?

$\endgroup$
4
  • $\begingroup$ Is $K(\omega)$ known analytically? If so, you may be able to calculate its inverse discrete-time Fourier transform to arrive at a discrete time-domain sequence with the desired impulse response. $\endgroup$
    – Jason R
    Oct 26, 2012 at 17:32
  • $\begingroup$ @Jason R: Yes, $K(\omega)$ is rather complicated, and it is analytical. Do I compute the inverse numerically with a IFFT algorithm (i.e. in Matlab, ifft()) or do I compute the inverse symbolically, on paper or using a CAS? $\endgroup$ Oct 26, 2012 at 17:37
  • $\begingroup$ If you can, a symbolic inverse would be best, because then you'll get the exact discrete time-domain sequence that you want. But that might not be feasible depending upon the form of $K(\omega)$. One other approach is to use arbitrary filter-design methods to design a filter (either FIR or IIR) whose response looks close enough to $K(\omega)$ for what you want. $\endgroup$
    – Jason R
    Oct 26, 2012 at 18:16
  • $\begingroup$ @JasonR: OK, that sounds good. Thanks Jason. $\endgroup$ Oct 26, 2012 at 19:23

1 Answer 1

1
$\begingroup$

Given an Image $ I \in \mathbb{R}^{m \times n} $ I would solve it as following (Using the Convolution Theorem):

  1. I would sample the function in Fourier Domain into a grid of $ m \times n $.
  2. I would apply DFT transform on the image to get the $ m \times n $ representation in the Fourier Domain.
  3. I would apply Element Wise multiplication between the 2 $ m \times n $ arrays.
  4. I would apply Inverse DFT on the result to get the filtered image in the spatial domain.

Pay attention that this will result in Cyclic Convolution and not Linear Convolution (Which requires more padding).

$\endgroup$
1
  • $\begingroup$ Yes, the linear convolution operation would definitely involve padding. The padding operation would be the same as is nominally done with discrete signal processing. $\endgroup$ Aug 16, 2019 at 14:26

Your Answer

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

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