Wednesday, September 24, 2014

Beamforming Principle

1. What is beamforming
Beamforming



In general, Beamforming is a technique that combine signals from arrays of antennas into a desire signal /signals (MISO - Multiple Input Single Output/ MIMO - Multiple Input Multiple Output).

2. Why do we have to use Beamforming?

3. Useful refs in this field
- This site http://www.labbookpages.co.uk/audio.html is very useful for understanding problems related to DSP simply such as (FIR, IIR, Beamforming...) and also include simulations
4. Beamforming principle
Unlike single antenna case which the signal is 1-D (time), the signal in arrays of antennas must be taken into account their DOA (usually 3D) and time (1D).
They are combining by using $h_n(\tau)$

$y(t)=f(t,p_0)*h_0(\tau)+f(t,p_1)*h_1(\tau)+...+f(t,p_{N-1})*h_{N-1}(\tau)(1)$
$Y(\omega)=F(\omega,p_0)H_0(\tau)+F(\omega,p_1)H_1(\tau)+...+F(\omega,p_{N-1})H_{N-1}(\tau)(2)$
$Y(\omega)=H^T(\omega)F(\omega,p)(3)$
where:
$H=\begin{bmatrix}H_0(\tau)\\H_1(\tau)\\...\\H_{N-1}(\tau)\end{bmatrix}(4)$ $F(\omega,p)=\begin{bmatrix}F(\omega,p_0)\\F(\omega,p_1)\\...\\F(\omega,p_{N-1})\end{bmatrix}(5)$
Consider a simple case:
- The incoming signal is as

$a=\begin{bmatrix}-sin(\theta)cos(\phi)\\-sin(\theta)sin(\phi)\\cos(\theta)\end{bmatrix}(6)$
$f_n(t,p_n)=f_n(t-{\tau}_n)(7)$
where ${\tau}_n=\frac{a^Tp}{c}(8)$
therefore $F_n(\omega,p_n)=e^{-j{\omega}{\tau}_n}F(\omega)(9)$
$F(\omega,p)=v^TF(\omega)(10)$
${\omega}{\tau}_n=\frac{{\omega}a^Tp_n}{c}(11)$
Wavenumber k is defined as $k=\frac{{\omega}a}{c}=\frac{2\pi}{\lambda}a(12)$
Array manifold vector v is defined as
$v(k)=\begin{bmatrix}e^{-jk^Tp_0}\\e^{-jk^Tp_1}\\...\\e^{-jk^Tp_{N-1}}\end{bmatrix}(13)$
It is clear that Eq. (3) become $Y(\omega)=H^T(\omega)vF(\omega)(14)$
Frequency Wavenumber-Response function $\Upsilon$ is defined as
${\Upsilon}(\omega,k)=H^T(\omega)v(k)$
Beam pattern
$B(\omega:\theta,\phi)={\Upsilon}(\omega,k)|_{(k=\frac{2\pi}{\lambda},\phi)}$
Beam pattern is a key element in determining the array performance.
IN ORDER TO DO $Y(\omega)=F(\omega)$ WE HAVE MANY IMPLEMENTATIONS
- If we delays inputs from each elements so that the signals are aligned in time and sum up we have Conventional Beamformer or Delay-and-Sum Beamformer.


- If the delay is approximated by a phase shift we have Phased Array


$H^T(\omega)v=1{\leftrightarrow}H=\frac{1}{N}v^H(t)$
$h_n(\tau)=\frac{1}{N}\delta(\tau+{\tau}_n)$
Sometimes, we adjust the gain and phase at the output of each sensor to achieve a desirable beam pattern.
$w^H=[w_0^*\,w_1^*\,...\,w_{N-1}^*]$
$w^H=H^T(\omega)$
- NOTE THAT THE EQUATIONS ARE STILL TRUE FOR NARROW-BAND SIGNALS ($B{\Delta}T_{(m,n)}<<1$ for all m,n where ${\Delta}T_{(m,n)}$ is the difference in delay of m-th element and n-th element.

Ex. Case of no-beamforming algorithm $H(\omega)=1\rightarrow{\Upsilon}(\omega,k)=v$
clear all;
numElements = 20;     % Number of array elements
spacing = 0.012;       % Element separation in metres
freq = 1.5742e9;       % Signal frequency in Hz 
speedOfLight = 299792458;  % m/s

ANGLE_RESOLUTION=500; %(steps from -90 degrees to 90 degrees )

angle=zeros(1,ANGLE_RESOLUTION);
angleRad=   angle;
realSum=    angle;
imagSum=    angle;
output=     angle;
logOutput=zeros(1,ANGLE_RESOLUTION);
%Iterate through arrival angle points
for a=0:ANGLE_RESOLUTION-1
      %Calculate the planewave arrival angle
    angle(a+1) = -90 + 180.0 * a / (ANGLE_RESOLUTION-1);
    angleRad(a+1) = pi * angle(a+1) / 180;


    % Calculate element position and wavefront delay
    position = [1:numElements] * spacing;
    delay = position * sin(angleRad(a+1)) / speedOfLight;

    Sum(a+1)=sum(exp(j*2.0*pi*freq*delay));

    output(a+1) = abs(Sum(a+1)) / numElements;
    logOutput(a+1) = 20 * log10(output(a+1));
      if (logOutput(a+1) < -50) 
          logOutput(a+1) = -50;
      end;
      %printf('%d %f %f %f %f\n", a, angle, angleRad, output, logOutput');
end;
plot(angle,output)

5. Beamforming Simulations
6. Applying BF in GNSS
--------------------------
Question: What is Beam Pattern?
               Prove that $d <= \lambda/2$.

No comments:

Post a Comment