8
$\begingroup$

Is there a way to compute the main lobe width of windows of the generalized Hamming window family (i.e. Hann, Hamming, etc.)? By main lobe I mean the first zeros left and right of the center of the Fourier transform of the windows.

I could not find any derivation in any of the standard textbooks. In Oppenheim/Schafer 'Discrete-time signal processing' (2nd Ed., p. 471), only the 'approximate width' of the main lobe is provided without proof.

Just to give you some background: Windows of the generalized Hamming window family are given by the following equation: $w_H(n) = w_R(n) \cdot (\alpha + 2\beta \cdot cos(\Omega_M n))$ (see e.g. here), where $w_R(n)$ is the rectangular window of length $M$, and $\Omega_M = \frac{2\pi}{M}$.

The Fourier transform (FT) of these windows is given by: $W_H(\omega) = \alpha W_R(\omega) + \beta W_R(\omega - \Omega_M) + \beta W_R(\omega + \Omega_M)$. In this equation $W_R(\omega)$ denotes the Fourier transform of the rectangular window.

$W_R(\omega)$ is simply a sinc-function, so $W_H(\omega)$ consists of the sum of three sinc functions with centers at different positions of the frequency axis.

$\endgroup$
11
  • $\begingroup$ Numerically find the roots of $W_H(\omega)$? Is that exact enough for you, or are you looking for a closed analytic form? $\endgroup$
    – Jason R
    Commented Jul 22, 2014 at 14:50
  • $\begingroup$ I was hoping to find a closed form. $\endgroup$
    – koffer
    Commented Jul 22, 2014 at 14:51
  • $\begingroup$ @Jason, but do you have any suggestions to find the roots without using a generic root finder? $\endgroup$
    – koffer
    Commented Jul 22, 2014 at 15:06
  • $\begingroup$ The first zero occurs when $W_H(\omega)$ first reaches zero (obviously), so we're just solving for $\omega$ when $\alpha W_R(\omega) = -\beta(W_R(\omega-\Omega_M)+W_R(\omega+\Omega_M))$. But looking at the first zero without worrying about the sidelobe height appears to be missing the point of windowing: you're not consistently trading mainlobe width for sidelobe height. $\endgroup$
    – dpwe
    Commented Jul 22, 2014 at 15:08
  • $\begingroup$ This might be a good question for math.SE. If you provide the function (i.e. the sum of $\text{sinc}$ functions, they might be able to suggest a closed form solution for the roots. $\endgroup$
    – Jason R
    Commented Jul 22, 2014 at 15:08

1 Answer 1

3
$\begingroup$

(This used to be a partial answer, but I have edited it to include the requested result at the bottom.)

First of all, you can view a Hamming family window as the sum of a Hann window and a rectangular window: If $W_N$ is the fourier transform of a Hann window, then $W_H(\omega)=(\alpha-2\beta)W_R(\omega)+4\beta W_N(\omega)$. If, for simplicity, we assume unit amplitude ($\beta=\frac{1-\alpha}{2}$), then $x:=4\beta=2-2\alpha$ determines the weighting of the Hann window against the rectangular window ($\alpha-2\beta=1-x$ in that case). In the general case, you just need to factor out the coefficient $\alpha+2\beta$ first and let $x:=\frac{4\beta}{\alpha+2\beta}$.

For example, here is a plot of $W_H$ (green) and its two components for $x=0.5$ (assuming $M=2$, I guess, so that $W_R(\omega)=\frac{\sin \omega}{\omega}$):

Hanning window composition for x=0.5

Obviously, giving the Hann window more weight by increasing $x$ also increases the main lobe width. However, plotting this relationship reveals an interesting effect:

Plot of main lobe width depending on weighting factor

Since $W_R(2\Omega_M)=W_N(2\Omega_M)=0$, as soon as the Hann window component completely cancels out the first side lobe of the rectangular window component, the main lobe width stays constant at $4\Omega_M$. By calculating the derivatives at this point, it is easy to find out that this is the case for $x\geq\frac{6}{7}$ (equivalently, $\alpha\leq\frac{4}{7}$ in the unit amplitude case, or $3\alpha\leq 8\beta$ in the general case).

Unfortunately, from the plot, I haven't successfully guessed anything about the remaining $\frac{6}{7}$. ;-) Hopefully someone else will figure this out, if it is possible at all.

Edit: Don't know why I didn't go for the simplest route first. Maxima (open-source CAS) gives $\Omega_M \sqrt{2\frac{x-2}{x-1}}$ for the remaining part. So, in general, the main lobe width is:

$\begin{cases} 2\Omega_M \sqrt{\frac{\alpha}{\alpha-2\beta}} & \text{if } 8\beta<3\alpha\\ 4\Omega_M & \text{otherwise} \end{cases}$

$\endgroup$
2
  • $\begingroup$ Hi @Sebastian, thanks for you answer. How did you compute the mainlobe width for your second plot? If you used an analytical function, surely that would be the answer to my question. And how did you obtain the last result with Maxima? $\endgroup$
    – koffer
    Commented Jul 30, 2014 at 14:15
  • $\begingroup$ The second plot is just a numeric computation using Maxima's "find_zero" function. Then I tried the "solve" function instead and surprisingly got a result. If you plot $f(x)=\pi \sqrt{2\frac{x-2}{x-1}}$ between $0$ and $\frac{6}{7}$, you get the same picture. $\endgroup$ Commented Jul 31, 2014 at 16:16

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.