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
引用格式
Michael (2024). whatshow_phy_detect_bpic (https://www.mathworks.com/matlabcentral/fileexchange/161786-whatshow_phy_detect_bpic), MATLAB Central File Exchange. 检索来源 .
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 版本兼容性
创建方式
R2021a
兼容任何版本
平台兼容性
Windows macOS Linux标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!版本 | 已发布 | 发行说明 | |
---|---|---|---|
1.0.5 | update toolbox name |
|
|
1.0.4 |
|