# Conditions for symmetric and unimodal windows in both time and frequency domains

After a lecture on harmonic analysis and time/frequency methods, I reconsidered the Gaussian kernel, defined in continuous time.

It is unimodal and symmetric, and its continuous Fourier transform is another Gaussian, thus unimodal and symmetric (from Fourier transform of a Gaussian is not a Gaussian, but that's wrong!):

As a filter or a window, the Gaussian ensure a monotonic weight decay around its center. The interpretation in the frequency domain is similar: frequencies are monotonically attenuated away from a center frequency.

Such a property allows a straightforward interpretation in both the time and the frequency domain.

• For continuous kernels, are there generic characterizations (necessary or sufficient conditions) under which unimodal and symmetric windows also have a unimodal and symmetric amplitude spectrum?

This is only also partial answer. I translate unimodular into ripple-free, because ripples are essentially extremal points, and we just want to have a single one.

A ripple-free Fourier Transform translates (to my knowledge) to an infinitely often continuously differentiable time-domain function. Furthermore, to let the Fourier Transform be defined easily, the function should either decay very quickly or should have compact support. Hence, candidate functions would be from the Schwartz space of functions.

Unimodality further reduces the number of candidates, with the Gaussian being a prominent example. Others are Hermite Polynomials, weighted with the Gaussian. With a clever linear combination of Hermite function, you can create a function that is unimodal, different from a gaussian and still has ripple-free and symmetric Fourier transform.

import scipy.special
%matplotlib inline

Fs = 100
t = np.arange(-10, 10, 1./Fs)
H = scipy.special.hermite
g = lambda t: (H(4)(t)+H(2)(t)+80*H(0)(t)) * np.exp(-t*t)
gauss = lambda t: np.exp(-t*t)
plt.subplot(1,2,1)
plt.plot(t, g(t))
plt.plot(t, 80*gauss(t))
plt.xlim(-4,4)

plt.subplot(1,2,2)
plt.plot(20*np.log10(abs(np.fft.fft(g(t), 7*len(t)))))


I believe the ripples in the frequency are due to finite windowing and numerics. Might need more analysis with analytic solutions, e.g. from Mathematica.

So, the answer might be: The window needs to be unimodular and stem from the Schwartz space of functions?

• I believe, in general any unimodular, symmetric polynomial multiplied by a Gaussian has this property. So, it's not restricted to Hermite polynomials. – Maximilian Matthé Dec 14 '16 at 6:16

A sufficient condition is, that the distribution is spanned by zero-mean Gauss distributions with non-negative amplitude weights. The spanned space contains only symmetric and unimodal distributions and is invariant under a Fourier transform.

• Well... I was expecting sometimes more :), let's say involved, pertaining to regularity, decay etc. – Laurent Duval Dec 12 '16 at 21:02
• I understand that. I'm afraid anything more than that will take more time to think ;) – Jazzmaniac Dec 12 '16 at 21:04
• I have plenty of time. Possibly it's something quite well-known, but that I missed somewhere in my youth – Laurent Duval Dec 12 '16 at 21:06
• In that case I have missed it too. I cannot remember any general result. In any case, I believe my answer may possibly give the largest solution set with a simple topology. So I'm not sure there is a reasonably simple better sufficient or even necessary condition. – Jazzmaniac Dec 12 '16 at 21:10