Skip to main content

Alamouti Scheme for 2x2 MIMO in MATLAB


 

 Read about the Alamouti Scheme first

MATLAB Code for Alamouti's Precoding Matrix for 2 X 2 MIMO

% Clear any existing data and figures
clc;
clear;
close all;

% Define system parameters
transmitAntennas = 2; % Number of antennas at the transmitter
receiveAntennas = 2; % Number of antennas at the receiver
symbolCount = 1000000; % Number of symbols to transmit
SNR_dB = 15; % Signal-to-Noise Ratio in decibels

% Generate random binary data for transmission
rng(10); % Set seed for reproducibility
transmitData = randi([0, 1], transmitAntennas, symbolCount);

% Perform Binary Phase Shift Keying (BPSK) modulation
modulatedSymbols = 1 - 2 * transmitData;

% Define Alamouti's Precoding Matrix
precodingMatrix = [1 1; -1i 1i];

% Encode and transmit data using Alamouti scheme
transmittedSymbols = zeros(transmitAntennas, symbolCount);
for idx = 1:2:symbolCount
transmittedSymbols(:, idx:idx+1) = precodingMatrix * modulatedSymbols(:, idx:idx+1);
end

% Simulate Rayleigh fading channel
channelMatrix = (randn(receiveAntennas, transmitAntennas) + 1i * randn(receiveAntennas, transmitAntennas)) / sqrt(2);

% Receive signal and add AWGN
receivedSignal = awgn(channelMatrix * transmittedSymbols, SNR_dB, 'measured');

% Decode and demodulate received symbols
decodedSymbols = zeros(transmitAntennas, symbolCount);
for idx = 1:2:symbolCount
% Estimate received symbols using channel information
receivedEstimation = channelMatrix' * receivedSignal(:, idx:idx+1);
% Decode symbols using Alamouti decoding
decodedSymbols(:, idx:idx+1) = precodingMatrix' * receivedEstimation;
end

% Perform BPSK demodulation to retrieve received binary data
receivedBinaryData = decodedSymbols < 0;

% Calculate error rate
errorCount = sum(sum(transmitData ~= receivedBinaryData));
errorRate = errorCount / (transmitAntennas * symbolCount);

% Display the error rate
disp(['Error rate: ', num2str(errorRate)]);

 

Output

 Error rate: 0

You can run a loop by varying the SNR values. You can plot the BER vs SNR graph easily.

 

Copy the MATLAB Code from Here

 

 

Alamouti Scheme Transmission Table

 

 

 

 

 

 

 

 

The above table illustrates how two orthogonal, time-diversity data streams are transmitted using two different time slots to improve the signal-to-noise ratio (SNR) at the receiver.

For a symbol stream S1,S2,S3,S4,,Sn1,SnS_1, S_2, S_3, S_4, \ldots, S_{n-1}, S_n, we first transmit S1S_1 and S2S_2 from antenna 1 and antenna 2, respectively. In the next time slot, we transmit S2-S_2^* and S1S_1^* from antenna 1 and antenna 2, respectively.

Note: To enable the Alamouti scheme, at least two transmit antennas and one receive antenna are required.

In the third time slot, S3S_3 and S4S_4 are transmitted from antenna 1 and antenna 2. In the fourth time slot, S4-S_4^* and S3S_3^* are transmitted from antenna 1 and antenna 2, respectively — and this pattern continues. [Read More ...]

 

