When applying Fourier transform in time domain the signal will be carried to frequency domain. And when we apply Fourier transform in spatial domain the signal will be carried to directivity domain.

$$ D(\theta) = \sum\limits_{n = \frac{-N}{2}}^\frac{N}{2} v(n) \exp\left(\frac{j2\pi}{\lambda} nd \sin(\theta)\right)\tag{1}$$

And let's simplify $ d = \lambda / 2 $ so

$$ D(\theta) = \sum\limits_{n = \frac{-N}{2}}^\frac{N}{2} v(n) \exp(j\pi n \sin(\theta))\tag{2}$$

I can see the mathematically this is $\rm sinc$ if I take $v(n)$ as a rectangular window. I have no problem with the result.

  • First $\sin(\theta) $ confuses me extremely how does this $\sin$ performs within Euler's formula ?

  • Secondly I can understand clear in time domain - frequency relationship: $\exp\left(\frac{j2\pi}{T}t\right) $. From Euler's formula $\cos$ and $\sin$ waves are created every $\frac{t}{T} $ step from $0$ to $ 2\pi$. I can not understand this when I look at beamforming function above (formulas (1) and (2)).

  • And finally why result is in $\theta$ domain how that happened ?


2 Answers 2


The equations relate to how the directivity of a uniformly spaced linear array of sensors works.

Let's start with an array:

enter image description here

where $\theta$ is our "look" direction (where we want to steer the array), $d$ is the sensor spacing, and, for our purposes, the angles of each segment of the array are all 0 (i.e. $\theta_1 = \theta_2 = \ldots = 0$) so the array is in a straight line along the $x$ axis.

In that case, the time at which the incoming wavefront hits each sensor, $t_j$ is: $$ t_0 = 0\\ t_1 = d\sin(\theta)\\ t_2 = 2d\sin(\theta)\\ \vdots\\ t_j = jd\sin(\theta)\\ \vdots\\ $$

The idea is that you delay each signal from each sensor by $t_j$, weight them by $v(j)$ and then sum them you'll get an array response like: $$ a_{\rm tot}(t) = \sum_{j=0}^{N-1} v(j) \delta(t-t_j) $$ in the time domain.

In the frequency domain, this looks like: $$ {\cal F}\left[a_{\rm tot}(t)\right] = A_{\rm tot}(f) = \sum_{j=0}^{N-1} v(j) e^{i2\pi f jd\sin(\theta)} \tag{A} $$

If you now assume that the speed of the incoming waves is $c = f\lambda$ so that $f = \frac{c}{\lambda}$ we get:

$$A_{\rm tot}(\lambda ) = \sum_{j=0}^{N-1} v(j) e^{i2\pi \frac{c}{\lambda} jd\sin(\theta)} \\ = \sum_{j=0}^{N-1} v(j) e^{i\pi c j \sin(\theta)} $$ if we assume that $\lambda = \frac{d}{2}$.

This last assumption means that now our $A_{\rm tot}$ is not dependent on the frequency variable, and just shows us how the array response changes with bearing angle, $\theta$.

So, really, while the Fourier transform is used in this derivation, equations (1) and (2) in your question are not Fourier transforms themselves.

I don't believe I've directly answered your questions, but feel free to comment and see if I can remove your doubts.

if beamforming equations are not Fourier transforms why the result of a uniformly weighted beamformer is sinc function in $\theta$ domain just like Fourier transform ? And also does this means equation 11 in the paper is wrong

So equation 11 of that paper is the same as equation (A) in what I wrote above (I just added the tag).

So, no, the equation is not wrong.

The reason there is a $\rm sinc$-like function is simply the maths of summing complex exponentials. The function is actually not a $\rm sinc$ but a only like it for small values of the argument in the denominator.

As you can see from (4.5) in the link, it actually looks like: $$ {\rm asinc(\omega)} = \frac{\sin(N\omega/2)}{\sin(\omega/2)} \approx \frac{\sin(N\omega/2)}{\omega/2} $$ where the approximation only holds if $\omega/2$ is small.

But in the formula there is $\sin(\theta)$ instead of $\theta$ how $\sin$ affects this equation?

As @Marcus says:

using $D(\theta)$ and calling it Fourier Transform is wrong; you could use $D(\sin(\theta))$ and get away with it :)

This just means that the $\theta$ axis is scaled slightly differently and makes it more periodic. See the picture below which plots:

  • $\require{color}\color{black}{\bf black}$ : $\rm sinc(\theta)$
  • $\require{color}\color{red}{\bf red}$ : $\rm asinc(\theta)$, and
  • $\require{color}\color{green}{\bf green}$ : $\rm asinc(\sin(\theta))$.

enter image description here

R Code Below

# 30425

M <- 10
N <- 100
theta <- seq(-pi*5,pi*5,pi/N)

sinc <- sin(M*theta/2) / (theta/2)
asinc <- sin(M*theta/2) / sin(theta/2)
asinctheta <- sin(M*sin(theta)/2) / sin(sin(theta)/2)

plot(theta, sinc, col=1, type="l", lwd = 4)
lines(theta, asinc, col=2, lwd = 2)
lines(theta, asinctheta, col=3, lwd = 1)

