Gaussian processes with uncertain input, applied to wireless channel learning and prediction
By definition, a Gaussian process (GP) is a collection of random variables, any finite number of which have a joint Gaussian distribution. A GP is defined by an input space X and a Gaussian output y(x), where the output has a mean function and a covariance function. Given a collection of input-output pairs, it is then possible to learn the parameters of the mean and covariance function and also to predict the GP at a new input x.
When the input itself is uncertain (e.g., given by a mean and covariance), the learning and prediction steps need to be modified. This code uses classical GP (cGP) and so-called uncertain GP (uGP) for the task of learning and predicting a wireless communication channel between pairs of communicating agents.
The main file is maincGPuGP.m
and has a number of parameters that can be set by the user
xmax = 30; % max value in horizontal dimension
ymax = 30; % max value in vertical dimension
eta = 2; % pathloss exponent (generally between 1.5 and 4)
dc = 3; % decorrelation distance (<5 meter indoors and around 50 meter outdoors)
sigmaPsi = 7; % shadowing std. dev. in dB
L0dB = -10; % 30 in dB, channel gain (PTX + antenna gain)
p_learning_cGP = 1; % power of kernel function used for learning cGP (uGP always uses a power of 2)
Nsteps=8; % number of grid points for learning
sigmaLow = 1e-9; % good location std. dev. for training
sigmaHigh = 10; % bad location std. dev. for training
fractionp = 0.7; % fraction p of bad measurements
NoMeasurements = 1000; % # of measurements used for channel parameter estimation incl. reciprocal
xTX1dim = 15; %horizontal coordinate of TX (does not need to be fixed)
yTX1dim = 15; %vertical coordinate of TX (does not need to be fixed)
The code will then go through a number of steps, for both cGP and uGP:
- Creating the channel model
- Generating a measurement database with a fraction
fractiop
measurements with high input uncertainty - Perform parameter learning
- Compute data structures for prediction
- Perform prediction
- Visualize results
An example result is provided below, showing the predicted mean power for cGP.
The code was developed by Dr. Markus Fröhle, while he was a PhD student at Chalmers University of Technology. The code is based on the paper:
Fröhle, Markus, Themistoklis Charalambous, Ido Nevat, and Henk Wymeersch. "Channel Prediction With Location Uncertainty for Ad Hoc Networks." IEEE Transactions on Signal and Information Processing over Networks, vol. 4, no. 2 (2018): 349-361.
If you plan to use or modify this code, please cite our work:
@article{frohle2018channel,
title={Channel Prediction With Location Uncertainty for Ad Hoc Networks},
author={Fr{\"o}hle, Markus and Charalambous, Themistoklis and Nevat, Ido and Wymeersch, Henk},
journal={IEEE Transactions on Signal and Information Processing over Networks},
volume={4},
number={2},
pages={349--361},
year={2018}
}