Skip to main content
. 2019 Mar 8;19(5):1196. doi: 10.3390/s19051196
Algorithm 3: Find optimal α1 and α2.
/* Load data on Fading channel  ;                          */
1 snr_k ← post-processing SINRs, bler ← BLER
/* Calculate γeff with α1 and α2                            */
2 snr_eff = -1 * alpha1 * tf.log(tf.reduce_mean (tf.exp(-1*snr_k/alpha2), axis = 1))
/* Decide target SNR by regression                           */
3 target_snr ← predicted snr corresponding to BLER
/* Calculate loss function                               */
4 loss = tf.reduce_sum(tf.abs(tf.subtract (target_snr,snr_eff)))
/* Select a training algorithm between Adagrad and RMSprop; Adagrad is
selected in this case.                                 */
5 train = tf.train.AdagradOptimizer(0.1).minimize(loss)
/* train = tf.train.RMSPropOptimizer(0.1).minimize(loss) ← when RMSProp is
selected.                                        */
/* Training data 4000 times                              */
6 with tf.Session() as sess:
7 sess.run(init)
8 for i in range(4000):
9  sess.run(train)
/* Calculate MSE in test data set                           */
10 regressed_bler ← estimated BLER, y_data ← BLER
11 mse = np.mean(np.square(np.subtract(np.asarray(y_data), np.asarray(regressed_bler))))