No project description provided
Project description
Phy_Detect_EP
This detection method is proposed in Expectation Propagation Detection for High-Order High-Dimensional MIMO Systems by Javier Céspedes. It has three process: cavity distribution, Bayesian estimation and iterative update.
Cespedes, J., Olmos, P. M., Sánchez-Fernández, M., & Perez-Cruz, F. (2014). Expectation propagation detection for high-order high-dimensional MIMO systems. IEEE Transactions on Communications, 62(8), 2840-2849.
Also, the initial version of this code is from Alva Kosasih.
How to use
All EP codes are uniform in matlab and python as a class of EP. This class contains the whole process. This section will illustrate the methods of this class following the process of detection.
- EP(the parameter names follow the notations in Expectation Propagation Detection for High-Order High-Dimensional MIMO Systems)
@constellation: the constellation, a vector
@beta: the percentage for taking values from the previous iteration
@epsilon: the default minimal variance
@l: the maximal iteration
@early_stop: whether stop early
@early_stop_min_diff: the elemental minimal (element-wise) difference in mean and variance
@batch_size(optional) : the batch size (only used in python).
% matlab M = 16; constellation = qammod([0: M - 1], M, "UnitAveragePower", true); ep = EP(constellation, "beta", 0.1, "epsilon", 1e-13, "early_stop_min_diff", 1e-4);
# python ep = EP(constellation, beta=0.1, epsilon=1e-13, early_stop_min_diff=1e-4); # no batch ep = EP(constellation, beta=0.1, epsilon=1e-13, early_stop_min_diff=1e-4, batch_size=10); # using batch
- detect
@y: the received signal, a vector of [(batch_size), rx_num], [(batch_size), rx_num, 1] or [(batch_size), 1, rx_num]
@H: the channel matrix, a matrix of [(batch_size), rx_num, tx_num]
@No: the noise (linear) power
@sym_map: false by default. If true, the output will be mapped to the constellation
# matlab syms = ep.detect(y, H, No); # no hard mapping syms = ep.detect(y, H, No, sym_map=True); # hard mapping
# python syms = ep.detect(y, H, No); # no hard mapping syms = ep.detect(y, H, No, sym_map=True); # hard mapping
Samples
Before running any sample code, please make sure you are at the root path of this repository. Also, Matlab codes require running init in the command window first to load directories.
Alva: this is the original code fromAlva Kosasih.TestsTests/test_case_01: test the difference between the mature code from and newly proposedEPobject (no early stop).Tests/test_case_02: draw the SER vs SNR between the mature code from and newly proposedEPobject (early stop).
Further Reading
The division of two Gaussian distribution
Now we set and we are going to calculate
X to see the distribution
Therefore, we can conclude that the the new mean and new variance is given as below (ignoring the constant part because this is just the likelihood of two Xs are same).
Cavity distribution
Cavity Marginal
Now we are going to use the 2 Gaussian Distribution Division knowledge to calculate
Now, we follow the Math symbols in the paper, suppose (
is the diagonal of the matrix
) and
Here, we need pay attention that the mean of p(x) is instead of
. The proof is give below where we follow the exponential family.
Here, we can see that the mean is
Now, we are going to find out in
Lth iteration
The Pair Update 
From the step computing the mean and the variance
of prediction
, we can use those 2 results to calculate
; that is, for
(L+1)th iteration,
Using 2 Gaussian Distribution Division knowledge, for the variance,
For the mean,
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file whatshow_phy_detect_ep-1.0.5.tar.gz.
File metadata
- Download URL: whatshow_phy_detect_ep-1.0.5.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48ff29a0834f077193838ee37bd1a504ea9612ac2552610a873f2963d6736bdd
|
|
| MD5 |
5da838e40ade60a5f88ea60184df3915
|
|
| BLAKE2b-256 |
47c60be18a45c6ee215ed8eefb190daf7522a9be8bded1badbf565171487c7a3
|
File details
Details for the file whatshow_phy_detect_ep-1.0.5-py3-none-any.whl.
File metadata
- Download URL: whatshow_phy_detect_ep-1.0.5-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b791e32b90be422edeac3d4e7c82e007ed7f14127e6ac5d3d88dd7c5b5704f33
|
|
| MD5 |
2325332b7941065d4df4474dd444a14d
|
|
| BLAKE2b-256 |
4a1b990cb67f4e5d83b57f047b083aba1dea25e212c0d2f49c311a086fbb6604
|