Why Is My Massive MIMO Partial LSE Curve Not Smooth?

  • Thread starter Thread starter thestrong
  • Start date Start date
  • Tags Tags
    Partial
Click For Summary
SUMMARY

The discussion centers on the challenges of achieving a smooth curve in the context of Massive MIMO (Multiple Input Multiple Output) systems using a Partial Least Squares Estimation (LSE) model. The user has normalized their data and identified that the Partial LSE model performs worse than the Full LSE model due to its assumption that all other channels contribute to the noise term. The MATLAB code provided illustrates the simulation setup, including parameters such as the number of base station antennas (M = 5) and users (K = 8), as well as the calculation of Mean Squared Error (MSE) across various Signal-to-Noise Ratios (SNR).

PREREQUISITES
  • Understanding of Massive MIMO systems
  • Familiarity with Partial Least Squares Estimation (LSE)
  • Proficiency in MATLAB programming
  • Knowledge of Signal-to-Noise Ratio (SNR) concepts
NEXT STEPS
  • Explore the differences between Partial LSE and Full LSE models in MIMO systems
  • Investigate techniques for smoothing curves in data analysis
  • Learn about the impact of pilot sequences on MIMO performance
  • Study advanced MATLAB functions for signal processing and simulation
USEFUL FOR

Researchers, engineers, and students working in wireless communications, particularly those focusing on MIMO technology and signal processing optimization.

thestrong
Messages
9
Reaction score
0
I am not seeing why my curve is not smooth. I normalized the data so it is not due to that. The partial LSE just assumes all other channels are part of the noise term (i.e. it performs worse than the full LSE model).

Code:
clear all;
close all;
clc;

%Parameters
M = 5; %base station antennas
K = 8; %number of users
tau = 4; %pilot length
SNR = 1:30; %range of SNR
TRIALS = 10000;
MSE = 0;

%pilots
% s_i = randn(tau, K);
% s_i = ones(tau, K); %all pilot sequences are non ortho
% s_i = 2*(randi(2, tau, K)-1) -1;
% s_i = s_i/tau;
% s_i = randi(2, tau, K) -1;
s_i = [1, 1, 1, 1, 1, 1, 1, 1;
  1, 1, 1, 1, -1, -1, -1, -1;
  1, 1, -1, -1, 1, 1, -1, -1;
  1, -1, 1, -1, 1, -1, 1, -1;]

% s_i = triu(s_i)
% for j = 1:K
%  v = s_i(:, j);
%  for i = 1:j-1
%  R(i, j) = Q(:,i)'* s_i(:,j);
%  v = v - R(i, j)*Q(:,i);
%  end
%  R(j,j) = norm(v);
%  Q(:, j) = v/R(j,j);
%  
% end
for i = 1:K
  S_i(:, : , i) = kron(s_i(:,i), eye(M));
end

for n = 1:size(SNR, 2);
  
  for t = 1:TRIALS

  %channel vector (not needed based on model)
  h_i = randn(M, K);

  %noise vector
  z_i = 1/(sqrt(SNR(n)*2))*(rand(tau*M, 1) + 1i * rand(tau*M, 1));
  
  %MSE
  p_wbe = (K - tau)/((K-1)*tau); %using WBE, (roe_ij)^2
  sum_hj = sum(h_i(:,2:end),2);
  MSE_t = p_wbe*sum_hj + S_i(:, :, 1).'*z_i;
  MSE_t = norm(MSE_t)^2;
  MSE(TRIALS, n) = MSE_t;
  end %end Trialsend %end SNR

MSE = sum(MSE,1)/TRIALS
MSE_dB = 10*log10(MSE)

figure, plot(MSE)
figure, plot(MSE_dB)
 
Last edited by a moderator:
Engineering news on Phys.org
Welcome to PF.
I am sure that all here thank you for your confidence in our ability to guess what you are doing but;
What is a massive MIMO ?
What is a partial LSE ?
In what language did you write your code ?
 
Looks like matlab.
I'm guessing MIMO is multi input multi output?

thestrong, can you tell us more about the application and what you expect to see and why?
also not everyone has MATLAB so it might be useful to post the graphs
 

Similar threads

  • · Replies 0 ·
Replies
0
Views
4K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 19 ·
Replies
19
Views
3K
  • · Replies 24 ·
Replies
24
Views
2K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 33 ·
2
Replies
33
Views
9K
  • · Replies 114 ·
4
Replies
114
Views
12K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 16 ·
Replies
16
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K