0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 close all
0012
0013
0014 Para=InitializeChainParameters( 'FBMC-OQAM' )
0015 Para.ActiveSubcarriers= 5:Para.nSubcarriers;
0016 Para.Ns=1000;
0017 T_s=1/30e9;
0018 Para.T=T_s*Para.nSubcarriers;
0019
0020
0021
0022 d = GenerateData (Para);
0023 s = Modulator(d, Para );
0024
0025
0026
0027 PN_linewidth = 200*1e3;
0028 r = Channel_PhaseNoise(s,PN_linewidth,Para);
0029 r=Channel_AWGN( r, Para );
0030
0031
0032 z = Demodulator( r, Para );
0033
0034 figure
0035 xlabel('Real muticarrier symbol index')
0036 ylabel('Phase noise [rad]')
0037 hold all
0038
0039 [x, phi]=PhaseTracker( z, Para, 'ML' );
0040 d_hat=real(x);
0041 NMSE_dB_ML = 10*log10(mean(2*Para.Es*MSEComputes( d, d_hat, Para )))
0042 plot(phi)
0043
0044 [x, phi]=PhaseTracker( z, Para, 'MBPS' );
0045 d_hat=real(x);
0046
0047 NMSE_dB_MBPS = 10*log10(mean(2*Para.Es*MSEComputes( d, d_hat, Para )))
0048 plot(phi,'r')
0049