Code covered by the BSD License  

Highlights from
RFI (Radio Frequency Interference) Mitigation Toolbox 1.2.1 beta

RFI (Radio Frequency Interference) Mitigation Toolbox 1.2.1 beta

by

 

Simulates environment for RFI & quantifies the performance of interference mitigation algorithms

RFI_BiVarClassAMLRx(Y, H, codebook, M, Es, SNR, A, Gamma1, Gamma2, kappa)
function decodedSymbols = RFI_BiVarClassAMLRx(Y, H, codebook, M, Es, SNR, A, Gamma1, Gamma2, kappa)
% decodedSymbols = RFI_BiVarClassAMLRx(Y, H, codebook, M, Es, SNR, A, Gamma1, Gamma2, kappa)
% This function implements the maximum likelihood (ML) decoder for a 2x2 MIMO
% system in the presence of additive bivariate Middleton Class A noise.
% Inputs:   Y - matrix of the received signal
%           H - 2x2 channel matrix 
%           codebook - codebook that contains all the possible 2x1
%                      codewords that could have been transmitted. This
%                      defines the ML search space. 
%           M - Modulation order for the QAM constellation used in
%               transmission (M-QAM)
%           Es - Transmit symbol energy
%           SNR - Received signal-to-noise ratio
%           A  - overlap index of the bivariate Middleton Class A noise
%           Gamma1, Gamma2 - ratio of the intensity of the independent
%                    Gaussian component to the intensity of the impulsive
%                    non-Gaussian component (in general belongs to
%                    [10^-6,1]) at antennas 1 and 2 respectively
%           kappa  - Correlation coefficient between the noise samples at
%                    the receiver
% Outputs:  decodedSymbols - Matrix of the ML decoded symbols 
%
% References:
% [1] 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. 
%
% Copyright (c) The University of Texas
% Please see the file Copyright.txt that came with this release for details
% Programmers: Kapil Gulati   (gulati@ece.utexas.edu)
%              Aditya Chopra  (chopra@ece.utexas.edu)
%
% Revisions:
% Date      Version     Owner     Comments
% -------------------------------------------------------------------------
% 11/11/08  1.2 Beta    gulati    Initial Implementation

% Calculate coeffs of covariance matrix K0mat and K1mat
c0 =  sqrt(Gamma1/(1+Gamma1));
c_hat0 = sqrt((Gamma2)/(1+Gamma2));
c1 = sqrt((Gamma1+1/A)/(1+Gamma1));
c_hat1 = sqrt((Gamma2+1/A)/(1+Gamma2));
N_total = (repmat(Y, 1, M^2) - H * codebook)/ sqrt(Es/SNR);
K0mat = [c0^2 c0*c_hat0*kappa;c0*c_hat0*kappa c_hat0^2];
K1mat = [c1^2 c1*c_hat1*kappa;c1*c_hat1*kappa c_hat1^2];

% Weights of the exponential terms in the bivariate Middleton Class A
% distribution
cost_factor0 = exp(-A)/(det(K0mat)^0.5);
cost_factor1 = (1-exp(-A))/(det(K1mat)^0.5);

% ML decoding metric for the real component 
N = real(N_total);
cost_r0 = cost_factor0*exp(-diag(N.'*inv(K0mat)*N)/2);
cost_r1 = cost_factor1*exp(-diag(N.'*inv(K1mat)*N)/2);
cost_r = cost_r0 + cost_r1;

% ML decoding metric for the imaginary component
N = imag(N_total);
cost_i0 = cost_factor0*exp(-diag(N.'*inv(K0mat)*N)/2);
cost_i1 = cost_factor1*exp(-diag(N.'*inv(K1mat)*N)/2);
cost_i = cost_i0 + cost_i1;

% Choose the codeword that maximizes the likelihood function
[val ind] = max(cost_r.*cost_i);
decodedSymbols = qamdemod(codebook(:,ind),M);

return

Contact us