# What window functions allow for controlling the location of nulls?

Window functions are commonly used to control spectral sidelobes. Typically there is a trade between supressing sidelobes, and maintaining the resolution of the mainlobe. A window with lower sidelobes has a wider mainlobe.

But another characteristic that is desirable in some situations is to control where the first (or second or third) null of the window falls in the spectral domain.

Are there window functions that allow you to control the first or second null location, while also preserving other desirable characteristics such as sidelobe suppression?

## Edit

I've heard that one way to do this is to modify the original Taylor window formulation by moving some of the $$\bar n$$ zeros. Can anyone confirm this and describe the procedure?

• $n$ zeroes? Or do you mean $n$-number of constant side-lobe levels adjacent to the main lobe? Commented Jan 20 at 2:23
• Yes, I take $\bar n$ as the number of constant level side-lobes near the main lobe, but I believe it has something to do with zeros in the mathematical formulation of the Taylor window. At least so I'm told. Commented Jan 20 at 3:46
• Links to the Taylor window formulation can be found here: dsp.stackexchange.com/a/91601/55647 Commented Jan 20 at 3:54

This is an interesting question. Other than thinking about the sinc function (and higher powers of it), which have nulls that are equally spaced from DC, and that spacing can be controlled by the width of the rect function that you convolve your window kernel with, I dunno exactly how you'ld do it.

Or you could convolve your window kernel with the FIR of a notch filter placing the null exactly where you want it.

Consider:

\begin{align} W_n(z) &= \frac{(z-e^{j \omega_n})(z-e^{-j \omega_n})}{z^2} \\ \\ &= \frac{z^2 - 2\cos(\omega_n)z + 1}{z^2} \\ \\ &= 1 - 2\cos(\omega_n)z^{-1} + z^{-2} \\ \\ &= w_n[0] + w_n[1]z^{-1} + w_n[2] z^{-2} \\ \end{align}

Two poles at the origin and two zeros notching frequency $$\omega_n$$, your $$n$$th null. It's a simple 3-tap FIR filter.

\begin{align} w_n[0]&=1 \\ w_n[1]&=-2\cos(\omega_n) \\ w_n[2]&=1 \\ \end{align}

Each convolving iteration (with a single-frequency notch FIR filter) makes your window function longer by two samples. Now choose your $$N$$ desired null frequencies and convolve your window kernel with these $$N$$ 3-tap FIRs:

$$W(z) = \prod\limits_{n=1}^{N} W_n(z)$$

Now, if you started out with a gaussian kernel, the result would be pretty smooth and have nulls pretty much at your $$N$$ locations. (Truncating the gaussian function to a finite length won't change the main lobe much but will result in noise in the stopband of the window frequency response. So there may be some nulls at high frequencies that are not your $$N$$ specified nulls.)

I dunno, that's how I might begin looking at it.

• Thanks for the input Robert. I've heard you can modify the original formulation of the Taylor window by moving the "$\bar n$" zeros somehow to place nulls (I've edited the question to reflect this). What do you think of that idea? Commented Nov 1, 2023 at 19:01