What is this program?

This program is writen for EEL6509 course project.

It is a wireless communication simulator including Gray coding, modulation, different channel models (AWGN, flat fading and frequency selective fading channels), channel estimation, adaptive equalization, demodulation, Gray decoding. The simulator can also plot dynamic constellation and BER, and for image data, it also plot the received image. Most of the course knowledge points are covered here. all these files have source code there, then user may add their own code there to add more functionalities or test their models. Due to the time limit, some functions are not implemented as channel coding, source coding, etc, and some functions may not be fully tested.

This program can run either in default mode or play mode. If user want to play it, they need to specify the modulation type, modulation order, channel type; for both fading channels, user may also need to specify the training data percentage, velocity; for fequency selective fading channel, user also need to specify the equalization algorithmand training mode. If user want to plot dynamic constellation, they also need to specify at which SNR the constellation is drawed. For random source data, user need to specify the data length; for image data, they need to specify a image path. The SNR for showing received image is same for plot constellation, but user may change it in program.

Don't be panic about all the setting above. Actually all of the parameters have default value there,so user may just press enter for those default options. Hope you will enjoy it!

You may refer to simulation.doc to see a more detail description about the implementation.

How to run the program?

First, user need to put all .m file in one fold. Then just run the main.m file in Matlab, and follow the instruction there.

Below is to explain the instruction and parameters in detail:

After run the main.m file, the instruction is display in command window of Matlab. User need to select to run the program in default mode or play mode. If they choose default mode, then no any parameter need to be set. The default setting is QPSK modulation, Gray coding, AWGN channel and image data transmission.

If user choose the play mode, then follow below steps (select default setting by just press enter):

  1. set the modulation order.
  2. choose to use gray coding or not
  3. choose a channel type
  4. For AWGN channel:
  5. choose to send a random data or image over this channel
  6. if random data, user need to set data length
  7. if image, user need to set image file with path
  8. For flat fading channel:
  9. set the percentage of training data length
  10. set which SNR in the SNR array for plot constellation and image
  11. set the velocity from 20km/hr to 120km/hr
  12. choose to send a random data or image over this channel
  13. if random data, user need to set data length
  14. if image, user need to set image file with path
  15. For frequency selective fading channel:
  16. set the percentage of training data length
  17. set which SNR in the SNR array for plot constellation and image
  18. Choose equalization algorithm: LMS or RLS
  19. choose channel estimation mode, i.e. to reset result from last coherent time or not. Without reset result give a better performance.
  20. choose training mode, i.e. the training only mode or decision directed mode. Decision directed mode give a better performance.
  21. choose to send a random data or image over this channel
  22. if random data, user need to set data length
  23. if image, user need to set image file with path

Last Update Date, Version Number, and Contact Information

The program is updated on 20070520. This version number is v1.2, which is updated from v1.1/v1.0 by adding more options for user to play, more default options, more image plots, and more functions as data truncate after receive. It also fix image processing bugs, and frequency selective fading constellation plot BER bug.

If you find any bugs or malfunctions there, please don’t hesitate to email me by

Disclaimer

There is no warranty, expressed or implied, associated with this product.

Use at your own risk.

Zhifeng Chen

Electrical and Computer Engineering

University of Florida