TensorFlow

This past week I have been working on two main programs.  data_generate.py generates training data, while scf_ann.py trains an ANN and then tests it, producing a percentage accuracy figure.

Apologies for the delayed update, I have had problems training the ANN, which, as was pointed out to me, was due to feeding in too few training samples.

data_generate.py

The following flow graph shows how this python script generates and stores data from a modulator.  We make use of the multiply const and noise source with appropriate values to change the SNR from -20dB to 20dB.

train.grc

We concentrate on four modulation techniques “2psk”,”4psk”,”8psk”,”fsk”, generating datasets with SNRs ranging from 20dB to -20dB for each modulation scheme.

We generated 2 lots of training data.

scf_ann.py

An ANN was created through the use of TensorFlow.  We feed in the 2D output from the SCF to the ANN.  We make use of a single hidden layer, which has int(number_of_inputs * 0.89) neurons, which was found through experimentation.

Accuracy

The following graph depicts the accuracy with different SNR of testing samples, for all 4 modulation schemes.  422 testing samples where used for each test at a specific SNR.

acc

I believe the accuracy can be improved through more experimentation with the neural network.

All the testing was done with 2 Samples / Symbol, I need to compare results with differing values for that.

I will now work on making a GNU Radio block, to produce an output with the probabilities for each modulation scheme.

See https://github.com/chrisruk/scf/ for the code

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s