I saw two examples of applying a Gaussian low pass filter to a Matlab image: one- when the filter was built in the space domain and was normalized with the sum of the filter coefficients, and another- where the filter was built in the frequency domain and no normalization was made.

Is it consistent that no normalization is needed in the frequency domain and why is it different in this respect from the spacial domain?

  • $\begingroup$ Your question has beeen answered. Do not hesitate to vote for the useful ones and accept the most suitable $\endgroup$ Commented Feb 9, 2017 at 17:30

1 Answer 1


It is consistent to apply a normalization depending on what you really want to measure. Either on Fourier transforms, or low-pass linear filters, one customary sees three types of normalizations:

  1. No normalization,
  2. Normalization for a constant input,
  3. Normalization in energy.

To be brief, for a 3-point uniform coefficient filter, that is a low-pass filter, the impulse response $h$ can be:

  1. No normalization: $h={1,1,1}$,
  2. Normalization for constant output (mean-preserving): $h={\frac{1}{3},\frac{1}{3},\frac{1}{3}}$,
  3. Normalization in energy: $h={\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}}}$.

Generally, the normalization depends on the invariance one wants to preserve. For low-pass filters, one often preserves mean (i.e. a constant image remains constant after filtering) or energy. For high-pass, some preserves energy, or estimated slope (or higher-order derivatives). Very often, the sum of coefficients of a high-pass filter is zero (a constant signal is zeroe out), thus it cannot be used for normalization. Yet, many other choices are possible.

So if you want to preserve the average value of the data, in time you normalize so that the coefficients sum to one. In frequency, you can remember that the amplitude of the $0$th frequency obtained from the Fourier transform is proportional to the sum of coefficients in time ("DC Term" in An Intuitive Explanation of Fourier Theory). So if it is non-zero, you can divise your whole Fourier spectrum by this value to get the same normalization.

The reason why people sometimes do not normalize the intensities with image filtering is that these values are often displayed and compared on a full range in the colormap (in Matlab, with function imagesc). Consequently, a scalar factor on the image is not considered harmful.


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.