Beamforming MATLAB Code for QAM Modulation
Advertisement
This page provides MATLAB source code for Beamforming. It includes output plots and mathematical equations related to Beamforming with QAM modulation.
QAM stands for Quadrature Amplitude Modulation.
Introduction to Beamforming
Beamforming is a technique used to enhance signal strength before transmission using multiple antenna arrays. It helps extend the coverage of cell towers to reach mobile subscribers further away.
The main types of beamforming techniques are:
- Analog Beamforming
- Digital Beamforming
- Hybrid Beamforming

Figure 1: Analog Beamforming Transmitter Block Diagram
Beamforming MATLAB Code
clear
N = 10^6;
nTx = 2;
M=4;
k = sqrt(1/((2/3)*(M-1)));
m = [1:sqrt(M)/2];
alphaMqam = [-(2*m-1) 2*m-1];
Eb_N0_dB = [0:30];
ipHat1 = zeros(1,N);
ipHat2 = zeros(1,N);
for ii = 1:length(Eb_N0_dB)
ip = randsrc(1,N,alphaMqam) + j*randsrc(1,N,alphaMqam);
s = k*ip; % normalization of energy to 1
n = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)]; % white guassian noise, 0dB variance
h = 1/sqrt(2)*[randn(nTx,N) + j*randn(nTx,N)]; % Rayleigh channel
sr = (1/sqrt(nTx))*kron(ones(nTx,1),s); % Channel and noise Noise addition
h_tx = h.*exp(-j*angle(h));
y1 = sum(h.*sr,1) + 10^(-Eb_N0_dB(ii)/20)*n;
y2 = sum(h_tx.*sr,1) + 10^(-Eb_N0_dB(ii)/20)*n;
y1Hat = y1./sum(h,1);
y2Hat = y2./sum(h_tx,1);
% demodulation
y_re1 = real(y1Hat)/k; % real part
y_im1 = imag(y1Hat)/k;
y_re2 = real(y2Hat)/k; % real part
y_im2 = imag(y2Hat)/k; % imaginary part
ipHat_re1 = 2*floor(y_re1/2)+1;
ipHat_re1(find(ipHat_re1>max(alphaMqam))) = max(alphaMqam);
ipHat_re1(find(ipHat_re1<min(alphaMqam))) = min(alphaMqam);
ipHat_re2 = 2*floor(y_re2/2)+1;
ipHat_re2(find(ipHat_re2>max(alphaMqam))) = max(alphaMqam);
ipHat_re2(find(ipHat_re2<min(alphaMqam))) = min(alphaMqam);
ipHat_im1 = 2*floor(y_im1/2)+1;
ipHat_im1(find(ipHat_im1>max(alphaMqam))) = max(alphaMqam);
ipHat_im1(find(ipHat_im1<min(alphaMqam))) = min(alphaMqam);
ipHat_im2 = 2*floor(y_im2/2)+1;
ipHat_im2(find(ipHat_im2>max(alphaMqam))) = max(alphaMqam);
ipHat_im2(find(ipHat_im2<min(alphaMqam))) = min(alphaMqam);
ipHat1 = ipHat_re1 + j*ipHat_im1;
nErr1(ii) = size(find([ip- ipHat1]),2); % counting the number of errors
ipHat2 = ipHat_re2 + j*ipHat_im2;
nErr2(ii) = size(find([ip- ipHat2]),2); % counting the number of errors
end
simBer1 = nErr1/N; % simulated ber (no beam forming)
simBer2 = nErr2/N; % simulated ber (with beam forming)
theoryBerAWGN = 0.5*erfc(sqrt(10.^(Eb_N0_dB/10))); % theoretical ber
EbN0Lin = 10.^(Eb_N0_dB/10);
theoryBer = 0.5.*(1-sqrt(EbN0Lin./(EbN0Lin+1)));
p = 1/2 - 1/2*(1+1./EbN0Lin).^(-1/2);
theoryBer_nRx2 = p.^2.*(1+2*(1-p));
close all
figure
semilogy(Eb_N0_dB,simBer1,'ks-','LineWidth',2);
hold on
semilogy(Eb_N0_dB,simBer2,'rx-','LineWidth',2);
axis([0 35 10^-5 0.5])
grid on
legend('2Tx-1Rx (no Beamforming-sim)','2Tx-1Rx (Beamforming-sim)');
xlabel('Eb/No, dB');
ylabel('Bit Error Rate');
title('BER for QAM modulation in Rayleigh Fading channel');
Input and Output of Beamforming QAM MATLAB Source Code
Run the downloaded BeamformingQAM.m file after extracting the contents of the folder.
The output MATLAB image will look similar to this:

Explore MATLAB Wireless Communications & Modulation
- AM/FM/PM Modulation in MATLAB
- ASK Modulation in MATLAB
- FSK Modulation in MATLAB
- MSK Modulation in MATLAB
- GMSK Modulation in MATLAB
- PSK Modulation (MATLAB Code)
- BPSK, QPSK, 16-QAM, 64-QAM (MATLAB Code)
- On-Off Keying (OOK) (MATLAB Code)
- OFDM (MATLAB Code)
- OFDMA Basics (MATLAB Code)
- SC-FDMA Basics (MATLAB Implementation)
- WiMAX OFDM Basics (MATLAB Code)
- WLAN OFDM Basics (MATLAB Code)
- LTE Basics (MATLAB Code)
- OFCDM (MATLAB Code)
- Beamforming (MATLAB Code QAM)
- 2x2 MIMO & STBC (MATLAB Code)
- CDMA (MATLAB Code)
- Zigbee Transceiver (MATLAB Code)
Continue Learning Beamforming Fundamentals, Types & Comparisons
- Beamforming: Advantages and Disadvantages
- Active vs Passive Beamforming
- Analog vs Digital Beamforming
- Single-User vs Multi-User Beamforming (SU-MIMO vs MU-MIMO)
- Analog, Digital & Hybrid Beamforming Basics and Types
- Hybrid Beamforming: Advantages & Disadvantages
- Holographic Beamforming Antennas: Pros & Cons
Beamforming in Wi-Fi, 5G & 6G Networks
- WLAN 802.11ac Beamforming Tutorial
- Phased Array Beamforming IC for 5G : Popular Manufacturers
- Traditional vs Secure Beamforming in 6G Networks
Continue Learning Modulation Types
- AM Vs. FM Vs. PM : Difference between Analog Modulation Techniques
- ASK Vs. FSK Vs. PSK : Difference between Digital Modulation Techniques
- PAM Vs. PWM Vs. PPM : Difference between Pulse Modulation Techniques
- BPSK Vs. QPSK : Key Differences
- 16-QAM Vs. 64-QAM Vs. 256-QAM : Key Differences
- 512-QAM Vs. 1024-QAM Vs. 2048-QAM Vs. 4096-QAM
- 4096QAM Modulation Used in Wi-Fi 7
- MSK Vs. GMSK : Modulation Technique used in GSM
- LORa Modulation Used in LoRaWAN
- 10% ASK & 100% ASK Modulation used in NFC
- OOK Vs. VPPM Vs. CSK : Visible Light Communication (VLC) Modulation Techniques
- QPSK Vs. OQPSK Vs. PI/4 QPSK
- PAM4 Modulation Used in Gigabit Ethernet
- CCK Vs. DSSS Vs. OFDM Used in WLAN (Wi-Fi) Standards
