Skip to main content

Optimal Precoding for Millimeter wave Massive MIMO Systems


 

Optimal Precoding for Millimeter wave Massive MIMO Systems

In case of MIMO system we deploy multiple transmitter antennas at receiver side and multiple receiver antennas at receiver side. MIMO technology was introduced to support multiple simultaneous data streams between transmitter and receiver to multiply the capacity of a system. But there is also interference between multiple data streams. Precoding technique minimizes the interference between multiple data streams. 



What Exactly Precoding Technique is

We all are familiar with the channel matrix of an MIMO system, that looks like, =


\      R1     R2     R3     R4

T1  h11    h12     h13   h14

T2  h21    h22     h23   h24

T3  h31    h32     h33   h34

T4  h41    h42     h43   h44


Here, in the above figure channel matrix, is shown. In channel matrix it shown different gains between different antennas. Now, we see in the above matrix for example, h11 represents the channel gain between transmitter antenna, T1 and receiver antenna, R1 and h11 also means connection between the antennas as well. R1 also receives the signals from T2, T3, and T4 antennas too. So, there is some kind of interface between multiple data streams when we process the signal at receiver side. Here, precoding help us to reduce interference between multiple data streams. 



Optimal Precoding in MIMO

Typically, received signal at receiver side is represented as,

y = Hx + n       .....(i)

Where, is channel matrix gain

y = Received signal vector 

= Transmitted signal vector 

= Additive white Gaussian noise

Here, in the above equation you can image channel matrix, as same as above channel matrix where we've shown channel gains between TX side antennas T1, T2, T3, T4, and receiver side antennas, R1, R2, R3, R4, respectively. We've also talked about interference with T1's signal at R1 antenna due to transmission from T2, T2, and T3. 

Now, let imagine your channel matrix looks like that, =


\       R1     R2     R3     R4

T1   h11     0        0         0

T2     0     h22      0        0

T3     0       0      h33      0

T4     0       0       0       h44


Now in equation (i), if you the put the above channel matrix value then you see there is no interference with T1' signal with T2, T3, and T4's transmission at receiver R1. 

Similar approach is performed for optimal precoding technique we channel matrix is decomposed in to two unitary matrix U, V, and one diagonal eigen value matrix, Î£. We've already talked about "Singular Value Decomposition in MIMO Channel" in a separate article. 

There is matrix, Î£we operate row and column matrix in a such way that Î£ becomes diagonal matrix where elements are in descending order. We do that by operating multiple operations in matrix as shown in the above mentioned article.

Generally, matrix is decomposed into, H = UΣVH

As and are unitary matrix so, multiplication of those matrix with its hermitian matrix itself are identity matrix. Alternatively, UUH = VVH = I



Signal Processing at Receiver Side for Optimal Precoding

During transmission we multiply original message signal vector with unitary matrix, V. So, now transmitted signal vector becomes, Vx. On the side at receiver side, received signal vector is multiplied with vector UH. So, as per above equation (i), received signal vector at receiver side as follows

y = UH (UΣVH) Vx + n

y= IΣIx + n

y = Î£x +n 

Now, you see Î£ is a diagonal matrix and signal vector, is multiplied with that diagonal matrix. So, you can observe there the simultaneous data streams between MIMO transmitter and receiver antennas without interference among them. Now we further do optimal power allocation to each antennas to maximize sum-rate or overall throughput as shown in a separate article. There is the URL link above.


# mimo beamforming

Why OFDM precoding modulation used in uplink?

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, ...