Further Reading

  1.  Modified Alamouti's Scheme (STBC) in MATLAB (using QPSK)
  2. Alamouti's Scheme for MIMO Communication
  3. Theoretical Ber vs Snr for Alamouti Scheme 
  4. MATLAB Code for Multi-User STBC (using Alamouti's Scheme)
  5. Alamouti Scheme Simulator

People are good at skipping over material they already know!

View Related Topics to







Contact Us

Name

Email *

Message *

Popular Posts

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...(MATLAB Code + Simulator)

Bit Error Rate (BER) & SNR Guide Analyze communication system performance with our interactive simulators and MATLAB tools. 📘 Theory 🧮 Simulators 💻 MATLAB Code 📚 Resources BER Definition SNR Formula BER Calculator MATLAB Comparison 📂 Explore M-ary QAM, PSK, and QPSK Topics ▼ 🧮 Constellation Simulator: M-ary QAM 🧮 Constellation Simulator: M-ary PSK 🧮 BER calculation for ASK, FSK, and PSK 🧮 Approaches to BER vs SNR What is Bit Error Rate (BER)? The BER indicates how many corrupted bits are received compared to the total number of bits sent. It is the primary figure of merit for a...

Online Simulator for ASK, FSK, and PSK

Try our new Digital Signal Processing Simulator!   •   Interactive ASK, FSK, and BPSK tools updated for 2025. Start Now Interactive Modulation Simulators Visualize binary modulation techniques (ASK, FSK, BPSK) in real-time with adjustable carrier and sampling parameters. 📡 ASK Simulator 📶 FSK Simulator 🎚️ BPSK Simulator 📚 More Topics ASK Modulator FSK Modulator BPSK Modulator More Topics Simulator for Binary ASK Modulation Digital Message Bits Carrier Freq (Hz) Sampling Rate (...

Constellation Diagrams of ASK, PSK, and FSK (with MATLAB Code + Simulator)

Constellation Diagrams: ASK, FSK, and PSK Comprehensive guide to signal space representation, including interactive simulators and MATLAB implementations. 📘 Overview 🧮 Simulator ⚖️ Theory 📚 Resources Definitions Constellation Tool Key Points MATLAB Code 📂 Other Topics: M-ary PSK & QAM Diagrams ▼ 🧮 Simulator for M-ary PSK Constellation 🧮 Simulator for M-ary QAM Constellation BASK (Binary ASK) Modulation Transmits one of two signals: 0 or -√Eb, where Eb​ is the energy per bit. These signals represent binary 0 and 1. BFSK (Binary FSK) Modulation Transmits one ...

ASK, FSK, and PSK (with MATLAB + Online Simulator)

📘 ASK Theory 📘 FSK Theory 📘 PSK Theory 📊 Comparison 🧮 MATLAB Codes 🎮 Simulator ASK or OFF ON Keying ASK is a simple (less complex) Digital Modulation Scheme where we vary the modulation signal's amplitude or voltage by the message signal's amplitude or voltage. We select two levels (two different voltage levels) for transmitting modulated message signals. Example: "+5 Volt" (upper level) and "0 Volt" (lower level). To transmit binary bit "1", the transmitter sends "+5 Volts", and for bit "0", it sends no power. The receiver uses filters to detect whether a binary "1" or "0" was transmitted. Fig 1: Output of ASK, FSK, and PSK modulation using MATLAB for a data stream "1 1 0 0 1 0 1 0" ( Get MATLAB Code ) ...

Theoretical BER vs SNR for m-ary PSK and QAM

Relationship Between Bit Error Rate (BER) and Signal-to-Noise Ratio (SNR) The relationship between Bit Error Rate (BER) and Signal-to-Noise Ratio (SNR) is a fundamental concept in digital communication systems. Here’s a detailed explanation: BER (Bit Error Rate): The ratio of the number of bits incorrectly received to the total number of bits transmitted. It measures the quality of the communication link. SNR (Signal-to-Noise Ratio): The ratio of the signal power to the noise power, indicating how much the signal is corrupted by noise. Relationship The BER typically decreases as the SNR increases. This relationship helps evaluate the performance of various modulation schemes. BPSK (Binary Phase Shift Keying) Simple and robust. BER in AWGN channel: BER = 0.5 × erfc(√SNR) Performs well at low SNR. QPSK (Quadrature...

FIR vs IIR Digital Filters and Recursive vs Non Recursive Filters

Filters >> FIR vs. IIR Digital Filters and Recursive vs. Non-Recursive Filters Key Features The higher the order of a filter, the sharper the stopband transition The sharpness of FIR and IIR filters is very different for the same order A FIR filter has an equal time delay at all frequencies, while the IIR filter's time delay varies with frequency. Usually, the biggest time delay in the IIR filter is at the filter's cutoff frequency. The term 'IR' (impulse response) is in both FIR and IIR. The term 'impulse response' refers to the appearance of the filter in the time domain. 1. What Is the Difference Between an FIR and an IIR Filters? The two major classifications of digital filters used for signal filtration are FIR and IIR....

Sky Wave, Microwave Link Communication and Satellite Communication (SATCOM)

Overview Sky Wave, Microwave Link Communication, and Satellite Communication  (SATCOM) are the focus of this article. Sky Waves are essentially AM waves that the ionosphere reflects. For long-distance communication on Earth, we employ standard microwave link transmission. However, we all know that the earth is not flat, but rather oval in shape. As a result, the signal can only reach a few kilometers on a straight line of sight path (LOS). The signal is then reflected by the earth's surface. But we know that with that microwave link, we can communicate hundreds of kilometers distance. We'll look at how this happens in this article. Terrestrial satellite communication has now replaced microwave relay link communication. Figure: Ionosphere Reflection - suitable for AM band (Sky Wave) 1. Sky Wave You can see how the ionosphere bounces the radio signal and enables the ground station to communicate with the transmitter hundreds of kilometers away. This method is ideal for communica...

Comparisons among ASK, PSK, and FSK (with MATLAB + Simulator)

📘 Comparisons among ASK, FSK, and PSK 🧮 Online Simulator for calculating Bandwidth of ASK, FSK, and PSK 🧮 MATLAB Code for BER vs. SNR Analysis of ASK, FSK, and PSK 📚 Further Reading 📂 View Other Topics on Comparisons among ASK, PSK, and FSK ... 🧮 Comparisons of Noise Sensitivity, Bandwidth, Complexity, etc. 🧮 MATLAB Code for Constellation Diagrams of ASK, FSK, and PSK 🧮 Online Simulator for ASK, FSK, and PSK Generation 🧮 Online Simulator for ASK, FSK, and PSK Constellation 🧮 Some Questions and Answers Modulation ASK, FSK & PSK Constellation MATLAB Simulink MATLAB Code Comparisons among ASK, PSK, and FSK    Comparisons among ASK, PSK, and FSK Comparison among ASK, FSK, and PSK Parameters ASK FSK PSK Variable Characteristics Amplitude Frequency ...