0001
0002
0003
0004
0005
0006
0007
0008
0009 clear all
0010 close all
0011
0012
0013
0014
0015 ParaW_OFDM=InitializeChainParameters( 'W-OFDM' );
0016 ParaW_OFDM.Ns=2000;
0017
0018
0019
0020 ParaFBMC=InitializeChainParameters( 'FBMC-OQAM' );
0021 ParaFBMC.nSubcarriers=ParaW_OFDM.nSubcarriers;
0022 ParaFBMC.ActiveSubcarriers=ParaW_OFDM.ActiveSubcarriers;
0023 ParaFBMC.Ns=ParaW_OFDM.Ns;
0024
0025
0026 ParaOFDM=InitializeChainParameters( 'CP-OFDM' );
0027 ParaOFDM.nSubcarriers=ParaW_OFDM.nSubcarriers;
0028 ParaOFDM.ActiveSubcarriers=ParaW_OFDM.ActiveSubcarriers;
0029 ParaOFDM.Ns=ParaW_OFDM.Ns;
0030
0031
0032 ParaUFMC=InitializeChainParameters( 'UFMC' );
0033 ParaUFMC.nSubcarriers=ParaW_OFDM.nSubcarriers;
0034 ParaUFMC.ActiveSubcarriers=ParaW_OFDM.ActiveSubcarriers;
0035 ParaUFMC.Ns=ParaW_OFDM.Ns;
0036
0037
0038 ParaF_OFDM=InitializeChainParameters( 'F-OFDM' );
0039 ParaF_OFDM.nSubcarriers=ParaW_OFDM.nSubcarriers;
0040 ParaF_OFDM.ActiveSubcarriers=ParaW_OFDM.ActiveSubcarriers;
0041 ParaF_OFDM.Ns=ParaW_OFDM.Ns;
0042
0043
0044
0045 d_FBMC = GenerateData (ParaFBMC);
0046 s_FBMC = Modulator(d_FBMC, ParaFBMC );
0047
0048
0049 d_OFDM = GenerateData (ParaOFDM);
0050 s_OFDM = Modulator(d_OFDM, ParaOFDM );
0051
0052
0053 d_data = GenerateData (ParaW_OFDM);
0054 s_W_OFDM = Modulator(d_data, ParaW_OFDM );
0055
0056
0057 d = GenerateData (ParaUFMC);
0058 s_UFMC = Modulator(d, ParaUFMC );
0059
0060
0061 d_data = GenerateData (ParaF_OFDM);
0062 s_F_OFDM = Modulator(d_data, ParaF_OFDM );
0063
0064
0065
0066 window=3000;
0067 psd_W_OFDM = 10*log10(pwelch(s_W_OFDM,window));
0068 psd_FBMC = 10*log10(pwelch(s_FBMC,window));
0069 psd_OFDM = 10*log10(pwelch(s_OFDM,window));
0070 psd_UFMC = 10*log10(pwelch(s_UFMC,window));
0071 psd_F_OFDM = 10*log10(pwelch(s_F_OFDM,window));
0072 N_fft = length(psd_FBMC);
0073 N_fft_OFDM = length(psd_OFDM);
0074
0075
0076 frequency = ParaFBMC.nSubcarriers/N_fft*(-N_fft/2:1:N_fft/2-1);
0077 figure
0078 plot(ParaFBMC.nSubcarriers/N_fft_OFDM*(-N_fft_OFDM/2:1:N_fft_OFDM/2-1),(psd_OFDM)-max(psd_W_OFDM),'--r','linewidth',1.5)
0079 hold on
0080 plot(frequency,(psd_W_OFDM)-max(psd_W_OFDM),'-g','linewidth',1.5)
0081 plot(frequency,(psd_UFMC)-max(psd_W_OFDM),'-m','linewidth',1.5)
0082 plot(frequency,(psd_F_OFDM)-max(psd_W_OFDM),'-k','linewidth',1.5)
0083 plot(frequency,(psd_FBMC)-max(psd_W_OFDM),'-b','linewidth',1.5)
0084 xlim([frequency(1) frequency(end)])
0085 xlabel('Subcarrier index', 'FontSize', 14)
0086 ylabel('Power [dB]', 'FontSize', 14)
0087 lgd=legend('CP-OFDM','W-OFDM','UFMC','F-OFDM','FBMC-OQAM')
0088 lgd.FontSize = 12;
0089 xlim([ParaFBMC.ActiveSubcarriers(end)-10 ParaFBMC.ActiveSubcarriers(end)+20]-ParaFBMC.nSubcarriers/2)
0090 ylim([-35 0])
0091
0092