Equalizr - Direct Inverse

Equalization in communication systems is a method used to mitigate the effects of channel impairments such as noise, interference, and signal distortion due to the transmission medium. The primary goal of equalization is to correct for these distortions and to recover the original transmitted signal as accurately as possible at the receiver's end.

The Direct Inversion Equalization is conceptualized in a simplified communication system. It shows the flow from transmission, through a channel, to reception, and finally, signal restoration via equalization.

Now, diving into the Direct Inversion method:

Direct Inversion Equalization is a technique in which the inverse of the channel's effect (represented by the channel matrix, H) is applied to the received signal. By applying this inverse (denoted as H^-1), the goal is to counteract the channel distortions directly and recover the transmitted signal. This method is based on the assumption that if you exactly know how a channel distorts a signal, you can apply the exact opposite of that distortion to get back the original signal.

However, this method has practical limitations. It assumes that the channel is perfectly known (which is rarely the case in real-time communications) and that the channel is stable (doesn't change over time). It also doesn't handle random noise well, which is always present in communication systems.

Regarding the picture you've provided:

  • Layer(1) and Layer(2): These are two separate data streams or paths in a communication system. They may represent different sets of data or different channels in a MIMO system.
  • Tx(1) and Tx(2): These denote the transmitters for each data layer. They prepare and send the signals corresponding to each layer through the channel.
  • Channel (H): This is the transmission medium with its own characteristics represented by a matrix H. This matrix models how the medium affects the signals passed through it.
  • Rx(1) and Rx(2): Represent the receivers that get the distorted signals after passing through the channel. The distortion includes all the effects the channel has on the transmitted signal.
  • Equalizer (H^-1): The equalizer applies the inverse of the channel matrix to the received signals, aiming to reverse the effects of the channel. It's a direct application of the Direct Inversion Equalization method.
  • Equalized Rx(1) and Rx(2): These are the outputs after equalization. If the inversion is perfect and the channel is stable, these would closely match the original Layer(1) and Layer(2) signals.

 

 

 

Followings are the code that I wrote in Octave to creates all the plots shown in this page. You may copy these code and play with these codes. Change variables and try yourself until you get your own intuitive understanding.

 

< Code 1 >

 

 

N = 500;

rand ("seed", 100);

 

n1 = 0.05*(randn(1,N) + j*randn(1,N));

n2 = 0.05*(randn(1,N) + j*randn(1,N));

c1 = (2*randi([0 1],1,N)-1) + j*(2*randi([0 1],1,N)-1);

c2 = (2*randi([0 1],1,N)-1) + j*(2*randi([0 1],1,N)-1);

 

c1 = c1 + n1;

c2 = c2 + n2;

 

n = 1;

%H = (1/2) .* [1 1; ...

%              j exp(-j*n*2*pi/20)];

%H = (1/2) .* [1 1; ...

%              j -j];              

H = [0.9+j*0.1 0.2-j*0.3; ...

     -0.3+j*0.5 -0.7-j*0.1];              

              

Tx = [c1; c2];              

 

Rx = H * Tx;

 

EqRx = inv(H) * Rx;

 

 

     

hFig = figure(1,'Position',[300 300 700 350]);    

subplot(2,11,[1 3]);

plot(real(Tx(1,:)),imag(Tx(1,:)),'bo','MarkerFaceColor',[0 0 1],'MarkerSize',4);

axis([-2 2 -2 2]);

title('Layer(1)-Tx(1)');

grid on;

box on;

 

subplot(2,11,[12 14]);

plot(real(Tx(2,:)),imag(Tx(2,:)),'mo','MarkerFaceColor',[1 0 1],'MarkerSize',4);

axis([-2 2 -2 2]);

title('Layer(2)-Tx(2)');

grid on;

box on;

 

subplot(2,11,[5 7]);     

hold on;

plot(real(Rx(1,:)),imag(Rx(1,:)),'ro','MarkerFaceColor',[1 0 0],'MarkerSize',4);

axis([-2 2 -2 2]);

title('Rx(1)');

hold off;

grid on;

box on;

 

subplot(2,11,[16 18]);     

hold on;

plot(real(Rx(2,:)),imag(Rx(2,:)),'ko','MarkerFaceColor',[0 0 0],'MarkerSize',4);

axis([-2 2 -2 2]);

title('Rx(2)');

hold off;

grid on;

box on;

 

subplot(2,11,[9 11]);     

hold on;

plot(real(EqRx(1,:)),imag(EqRx(1,:)),'ro','MarkerFaceColor',[1 0 0],'MarkerSize',4);

axis([-2 2 -2 2]);

title('Equalized Rx(1)');

hold off;

grid on;

box on;

 

subplot(2,11,[20 22]);     

hold on;

plot(real(EqRx(2,:)),imag(EqRx(2,:)),'ko','MarkerFaceColor',[0 0 0],'MarkerSize',4);

axis([-2 2 -2 2]);

title('Equalized Rx(2)');

hold off;

grid on;

box on;