Part 1: Data Adaptive Beamforming In this lab you will implement an adaptive beamformer and test its ability to eliminate fixed interference. Assume the angle for the desired signal is 10◦ , and the angles for the interfering signals are −15◦ and 20◦ .
1. Generate 100, 000 samples of data for an array with 16 antennas using one of the desired signals and the two interfering signals in hw3data.mat. (Note that these signals are all real-valued, but the output of the array will be complex since the steering vectors and the noise are complex). Create the complex noise using the randn command as in class. Use a multiplier of 100 for the amplitude of the interference, and a multiplier of 0.05 for the complex noise.
2. Find the optimal adaptive beamformer using only the first T = 100 samples of array data, and plot the spatial frequency response in dB versus angle in degrees. To further verify that your beamformer is working, listen to the output of one of the antennas to hear the noisy signal, and also to the output of the beamformer to hear the “clean” signal. As we did in class, you can listen to these files using the Matlab command sound, for example as follows: >> sound(real(output),22000) Important: You will need to take the real part of the signals before playing them through the sound command.
3. Now repeat the above experiment for different values of the interfering angle that was originally at 20◦ . In particular, how close can this interferer be to the desired signal before you can’t hear the desired signal very well? At this failure point, increase the number of antennas to 50, and compare the results, including a plot of the spatial frequency responses.