1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Print Print

BER for BPSK in ISI channel with MMSE equalization

by Krishna Sankar on January 24, 2010

In the past, we had discussed BER for BPSK in flat fading Rayleigh channel and BER for BPSK in a frequency selective channel using Zero Forcing Equalization. In this post, lets discuss a frequency selective channel with the use of Minimum Mean Square Error (MMSE) equalization to compensate for the inter symbol interference (ISI). For simplifying the discussion, we will assume that there is no pulse shaping at the transmitter. The ISI channel is assumed to be a fixed 3 tap channel.

Transmit symbol

Let the transmit symbols be modeled as

, where

is the symbol period,

is the symbol to transmit,

is the transmit filter,

is the symbol index and

is the output waveform.

For simplicity, lets assume that the transmit pulse shaping filter is not present, i.e .

So the transmit symbols can be modeled by the discrete time equivalent

Figure: Transmit symbols

Channel Model

Lets us assume the channel to be a 3 tap multipath channel with spacing i.e.

3 tap multipath channel

Figure: Channel model (3 tap multipath)

In addition to the multipath channel, the received signal gets corrupted by noise , typically referred to as Additive White Gaussian Noise (AWGN). The values of the noise follows the Gaussian probability distribution function, with

mean and

variance .

The received signal is

, where

is the convolution operator.

MMSE Equalization

In Minimum Mean Square Error solution, for each sample time we would want to find a set of coefficients which minimizes the error between the desired signal and the equalized signal , i.e.

,

where,

is the error at sample time ,

is column vector of dimension storing the equalization coefficients,

is column vector of dimension storing the received samples,

is the number of taps in the equalizer,

is the cross correlation between received sequence and input sequence ,

is the cross correlation between received sequence and input sequence and

is the auto-correlation of the received sequence.

For solving the Minimum Mean Square Error (MMSE) criterion, we need to find a set of coefficients which minimizes .

Differentiation with respect to and equating to 0,

.

Simplifying,

,

Note :

a) is the variance of the input signal

b) (as there is no correlation between input signal and noise)

Simulation Model

Click here to download: Matlab/Octave script for computing BER for BPSK with 3 tap ISI channel with MMSE Equalization

The attached Matlab/Octave simulation script performs the following:

(a) Generation of random binary sequence

(b) BPSK modulation i.e bit 0 represented as -1 and bit 1 represented as +1

(c) Convolving the symbols with a 3-tap fixed fading channel.

(d) Adding White Gaussian Noise

(e) Computing the MMSE and ZF equalization filter at the receiver (with 7 taps in length)

(f) Demodulation and conversion to bits

(g) Counting the number of bit errors

(h) Repeating for multiple values of Eb/No

The simulation results are as shown in the plot below.BER plot for BPSK in a 3 tap ISI channel with MMSE equalizer

Figure: BER plot for BPSK in a 3 tap ISI channel with MMSE equalizer

Observations

1. Can see around 0.5dB gain with using MMSE equalizer

Reference

Complex to Real : Tutorial 26 – Filters, analog, digital and adaptive equalization


Related posts

  1. BER for BPSK in ISI channel with Zero Forcing equalization
  2. MIMO with MMSE SIC and optimal ordering
  3. MIMO with MMSE equalizer
  4. MIMO with ML equalization
  5. BER for BPSK in OFDM with Rayleigh multipath channel

D id you like this article? Make sure that you do not miss a new article by subscribing to RSS feed OR subscribing to e-mail newsletter. Note: Subscribing via e-mail entitles you to download the free e-Book on BER of BPSK/QPSK/16QAM/16PSK in AWGN.

{ 2 trackbacks }

Tweets that mention BER for BPSK in ISI channel with MMSE equalization -- Topsy.com
January 26, 2010 at 12:47 am
Long term use of percocet.
February 13, 2010 at 10:26 pm

{ 9 comments… read them below or add one }

1 Abrar January 25, 2010 at 2:04 am

Hi
I am not able to open the code file, is there any problem.
Please check:

Thanks

Reply

2 Krishna Sankar January 25, 2010 at 5:25 am

@Abrar: I fixed that. Thanks for pointing out.

Reply

3 Communications Engineer January 25, 2010 at 12:06 pm

Thanks for this post – really :)

Reply

4 mesange January 27, 2010 at 1:03 pm

Hi Krishna,
I hope you are doing well. I am simulating 16 QAM in a Rayleigh channel and am trying to compute the SER(& BER). I need to verify my results using the theoretical formula. Can you kindly tell me the formula of SER for 16 QAM in Rayleigh channel?
I shall be grateful
Thanking in advance,

Reply

5 Krishna Sankar January 28, 2010 at 5:29 am

@mesange: I have not discussed 16QAM in Rayleigh channel case. However, you can discussion on
a) Symbol error rate for 16QAM in AWGN
http://www.dsplog.com/2007/12/09/symbol-error-rate-for-16-qam/
b) Bit error rate for 16QAM in AWGN assuming Gray coded bit mapping
http://www.dsplog.com/2008/06/05/16qam-bit-error-gray-mapping/
c) BER for BPSK in Rayleigh channel
http://www.dsplog.com/2008/08/10/ber-bpsk-rayleigh-channel/

Hope you will be able to extend these results to Rayleigh channel 16QAM case. Good luck.

Reply

6 eng_dina January 27, 2010 at 4:37 pm