📘 Overview of BER and SNR 🧮 Online Simulator for BER calculation of m-ary QAM and m-ary PSK 🧮 MATLAB Code for BER calculation of M-ary QAM, M-ary PSK, QPSK, BPSK, ... 📚 Further Reading 📂 View Other Topics on M-ary QAM, M-ary PSK, QPSK ... 🧮 Online Simulator for Constellation Diagram of m-ary QAM 🧮 Online Simulator for Constellation Diagram of m-ary PSK 🧮 MATLAB Code for BER calculation of ASK, FSK, and PSK 🧮 MATLAB Code for BER calculation of Alamouti Scheme 🧮 Different approaches to calculate BER vs SNR What is Bit Error Rate (BER)? The abbreviation BER stands for Bit Error Rate, which indicates how many corrupted bits are received (after the demodulation process) compared to the total number of bits sent in a communication process. BER = (number of bits received in error) / (total number of tran...

Constellation Diagrams of ASK, PSK, and FSK

📘 Overview of Energy per Bit (Eb / N0) 🧮 Online Simulator for constellation diagrams of ASK, FSK, and PSK 🧮 Theory behind Constellation Diagrams of ASK, FSK, and PSK 🧮 MATLAB Codes for Constellation Diagrams of ASK, FSK, and PSK 📚 Further Reading 📂 Other Topics on Constellation Diagrams of ASK, PSK, and FSK ... 🧮 Simulator for constellation diagrams of m-ary PSK 🧮 Simulator for constellation diagrams of m-ary QAM 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 of two signals: +√Eb​ ( On the y-axis, the phase shift of 90 degrees with respect to the x-axis, which is also termed phase offset ) or √Eb (on x-axis), where Eb​ is the energy per bit. These signals represent binary 0 and 1.  BPSK (Binary PSK) Modulation: Transmits one of two signals...

Power Spectral Density Calculation Using FFT in MATLAB

📘 Overview 🧮 Steps to calculate the PSD of a signal 🧮 MATLAB Codes 📚 Further Reading Power spectral density (PSD) tells us how the power of a signal is distributed across different frequency components, whereas Fourier Magnitude gives you the amplitude (or strength) of each frequency component in the signal. Steps to calculate the PSD of a signal Firstly, calculate the first Fourier transform (FFT) of a signal Then, calculate the Fourier magnitude of the signal The power spectrum is the square of the Fourier magnitude To calculate power spectrum density (PSD), divide the power spectrum by the total number of samples and the frequency resolution. {Frequency resolution = (sampling frequency / total number of samples)} Sampling frequency (fs): The rate at which the continuous-time signal is sampled (in Hz). ...

Calculation of SNR from FFT bins in MATLAB

📘 Overview 🧮 MATLAB Code for Estimation of SNR from FFT bins of a Noisy Signal 🧮 MATLAB Code for Estimation of Signal-to-Noise Ratio from Power Spectral Density Using FFT and Kaiser Window Periodogram from real signal data 📚 Further Reading   Here, you can find the SNR of a received signal from periodogram / FFT bins using the Kaiser operator. The beta (β) parameter characterizes the Kaiser window, which controls the trade-off between the main lobe width and the side lobe level in the frequency domain. For that you should know the sampling rate of the signal.  The Kaiser window is a type of window function commonly used in signal processing, particularly for designing finite impulse response (FIR) filters and performing spectral analysis. It is a general-purpose window that allows for control over the trade-off between the main lobe width (frequency resolution) and side lobe levels (suppression of spectral leakage). The Kaiser window is defined...

Online Channel Impulse Response Simulator

  Fundamental Theory of Channel Impulse Response The fundamental theory behind the channel impulse response in wireless communication often involves complex exponential components such as: \( h(t) = \sum_{i=1}^{L} a_i \cdot \delta(t - \tau_i) \cdot e^{j\theta_i} \) Where: \( a_i \) is the amplitude of the \( i^{th} \) path \( \tau_i \) is the delay of the \( i^{th} \) path \( \theta_i \) is the phase shift (often due to Doppler effect, reflection, etc.) \( e^{j\theta_i} \) introduces a phase rotation (complex exponential) The convolution \( x(t) * h(t) \) gives the received signal So, instead of representing the channel with only real-valued amplitudes, each path can be more accurately modeled using a complex gain : \( h[n] = a_i \cdot e^{j\theta_i} \) 1. Simple Channel Impulse Response Simulator  (Here you can input only a unit impulse signal) Input Signal (Unit Impu...

MATLAB code for BER vs SNR for M-QAM, M-PSK, QPSk, BPSK, ...

🧮 MATLAB Code for BPSK, M-ary PSK, and M-ary QAM Together 🧮 MATLAB Code for M-ary QAM 🧮 MATLAB Code for M-ary PSK 📚 Further Reading MATLAB Script for BER vs. SNR for M-QAM, M-PSK, QPSK, BPSK % Written by Salim Wireless clc; clear; close all; num_symbols = 1e5; snr_db = -20:2:20; psk_orders = [2, 4, 8, 16, 32]; qam_orders = [4, 16, 64, 256]; ber_psk_results = zeros(length(psk_orders), length(snr_db)); ber_qam_results = zeros(length(qam_orders), length(snr_db)); for i = 1:length(psk_orders) psk_order = psk_orders(i); for j = 1:length(snr_db) data_symbols = randi([0, psk_order-1], 1, num_symbols); modulated_signal = pskmod(data_symbols, psk_order, pi/psk_order); received_signal = awgn(modulated_signal, snr_db(j), 'measured'); demodulated_symbols = pskdemod(received_signal, psk_order, pi/psk_order); ber_psk_results(i, j) = sum(data_symbols ~= demodulated_symbols) / num_symbols; end end for i...

Coherence Bandwidth and Coherence Time

🧮 Coherence Bandwidth 🧮 Coherence Time 🧮 MATLAB Code s 📚 Further Reading Coherence Bandwidth Coherence bandwidth is a concept in wireless communication and signal processing that relates to the frequency range over which a wireless channel remains approximately constant in terms of its characteristics. Coherence bandwidth is inversely related to the delay spread time (e.g., RMS delay spread). The coherence bandwidth is related to the delay spread of the channel, which is a measure of the time it takes for signals to traverse the channel due to multipath. The two are related by the following approximation: Coherence Bandwidth ≈ 1/(delay spread time) Or, Coherence Bandwidth ≈ 1/(root-mean-square delay spread time) (Coherence bandwidth in Hertz) For instance, if the root-mean-square delay spread is 500 ns (i.e., {1/(2*10^6)} seconds), the coherence bandwidth is approximately 2 MHz (1 / 500e-9) in ...

Comparisons among ASK, PSK, and FSK | And the definitions of each

📘 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 ...