Beamforming A brief introduction Brian D. Jeffs Associate Professor Dept. of Electrical and Computer Engineering Brigham Young University March 2008
References Barry D. Van Veen and Kevin Buckley, Beamforming: A Versatile Approach to Spatial Filtering, IEEE ASSP Magazine, April 1988, pp. 4-24, This is a nice tutorial. Good introduction to the topic, including several classical adaptive beamforming techniques. Harry L. Van Trees, Optimum Array Processing. Part IV of Detection, Estimation and Modulation Theory, Wiley Interscience, New York, 2002. An exhaustive and thorough reference book.
Beamforming is Spatial Filtering Sensors in any wave propagation medium (acoustic, electromagnetic) can form a response pattern with higher sensitivity in desired directions. Pencil beam response, no windowing Pencil beam response, Hamming window
Two Types of Beamformers Method 1: Single sensor with directional response due to reflector, aperture size, baffles, pipes, etc. Green Bank Telescope, National Radio Astronomy Observatory, West Virginia. 100 m clear aperture. Largest fully steerable antenna in the world.
Two Types of Beamformers (cont.) Method 2: Sensor arrays. Used in SONAR, RADAR, communications, medical imaging, radio astronomy, etc. Line array of directional sensors Westerbork Synthesis Array Radio Telescope, (WSRT) the Netherlands. (Thanks to ASTRON for these images)
A WSRT Image Made with Beamforming and Array Processing Techniques WSRT 49 cm (612 MHz) image of 2 Mpc radio galaxy DA240 Symmetric ionized gas jets ejected from black hole in central core. (Thanks to ASTRON for these images)
The Uniform Line Array Signal source of interest s(t) d x 0 (t) x 1 (t) θ τ x 2 (t) x(t) x m ( t) = s( t mτ ) τ = d c sinθ (M-1)τ x M-1 (t)
Delay-Sum Beamformer (broadband) x 0 (t) x 1 (t) δ(t-[m-1]τ) δ(t-[m-2]τ) w 0 When Τ = τ, the channels are all time aligned for a signal from direction θ. x 2 (t) x M-1 (t) δ(t-[m-3]τ) δ(t) w 1 w 2 w M-1 + y( t) M = 1 m= 0 w m x m ( t [ M m 1] Τ) w m are beamformer weights. Gain in direction θ is Σw m. Less in other directions due to incoherent addition.
Similarity to FIR filter s(t) x 0 (t) δ(t-τ) w 0 Represent signal delay across array as a delay line. Sample: x[n] = x 0 (nτ). δ(t-τ) w 1 δ(t-τ) w 2 + y(t) Looks like an FIR filter! y[n]=x[n] * w[n] δ(t-τ) Design w with FIR methods! w M-1
Narrowband Beamformer Narrowband assumption: Let s(t) be bandpass with BW << c / (M-1)d Hz. The phase difference between band extreme frequencies for propagation across the entire array is small, e.g: Δφ = (BW)2π (M-1)d/c < π/10 radians. Most communications signals fit this model. If signal is not narrowband, bandpass filter it and build a new beamformer for each subband. Sample the array x[n] = [x 1 (nt s ),..., x N (nt s )] T [ ] T s[n], ξ = 2π f 0 d x[n] = 1,e jξ j(m 1)ξ,,e sinθ. c We can now eliminate time delays and use complex weights, w = [w 0,..., w M-1 ] T, to both steer (phase align) and weight (control beam shape).
Narrowband Phased Array x 0 [n] x 1 [n] w* 0 x 2 [n] x M-1 [n] w* 1 w* 2 w* M-1 + y[n] = w H x[n] w = α 0,α 1 e jς j( M 1)ς [,,α M 1 e ] T, ς = 2π f d 0 sinθ 0, c α m = amplitude weight for sensor m, f 0 = bandpass center frequency, Hz, θ 0 = direction of max response.
Beam Response Plots Fix w and plot y[n] as a function of signal arrival angle, θ. Design α to control sidelobe levels. This is like a bandpass filter! angle = spatial frequency
Beam Response Plots (cont) Plot b(θ) = w H d(θ) d(θ) is a steering vector, corresponding to the array response to a unit amplitude plane wave from a far field source in direction θ. d(θ) = 1,e jξ j(m 1)ξ [,,e ] T, ξ = 2π f 0 d sinθ, c θ = Signal arrival bearing angle.
FFT Implementation Suppose you want to form many beams at once, in different directions. Example: SONOR towed line array forms beams to look in many directions at once for simple direction finding. If beam k steered to θ k, has strongest signal, we assume source is in that direction. y k [n] = w k H x[n], w k = α 0,α 1 e jς k,,α M 1 e j(m 1)ς k [ ] T, ς k = 2π f 0 d c y k [n] = M 1 sinθ k. This can be written : α m x m [n] e jmς k. m=0 Now let ζ k = k2π/m and solve for θ k. This looks like a DFT across sensor channels! Frequency = Direction!
FFT Multiple Beamformer Diagram x 0 [n] y θ0 [n] x 1 [n] y θ1 [n] x 2 [n] Window (multiply) by α M point FFT across m for each time sample n. y θ2 [n] x M-1 [n] y θ(m-1) [n]
Optimal Beamformer: Max SNR Noise and interference: η 0 [n] Signal source of interest x 0 [n] x 1 [n] w 0 s[n] θ 2π f 0 d c sinθ x 2 [n] w 1 w 2 + y[n] = w H x[n] η M-1 [n] x M-1 [n] w M-1
Optimal Beamformer: Max SNR (2) Array signal contains both desired and undesired stuff x[n] = s[n]+ η[n] SNR at beamformer output: { } { } = E{ y s [n] 2 } E w H s[n] 2 = E{ y η [n] 2 } E w H η[n] 2 Now maximize with respect to w { } { } = w E w H s[n]s H [n]w E w H η[n]η H [n]w H R s w w H R η w d dw w H R s w w H R η w = 2R sw (w H R η w) 2R η w (w H R s w) = 0 (w H R η w) 2 R s w = R η w w H R s w w H R η w R 1 η R s w = w H R s w w H R η w w
Optimal Beamformer: Max SNR (3) This is a generalized eigenvector equation of the form Aw = λ max w, where A = R 1 η R s, and λ = w H R s w w H R η w Since λ is the SNR, the eigenvector associated with the maximum eigenvalue solves the optimization! Special case: single F.F. source in spatially white noise R s = σ 2 s d(θ s )d H (θ s ), R η = σ 2 η I 2 σ s 2 ( d(θ s )d H (θ s ))w = σ 2 s w H d(θ s )d H (θ s )w σ 2 η Mσ η w w = d(θ ), λ = M σ 2 s opt s max 2 σ η
Max SNR Beamformer Example Beamformer output SNR: 3.2 db -12.5 db 41.0 db Source at 20º interferer at -10º
Max SNR Beamformer Example (2) d_s = exp(j*2*pi*f*d/c*sin(theta_s)*[0:m-1]).'; R_s = d_s*d_s'; d_i = exp(j*2*pi*f*d/c*sin(theta_i)*[0:m-1]).'; R_n = sigma2_i*d_i*d_i' + sigma2_n*eye(m); % compute steering vector samples for beam resp. plot Theta_b = [-90:90].'*pi/180; D_b = exp(j*2*pi*f*d/c*sin(theta_b)*[0:m-1]).'; % conventional windowed beamformer case w = d_s.*kaiser(m,3); b_k = w'*d_b./sum(abs(w)); % beam response for hamming window conventional beam SNR_k = 10*log10(abs(w'*R_s*w/(w'*R_n*w))) % i.i.d. noise, no interferer case for max SNR beamformer [w, Lambda] = eigs(r_s./sigma2_n, 1); % compute max SNR beaformer weight b_snr1 = w'*d_b./sum(abs(w)); % compute beam response SNR_snr1 = 10*log10(abs(w'*R_s*w/(w'*R_n*w))) % Single interferer plus i.i.d. noise case for max SNR beamformer [w, Lambda] = eigs(inv(r_n)*r_s, 1); % compute max SNR beaformer weight b_snr2 = w'*d_b./sum(abs(w)); % compute beam response SNR_snr2 = 10*log10(abs(w'*R_s*w/(w'*R_n*w))) % Initializations theta_s = 20*pi/180; % signal and steering direction theta_i = -10*pi/180; % interference direction sigma2_i = 1e3; % interference variance sigma2_n = 1e-4; % noise variance M = 10; % no. of array elements f = 1.6e9; c = 3e8; d = c/f/2; % center freq., OH line % element spacing plot([-90:90],20*log10(abs(b_k)+.0001),[90:90],20*log10(abs(b_snr1)+.0001),[90:90],20*log10(abs(b_snr2)+.0001))