
                                README

              RFI (Radio Frequency Interference) Mitigation
                            MATLAB ToolBox

              Author: Marcel Nassar (nassar@ece.utexas.edu)

                          DATE: November 21, 2007
Contents
_________

* Introduction
* Installation
* Theory and Background Information
* Compatibility
* Bug Reports and Feedback
* Version Updates and Bug Fixes
* References


Introduction
_____________

The RFI Mitigation toolbox for MATLAB is designed to provide a simulation 
environment for generating radio frequency interference and quantifying the
performance of various parameter estimation algorithms and interference 
mitigation algorithms. It is composed of various functions used to generate 
various types of noise statistics and to perform noise cancellation and 
detection. The current version (ver 1.1 beta ) supports the generation of 
Middleton Class A and Alpha Stable random variables and their envelopes 
(used in estimation). For the evaluation of communication performance under
the presence of the aforementioned noise types, the current version (ver 1.0
) of the toolbox implements a PAM communication system with correlation
detection, Wiener filtering followed by correlation detection, and the 
optimal Bayes detection developed by Spaulding and Middleton [1]. In 
addition to that, it implements the following parameter estimation algorithms:
Method of Moments [3], Zabin and Poor [4], Tsihrintzis [2]. This toolbox 
also includes various demos that illustrate the usage of the implemented 
functions, and generate various results.



Installation
_____________

The current version (ver 1.1 beta) of the RFI Mitigation toolbox does not 
contain a stand alone installer. To install it, the copy the given the RFI
directory to your toolbox directory in the MATLAB folder. For example 
assume that the MATLAB is installed in C:\Program Files\MATLAB. Then a 
possible destination directory can be C:\Program Files\MATLAB\toolbox.
After that the following command should be executed to add the RFI toolbox
to your MATLAB paths:

addpath(genpath('C:\Program Files\MATLAB\R2007a\toolbox\rfi'));

where you replace 'C:\Program Files\MATLAB\R2007a\toolbox\' with the 
directory to where you copied the rfi folder.



Theory and Background Information
__________________________________

The theory and the background information are given in an online report and
presentation that can be found at the following links:

Report:
http://users.ece.utexas.edu/~bevans/projects/rfi/reports/RFIReportSpring2007.doc

Presentation:
http://users.ece.utexas.edu/~bevans/projects/rfi/talks/April2007RFIMitigationSlides.ppt



Compatibility
______________

This toolbox has been tested in Matlab 7.0 and 7.1. The following 
command-toolbox dependencies exit and are needed for the toolbox to run 
properly:

	Command                 Toolbox
	--------                --------
	* pammod                Communication Toolbox
	* moment                Statistics Toolbox
	* rcosine               Communication Toolbox
	* xcorr                 Signal Processing Toolbox
 

Version Updates and Bug Fixes
______________________________

Version 1.1 beta
----------------
* Added Myriad functions RFI_myriad_apx, RFI_myriad_opt, RFI_myriad_res,
  RFI_detect_myriad.
* Added a demo illustrating the performance of these methods in the 
  presence of alpha stable noise: rfidemo_rx_aplha.
* Fixed the fact that S(alpha,disper,delta) = disper ^ (1/alpha) * S(alpha, 1, 0) + delta
  in RFI_EstAlphaS_Dispersion function. The implemented equation for the dispersion estimator
  is modified accordingly and is now in-sync with [2].
* Fixed the fact that S(alpha,disper,delta) = disper ^ (1/alpha) * S(alpha, 1, 0) + delta in
  RFI_MakeDataAlphaStable. Previously, this function was incorrectly implemented using 
  disper * S(alpha,1,0) + delta. Corresponding changes have been made to the estimator for 
  dispersion parameter.
* Removed the old implementation of RFI_NoiseSamplesClassA, and made this function just an 
  encapsulation for RFI_makeScalarPDFClassA and RFI_makeScalarNoiseClassA_pdf (written by 
  DeYoung) to improve computational performance.
* Implemented a recursive implementation of RFI_ClassApdf that improves perfomance and 
  increases the range of usable As.
* Added an alpha stable nois option to the Communication Performance Demo.


Bug Reports and Feedback
_________________________

For bugs and feedback, email me at nassar@ece.utexas.edu.



References
___________

 [1] A. Spaulding and D. Middleton, Optimum reception in an impulsive
     interference environment-part I: Coherent detection, IEEE Transactions on 
     Communications, vol. 25, no. 9, pp. 910923, 1977.

 [2] G. A. Tsihrintzis and C. L. Nikias, "Fast estimation of the
     parameters of alpha-stable impulsive interference", IEEE Transactions 
     on Signal Processing, vol. 44, no 6, pp. 1492-1503, June 1996.

 [3] D. Middleton, Procedures for determining the properties of the 
     first-order canonical models of Class A and Class B electromagnetic 
     interference, IEEE Transactions on Electromagnetic Compatibility, 
     vol. 21, pp. 190-208, Aug. 1979.

 [4] S. M. Zabin and H. V. Poor, Efficient estimation of Class A noise parameters
     via the EM [Expectation-Maximization] algorithms, IEEE Transaction on Information
     Theory, vol. 37, no. 1, pp. 60-72, Jan. 1991.
 
 [5] J.R. Gonzalez and G.R. Arce. "Optimality of the myriad in practical impulsive-noise 
     enviroments," IEEE Trans. on Signal Processing, vol 49,no.2, pp. 438-441, February 2001. 