thanks for your your graet work
please I study for my master in frequency synchronization in mimo ofdm system but i have problem with the matlab code to simulate to find out if estimation of the CFO on one path is affected by the CFO values of the adjacent paths and examine the estimator accuracy in term of its mean and variance
please help me it’s urgent and necessary

f_max = f_Tofdm/(M_sub*T_s); % f_max =maximal Doppler frequency (Hz),M_sub*T_s = OFDM Symbol period (sec),
%f_ndopp = f_max*M_sub*T_s % Normalized Maximum Doppler Spread Freq.

% Area parameter
% ra Rural Area
% tu Typical Urban
% bu Bad Urban
% ht Hilly Terrain
% no no fading
AREA = ‘no’ ;

% start simulation loops
for ee = 1 : length(EcNo)
ee
[theo_fo_var, rfo_var, rfo] = FOE_mimo_fading(EcNo(ee), tfo_array, NTX, NRX, M_sub, N, f_max, AREA, T_s, model, L);
plot_theo_fo_var(:,:,ee)=theo_fo_var;
plot_rfo_var(:,:,ee)=rfo_var;
plot_theo_rfo(:,:,ee)=tfo_array;
plot_rfo(:,:,ee)=rfo;
end

% plot results
for ii_tx = 1 : NTX
for ii_rx = 1 : NRX

% rearrange array order for easier plotting
vect_plot_theo_rfo = permute(plot_theo_rfo(ii_tx,ii_rx, , [2 3 1]);
vect_plot_rfo= permute(plot_rfo(ii_tx,ii_rx, , [2 3 1] ) ;
vect_plot_theo_fo_var= permute(plot_theo_fo_var(ii_tx,ii_rx,:),[2 3 1]);
vect_plot_rfo_var= permute(plot_rfo_var(ii_tx,ii_rx, , [2 3 1]);

%plot mean
figure;
plot(EcNo, vect_plot_theo_rfo, ‘:’ , ‘Linewidth’,2) ;
hold;
plot(EcNo, vect_plot_rfo,’o-’,’MarkerSize’ , 6,’Linewidth’, 1) ;
grid on;
t_str=sprintf(’New_ Theo and Est Freq Offset %s M=%d N=%d %dx%d path:tx%d-rx%d fo=%1.3f’,AREA,M_sub,N,NTX,NRX,ii_tx,ii_rx,tfo_array(ii_tx,ii_rx));
title(t_str);
xlabel(’EcNo SNR range and step (in dB)’);
ylabel(’Norm Freq Offset’) ;
legend(’Theo’,’Est’,’Location’,’Northeast’);
% save graph
fstr=sprintf(’new_m%d_%dx%dp%d%d_%s’,M_sub,NTX,NRX,ii_tx,ii_rx,AREA);
hgsave(fstr);

% plot variance
figure;
semilogy(EcNo, vect_plot_theo_fo_var,’:’,’Linewidth’,2);
hold;
semilogy(EcNo, vect_plot_rfo_var,’o-’,’MarkerSize’,6,’Linewidth’,1);
grid on;
grid minor;
t_str=sprintf(’New_ Est Var and CRLB %s M=%d N=%d %dx%d path:tx%d-rx%d fo=%1.3f’,AREA,M_sub,N,NTX,NRX,ii_tx,ii_rx,tfo_array(ii_tx,ii_rx));
title(t_str);
xlabel(’EcNo (in dB)’);
ylabel(’Variance’);
legend(’CRLB’,’Est’,’Location’,’Northeast’);
% save graph
fstr=sprintf(’new_y%d_%dx%dp%d%d_%s’,M_sub,NTX,NRX,ii_tx,ii_rx, AREA) ;
hgsave(fstr);
end
end
% rename variables for export
new_plot_theo_fo_var=plot_theo_fo_var;
new_plot_rfo_var=plot_rfo_var ;
new_plot_theo_rfo=plot_theo_rfo;
new_plot_rfo=plot_rfo;

% save all variables
fstr=sprintf(’new_f%d_%dx%d_%s.mat’,M_sub,NTX,NRX,AREA);
save(fstr);
% save variables for plotting
fstr=sprintf(’new_p%d_%dx%d_%s.mat’,M_sub,NTX,NRX,AREA);
save(fstr,’new_plot_theo_fo_var’,’new_plot_rfo_var’,’new_plot_theo_rfo’,’new_plot_theo_rfo’);

% end of file

Reply

7 Krishna Sankar January 28, 2010 at 5:24 am

@eng_dina: How are you modeling the CFO for MIMO systems?

If all the chains have a common RF clock, then all the chains will have similar CFO and the estimate from all the chains can be combined to improve the accuracy of the CFO estimation.
If the chains have independent RF clock, then we need to estimate CFO on each chain independently.

Reply

8 bhasker January 30, 2010 at 12:32 pm

your script is really appreciable sir. it is really helpful to me
1) i want to implement MMSE equalization in OFDM. can u help me on this sir
2) actually i want to know where should i aplly the equalizer in ofdm. either just before removing cyclic prefix or after takeing FFT.
plz help sir

Reply

9 balakrishna February 21, 2010 at 2:54 pm

please help me on DESIGN OF “RFMEMS SHUNT SWITCHS ” IN MAT LAB

Reply

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Previous post: Happy New Year 2010

Next post: TETRA Air interface specifications – Overview