whatshow_phy_detect​_bpic

Version 1.0.5 (14.8 KB) by Textremo
This detection method is proposed in A Bayesian Receiver With Improved Complexity-Reliability Trade-Off in Massive MIMO Systems.
12 Downloads
Updated 27 Mar 2024

View License

How to use
All Bayesian PIC-DSC detector codes are uniform in matlab and python as a class of `BPIC`. This class is the whole process of the detection. This section will illustrate the methods of this class following the detection process.
1. BPIC
  • @constellation: the constellation, a vector.
  • @bso_mean_init: 1st iteration method in **BSO** to calculate the mean. Default: `BPIC.BSO_INIT_MMSE`, others: `BPIC.BSO_INIT_MRC, BPIC.BSO_INIT_ZF` (`BPIC.BSO_INIT_NO` should not be used but you can try)
  • @bso_mean_cal: other iteration method in **BSO** to calculate the mean. Default: `BPIC.BSO_MEAN_CAL_MRC` (`BPIC.BSO_MEAN_CAL_ZF` should not be used but you can try)
  • @bso_var: use approximate or accurate variance in **BSO**. Default: `BPIC.BSO_VAR_APPRO`, others: `BPIC.BSO_VAR_ACCUR`
  • @bso_var_cal: the method in **BSO** to calculate the variance. Default: `BPIC.BSO_VAR_CAL_MRC`, others: `BPIC.BSO_VAR_CAL_MRC` (`BSO_VAR_CAL_ZF` should not be used but you can try)
  • @dsc_ise: how to calculate the instantaneous square error. Default: `BPIC.DSC_ISE_MRC`, others: `BPIC.DSC_ISE_NO, BPIC.DSC_ISE_ZF, BPIC.DSC_ISE_MMSE`
  • @dsc_mean_prev_sour: the source of previous mean in DSC. Default: `BPIC.DSC_MEAN_PREV_SOUR_BSE`, others: `BPIC.DSC_MEAN_PREV_SOUR_DSC`
  • @dsc_var_prev_sour: the source of previous variance in DSC. Default: `BPIC.DSC_VAR_PREV_SOUR_BSE`, others: `BPIC.DSC_VAR_PREV_SOUR_DSC`
  • @min_var: the minimal variance.
  • @iter_num: the maximal iteration.
  • @iter_diff_min: the minimal difference in **DSC** to early stop.
  • @detect_sour: the source of detection result. Default: `BPIC.DETECT_SOUR_DSC`, others: `BPIC.DETECT_SOUR_BSE`.
// paper version 1: for BSO, MMSE in 1st iteration but MRC in others
bpic = BPIC(sympool);
// paper version 2: MRC in all iterations
bpic = BPIC(sympool, "bso_mean_init", BSO_MEAN_INIT_MRC); % matlab
bpic = BPIC(sympool, bso_mean_init=BSO_MEAN_INIT_MRC); # python
// other configurations
% matlab
bpic = BPIC(sympool, "bso_mean_init", BPIC.BSO_MEAN_INIT_MMSE, "bso_var", BPIC.BSO_VAR_APPRO, "bso_var_cal", BPIC.BSO_VAR_CAL_MMSE, "dsc_ise", BPIC.DSC_ISE_MMSE, "detect_sour", BPIC.DETECT_SOUR_BSE);
# python
bpic = BPIC(sympool, bso_mean_init=BPIC.BSO_MEAN_INIT_MMSE, bso_var=BPIC.BSO_VAR_APPRO, bso_var_cal=BPIC.BSO_VAR_CAL_MMSE, dsc_ise=BPIC.DSC_ISE_MMSE, detect_sour=BPIC.DETECT_SOUR_BSE);
2. detect: the estimated symbols from Tx
  • @y: the received signal, a vector
  • @H: the channel matrix, a matrix
  • @No: the noise power, a scalar
  • @sym_map: whether use hard mapping
// symbol estimation - soft
x_est = bpic.detect(y, H, No);
// symbol estimation - hard
x_est = bpic.detect(y, H, No, "sym_map", true); % matlab
x_est = bpic.detect(y, H, No, sym_map=true); # python

Cite As

Textremo (2026). whatshow_phy_detect_bpic (https://uk.mathworks.com/matlabcentral/fileexchange/161786-whatshow_phy_detect_bpic), MATLAB Central File Exchange. Retrieved .

Kosasih, A., Miloslavskaya, V., Hardjawana, W., She, C., Wen, C. K., & Vucetic, B. (2021). A Bayesian receiver with improved complexity-reliability trade-off in massive MIMO systems. IEEE Transactions on Communications, 69(9), 6251-6266.

MATLAB Release Compatibility
Created with R2021a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.5

update toolbox name

1.0.4