
                                README

              RFI (Radio Frequency Interference) Mitigation
                            MATLAB ToolBox

              Authors: Marcel Nassar (nassar@ece.utexas.edu)
			     Kapil Gulati  (gulati@ece.utexas.edu)	

                          DATE: April 2, 2009
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.2.1 ) supports the generation of 
Middleton Class A, Symmetric Alpha Stable,  and the bivariate Middleton Class 
A random variables. For the evaluation of communication performance under 
the presence of the aforementioned noise types, the current version (ver 1.2.1
) of the toolbox implements a PAM communication system with correlation
detection, Wiener filtering followed by correlation detection, the optimal 
Bayes detection developed by Spaulding and Middleton [1], and the small-signal 
approximation of the optimal Bayes Detection. Further the toolbox implements a 
2x2 MIMO communication system using M-QAM modulation, spatial multiplexing 
and alamouti transmission strategies with optimal Gaussian maximum likelihood (ML)
receiver, optimal and suboptimal ML receivers in the presence of bivariate 
Middleton Class A noise [6]. 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. Ver 1.2.1 also
added a demo providing capability to send user files through a impulsive noise
channels.



Installation
_____________

The current version (ver 1.2.1 ) 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/Oct2008RFIMitigationSlidesCMU.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
	--------                --------
	* qammod, qamdemod	Communication Toolbox
	* pammod, pamdemod      Communication Toolbox
	* moment                Statistics Toolbox
	* rcosine               Communication Toolbox
	* xcorr                 Signal Processing Toolbox
        * random		Statistics Toolbox
	* randsample		Statistics Toolbox
 

Version Updates and Bug Fixes
______________________________

Version 1.2.1
-------------
* Fixed a bug in RFI_MakePDFClassA where the input parameter M was getting reassigned.

Version 1.2
------------
* Added a new demo for file transmission across the an impulsive channel with alpha stable
  noise and class A middleton noise, with some video transmission capability (still in beta).
* Added function to support this demo are: RFI_getANDmodFDATA.m and RFI_decANDwrtFDATA.m .

Version 1.2 beta
----------------
* Added functions for generation of bivariate Middleton Class A noise.
* Modified the Middleton Class A noise generators for improved computational performance.
* Added functions to implement 2x2 MIMO receivers in the presence of Gaussian and bivariate 
  Middleton Class A noise. 
* Added demo for a 2x2 MIMO system in the presence of RFI: RFI_DemoTwoByTwoMIMO
* Added small signal approximation, quantized pdf implementation of the bayesian detection
  in the presence of Middleton Class A noise

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.

 [6] K. Gulati, A. Chopra, R. W. Heath, Jr., B. L. Evans, K. R. Tinsley, and X. E. Lin, 
     "MIMO Receiver Design in the Presence of Radio Frequency Interference", Proc. IEEE 
     Int. Global Communications Conf., Nov. 30-Dec. 4th, 2008, New Orleans, LA USA.

 [7] M. Nassar, K. Gulati, A. K. Sujeeth, N. Aghasadeghi, B. L. Evans and K. R. Tinsley, 
     "Mitigating Near-Field Interference in Laptop Embedded Wireless Transceivers", 
     Proc. IEEE Int. Conf. on Acoustics, Speech, and Signal Proc., Mar. 30-Apr. 4, 2008, 
     Las Vegas, NV USA. 