legend(-10, 10, c("sinc()", "asinc","asinctheta"), col=c(1,2,3), lwd = c(4,2,1))
  • $\begingroup$ Your answers always en lights me. So my first question if beamforming equations are not Fourier transforms why the result of a uniformly weighted beamformer is sinc function in $\theta$ domain just like Fourier transform ? And also does this means equation 11 in "idiap.ch/~mccowan/arrays/tutorial.pdf" is wrong $\endgroup$ Apr 28, 2016 at 13:08
  • $\begingroup$ Second question, thank to you I kind of understand $A_{tot}$ is dependent to angle $\theta$. But in the formula there is $ sin(\theta)$ instead of $\theta$ how sin effects this equation? $\endgroup$ Apr 28, 2016 at 13:11
  • $\begingroup$ Your (1) are discrete fourier transforms between input and $\sin(\theta)$ domain, but not between input and $\theta$; so using $D(\theta)$ and calling it Fourier Transform is wrong; you could use $D\left(\sin(\theta)\right)$ and get away with it :) $\endgroup$ Apr 28, 2016 at 13:34
  • $\begingroup$ Oh, and of course, your sum limits must be equal to the value you're dividing your full period by, so it would enforce $\frac\lambda d \equiv N$ in $e^{\frac{j2\pi}{\lambda}nd\sin(\theta)}$. $\endgroup$ Apr 28, 2016 at 13:52
  • 2
    $\begingroup$ @KadirErdemDemir The relationship between beamforming a linear array is really a happy coincidence - don't try to read too much into in. The $\sin \theta$ component - comes about due to the geometry - it's just a non-linear relationship - given a value of $\theta$ you can easily calculate the output. If you steer the beams and look at the resulting beamswidths , the beamwidths are also related to $\sin \theta$. Narrowest beams are at $0^\circ$ and broadest beams as $90^\circ$ $\endgroup$
    – David
    Apr 28, 2016 at 14:11

If you consider the beam pattern for a linear array - so I'm looking at just the magnitude (or magnitude square) i.e. $|B(\theta)|$. Then the $\sin(\theta)$ is telling you how the response changes to different directions of arrival. There are few things to keep in mind:

  1. There is the direction to which you steer the beam - these are the weights you use on the output of the antenna elements - in your examples you are steering the beam to broadside so the weights are just set to 1.
  2. There are the phase shifts (narrowband) when a incoming wave approaches at different angles $\theta$.
  3. When you steer (electronically not physically) to the direction of the incoming wave, the weights from that you use in 1 will be the complex conjugate of the phase that happens in 2 - phase delay of the wave due to different propagation time of the wave to each of the array elements.

So what this formula is telling you - for a linear array steered to broadside - the response to a wave coming from an angle $90^\circ +\theta$ (because of the way theta is defined) the response is given by $|B(\theta)|$. To see this consider a wave coming from broad-side ($\theta=0$). Then $\sin(0)=0$ and $e^{j0}=1$, so the output is just the sum of the receive elements. Thus, the sum of the array elements add coherently - the array has a maximum response in this direction.

Now consider a continuous array of length $L$ - if we add/integrate elements in pairs and the pairs are separated by $L/2$, then the propagation distance between those pairs is given by $\frac{L}{2}\sin \theta$ - when that distance is equal to half a wavelength ($\lambda/2$) then the sum of the two elements will be zero - this applies no matter where you start on the array. So in this case the output of the array is equal to zero - it is the first null of the beampattern. The null occurs when $$ \frac{L}{2}\sin \theta = \frac{\lambda}{2}$$ or $$\theta \approx \frac{\lambda}{L},$$ where I have assumed $\sin \theta \approx \theta$ for small $\theta$. The null on the other side will occur when $\theta =-\frac{\lambda}{L}$. So the null-null beamwidth of a linear array is $\theta_{BW}=\frac{2\lambda}{L}$. Note - for practical purposes the 3dB beamwidth is often used, so this is smaller than the null-null beamwidth and often a weighting window is applied to reduce the level of the sidelobes but at the cost of widening the main lobe, i.e. increasing the beamwidth.

Some books that have good introductions to these ideas:

  1. Sonar Signal Processing (Richard Nielson) - deals with wideband sonar beamforming - approach is not overly mathematical, but the book may be hard to find.
  2. Array Signal Processing (Johnson, Dudgeon) - More of an engineering/DSP approach. Book is readily availble
  3. Introduction to Airborne Radar (Stimson) - This is more introductory and covers a lot of radar material - but it does explain beamforming in a hand wavy way.
  4. Beamforming: a versatile approach to spatial filtering (Van Veen, Buckley) IEEE Acoustics Speech and Signal Processing Magazine, April 1988 - This gets a bit more mathematical, but it's a tutorial like paper. Useful before going into more technical work.
  • $\begingroup$ Both answers are great. I want to ask; $\theta = \frac{\lambda}{L} $ sounds like there is one $\theta$ which fits. But than why there are many side lobes and many nulls ? $\endgroup$ Apr 28, 2016 at 18:53
  • 1
    $\begingroup$ @KadirErdemDemir $\theta =\pm \frac{\lambda}{L}$ is just the position of the first null. If you divide the array 4 equal parts you can arrange the sum/integral so the total output is zero. In this case $ \frac{L}{4}\sin \theta = \frac{\lambda}{2}$ and $\sin \theta_{null} =2\frac{\lambda}{L}$ - note as you get to larger angles you can't make the $\sin \theta \approx \theta $ assumption. Other nulls occur at other even divisions of the array length. Nulls and sidelobes are just where deconstructive / constructive interference occurs. $\endgroup$
    – David
    Apr 29, 2016 at 13:56

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.