Skip to content

Simulation Codes for Matrix-Calibration-Based Cascaded Channel Estimation for Reconfigurable Intelligent Surface Assisted Multiuser MIMO

License

Notifications You must be signed in to change notification settings

liuhang1994/Matrix-Calibration-Based-Cascaded-Channel-Estimation

Repository files navigation

Matrix-Calibration-Based Cascaded Channel Estimation for Reconfigurable Intelligent Surface Assisted Multiuser MIMO

This is the simulation code package for the following paper:

Hang Liu, Xiaojun Yuan, and Ying Jun Zhang. "Matrix-calibration-based cascaded channel estimation for reconfigurable intelligent surface assisted multiuser MIMO," IEEE Journal on Selected Areas in Communications, 38(11):2621–2636, Nov. 2020. [Link]

The package, written on Matlab 2014b, reproduces the numerical results in the paper.

Abstract of Article:

Reconfigurable intelligent surface (RIS) is envisioned to be an essential component of the paradigm for beyond 5G networks as it can potentially provide similar or higher array gains with much lower hardware cost and energy consumption compared with the massive multiple-input multiple-output (MIMO) technology. In this paper, we focus on one of the fundamental challenges, namely the channel acquisition, in a RIS-assisted multiuser MIMO system. The state-of-the-art channel acquisition approach in such a system with fully passive RIS elements estimates the cascaded transmitter-to-RIS and RIS-to-receiver channels by adopting excessively long training sequences. To estimate the cascaded channels with an affordable training overhead, we formulate the channel estimation problem in the RIS-assisted multiuser MIMO system as a matrix-calibration based matrix factorization task. By exploiting the information on the slow-varying channel components and the hidden channel sparsity, we propose a novel message-passing based algorithm to factorize the cascaded channels. Furthermore, we present an analytical framework to characterize the theoretical performance bound of the proposed estimator in the large-system limit. Finally, we conduct simulations to verify the high accuracy and efficiency of the proposed algorithm.

How to Use

This package is written on MATLAB 2014b. It includes the following scripts (Also see each file for further documentation):

  • main_Section_VI_A.m: This script produces the data for the purple dashed curves in Fig. 5 for given noise power (tau_N); The results are MSE_G_simulation and MSE_S_simulation, which is also stored in DATA/VIA_Simulation.mat. To save the running time, one can set the number of Monte Carlo trials to a small number. To fully recover the plots in Fig. 5, one should set libopt.trials (Line 22) to 5000.

  • main_replica.m: This script can produce the solid pruple curve in Fig. 5. Specifically, it provides an iterative algorithm to compute the asymptotic MSEs by computing the fixed-point of eq. (37). The result (MSE_G_ana and MSE_S_ana) are stored in DATA/VIA_Analytical.mat.

  • main_Section_VI_B.m: This script produces the data for the purple curves in Fig. 8 (i.e., the proposed algorihtm) for given noise power (tau_N, e.g., -70dB-- -110dB)。 The results are NMSE_H_RB and NMSE_H_UR, which is also stored in DATA/VIB_Simulation.mat. To save the running time, can set the number of Monte Carlo trials as a small number. To fully recover the plots in Fig. 8, one shall change libopt.trials to 1500;

  • plot_Fig5.m: Plot curves as in Fig. 5 based on .mat data files in DATA/.

  • plot_Fig8.m: Plot curves as in Fig. 8 based on .mat data files in DATA/.

  • Model_Generation_Library/: Scripts for generate system models

    • A_GEN.m: Generate a BS sampling basis with a unfirom sampling grid;
    • F_GEN.m: Generate RIS basis with grids specified by the inputs;
    • S_GEN.m: Generate a Bernouli complex Gaussian matrix with unit non-zero variance and specified sparsity;
    • MSE_Compute.m: Compute the MSE between the ground-truth and its estimate;
    • NMSE_CAL.m/NMSE_CAL2.m: Compute NMSEs by eq. (40).
  • DATA/: Store the numerical results with .mat format.

  • MP_Library/: Scripts for message passing updating

    • MessagePassing.m/MessagePassing_iteration.m: Implementation of Algorithm 1;
    • MPOpt.m: Class that contains the algorithm control parameters;
    • EstimIn.m/EstimOut.m/SparseScaEstim.m/CAwgnEstimIn.m/CAwgnEstimOut.m: Classes contain prior functions for input and output.
  • Replica_Library/replica_iteration.m: Iterative algorithm for asymptotic MSE computation.

Referencing

If you in any way use this code for research that results in publications, please cite our original article listed above.

Acknowledgements

Part of this package is written based on the GAMPMATLAB package.

About

Simulation Codes for Matrix-Calibration-Based Cascaded Channel Estimation for Reconfigurable Intelligent Surface Assisted Multiuser MIMO

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages