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.
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 LinuxTags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
| Version | Published | Release Notes | |
|---|---|---|---|
| 1.0.5 | update toolbox name |
|
|
| 1.0.4 |
|
