0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 Para=InitializeChainParameters( 'CP-OFDM' )
0015 Para.Ns=2000;
0016 Para.N_T=3;
0017 Para.N_R=2;
0018 Para.S=min(Para.N_T,Para.N_R);
0019
0020 Para.Es_N0_dB=15;
0021
0022
0023 d = GenerateData (Para);
0024
0025
0026 C=GenerateRayleighChannelReal('ITU_VehA', Para);
0027 ParaPreEqualizer.criterion='SVD';
0028 [d_tilde, A, B ]=PreEqualizer( d, C, Para, 'SingleTap', ParaPreEqualizer );
0029
0030 s = Modulator(d_tilde, Para );
0031
0032 r = Channel_Multipath( s, C );
0033 r=Channel_AWGN( r, Para );
0034
0035
0036 z = Demodulator( r, Para );
0037
0038 ParaEqualizer.criterion='Specific';
0039 ParaEqualizer.B=B;
0040 [ d_hat, B ] = Equalizer( z, C, Para, 'SingleTap', ParaEqualizer );
0041 MSE = MSEComputes( d, d_hat, Para );
0042 MSE_theo = MSESingleTapTheo( B, C, Para, A );
0043
0044
0045 figure
0046 plot(Para.ActiveSubcarriers, 10*log10(MSE),'xb','markersize',8,'linewidth',1.5)
0047 hold on
0048 plot(Para.ActiveSubcarriers, 10*log10(MSE_theo(Para.ActiveSubcarriers)),'-b','markersize',8,'linewidth',1.5)
0049 xlabel('Subcarrier index')
0050 ylabel('MSE [dB]')
0051 xlim([min(Para.ActiveSubcarriers) max(Para.ActiveSubcarriers)])
0052