Home > WaveComBox > Example > FBMC_OQAM > MIMOEqualizerComparison.m

MIMOEqualizerComparison

PURPOSE ^

Equalizer comparison for MIMO FBMC-OQAM system under highly frequency

SYNOPSIS ^

This is a script file.

DESCRIPTION ^

 Equalizer comparison for MIMO FBMC-OQAM system under highly frequency
 selective channel

 Example showing a comparison of equalizer for a MIMO FBMC-OQAM system
 under frequency selective channel.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 % Equalizer comparison for MIMO FBMC-OQAM system under highly frequency
0002 % selective channel
0003 %
0004 % Example showing a comparison of equalizer for a MIMO FBMC-OQAM system
0005 % under frequency selective channel.
0006 
0007 % This file is part of WaveComBox: www.wavecombox.com and is distributed under
0008 % the terms of the MIT license. See accompanying LICENSE file.
0009 % Original author: François Rottenberg, May 8, 2018.
0010 % Contributors:
0011 % Change log:
0012 
0013 % Definition of general Parameters
0014 Para=InitializeChainParameters( 'FBMC-OQAM' ); % initialize parameters of the FBMC-OQAM chain
0015 Para.Ns=1000;
0016 Para.N_T=2;
0017 Para.N_R=4;
0018 Para.S=min(Para.N_T,Para.N_R);
0019 Para.Es_N0_dB=40
0020 
0021 % Transmitter
0022 d = GenerateData (Para); % Generate data symbols
0023 s = Modulator(d, Para ); % FBMC-OQAM modulation
0024 
0025 % Channel
0026 C=GenerateRayleighChannelReal('ITU_VehA', Para);
0027 r = Channel_Multipath( s, C ); % Multipath channel
0028 r=Channel_AWGN( r, Para ); % AWGN channel, SNR fixed in Para
0029 
0030 % Receiver
0031 z = Demodulator( r, Para ); % FBMC demodulation
0032 
0033 % Conventional single-tap equalizer
0034 ParaEqualizer.criterion='MMSE';
0035 [ x, B ] = Equalizer( z, C, Para, 'SingleTap', ParaEqualizer );
0036 d_hat=real(x);
0037 MSE = MSEComputes( d, d_hat, Para );
0038 MSE_theo_approx = FBMC_OQAM_MSESingleTapTheorApprox( B, C, Para );
0039 
0040 % Optimized single-tap equalizer
0041 ParaEqualizer.criterion='MMSE_opt_freq_selec';
0042 [ x, B ] = Equalizer( z, C, Para, 'SingleTap', ParaEqualizer );
0043 d_hat=real(x);
0044 MSE_opt = MSEComputes( d, d_hat, Para );
0045 MSE_theo_approx_opt = FBMC_OQAM_MSESingleTapTheorApprox( B, C, Para );
0046 
0047 % Multi-tap equalizer (frequency sampling)
0048 ParaEqualizer.criterion='MMSE';
0049 ParaEqualizer.L_eq=3; % number of taps
0050 [ x ] = Equalizer( z, C, Para, 'MultiTapFS', ParaEqualizer );
0051 d_hat=real(x);
0052 MSE_MultiTapFS = MSEComputes( d, d_hat, Para );
0053 
0054 % Parallel equalization
0055 ParaEqualizer.R=1; % number of additional parallel stages
0056 ParaEqualizer.r=r; % received signal should be provided as a parameter of the equalizer
0057 [ x ] = Equalizer( z, C, Para, 'ParallelMultistage', ParaEqualizer );
0058 d_hat=real(x);
0059 MSE_Parallel_multistage = MSEComputes( d, d_hat, Para );
0060 
0061 % Frequency spreading receiver
0062 [ x ] = Equalizer( z, C, Para, 'FrequencySpreading', ParaEqualizer );
0063 d_hat=real(x);
0064 MSE_frequency_spreading = MSEComputes( d, d_hat, Para );
0065 
0066 %% plot results
0067 
0068 figure
0069 plot(Para.ActiveSubcarriers,10*log10(MSE_theo_approx(Para.ActiveSubcarriers)),'markersize',8,'linewidth',1.5)
0070 hold on
0071 plot(Para.ActiveSubcarriers, 10*log10(MSE),'xb','markersize',8,'linewidth',1.5)
0072 plot(Para.ActiveSubcarriers,10*log10(MSE_theo_approx_opt(Para.ActiveSubcarriers)),'--r','markersize',8,'linewidth',1.5)
0073 plot(Para.ActiveSubcarriers, 10*log10(MSE_opt),'xr','markersize',8,'linewidth',1.5)
0074 plot(Para.ActiveSubcarriers,10*log10(MSE_MultiTapFS(Para.ActiveSubcarriers)),'-k','markersize',8,'linewidth',1.5)
0075 plot(Para.ActiveSubcarriers,10*log10(MSE_Parallel_multistage(Para.ActiveSubcarriers)),'-+g','markersize',8,'linewidth',1.5)
0076 plot(Para.ActiveSubcarriers,10*log10(MSE_frequency_spreading(Para.ActiveSubcarriers)),'-r','markersize',8,'linewidth',1.5)
0077 xlabel('Subcarrier index')
0078 ylabel('MSE [dB]')
0079 xlim([min(Para.ActiveSubcarriers) max(Para.ActiveSubcarriers)])
0080 legend('Single-tap theo','Single-tap','Opt Single-tap theo','Opt Single-tap','Multi-tap FS','Parallel multistage','Frequency spreading')
0081

Generated on Mon 14-Oct-2019 13:48:34 by m2html © 2005