Modulates data symbols (possibly pre-equalized). function [ s ] = Modulator( d, Para, modulation ) The function works for SISO and MIMO systems. Input arguments: d: data symbols (possibly pre-equalized). Size: matrix [2*Para.M, ~] if Para.N_T == 1, multidimensional array [para.N_T, 2*Para.M, ~] if Para.N_T > 1. Para: structure containing the modulation parameters. Outputs arguments: s: transmitted signal. Size: matrix [Para.N_T, ~]
0001 function [ s ] = Modulator( d, Para ) 0002 % Modulates data symbols (possibly pre-equalized). 0003 % 0004 % function [ s ] = Modulator( d, Para, modulation ) 0005 % 0006 % The function works for SISO and MIMO systems. 0007 % 0008 % Input arguments: 0009 % 0010 % d: data symbols (possibly pre-equalized). Size: matrix [2*Para.M, ~] if Para.N_T == 1, 0011 % multidimensional array [para.N_T, 2*Para.M, ~] if Para.N_T > 1. 0012 % 0013 % Para: structure containing the modulation parameters. 0014 % 0015 % Outputs arguments: 0016 % 0017 % s: transmitted signal. Size: matrix [Para.N_T, ~] 0018 0019 0020 % This file is part of WaveComBox: www.wavecombox.com and is distributed under 0021 % the terms of the MIT license. See accompanying LICENSE file. 0022 % Original author: François Rottenberg, May 7, 2018. 0023 % Contributors: 0024 % Change log: 0025 0026 switch Para.Modulation 0027 case 'CP-OFDM' 0028 s=OFDM_Modulator(d,Para); % CP-OFDM modulation 0029 case 'FBMC-OQAM' 0030 s=FBMC_OQAM_Modulator(d,Para); % FBMC-OQAM modulation 0031 case 'UFMC' %UFMC modulation 0032 switch Para.ModType 0033 case 'TD' 0034 s=UFMC_Modulator_TD(d,Para); 0035 case 'FD' 0036 s=UFMC_Modulator_FD(d,Para); 0037 otherwise 0038 error('This type of UFMC modulator is not implemented') 0039 end 0040 case 'F-OFDM' 0041 s=F_OFDM_Modulator(d,Para); % F-OFDM modulation 0042 case 'W-OFDM' 0043 s=W_OFDM_Modulator(d,Para); % W-OFDM modulation 0044 otherwise 0045 error('Modulation not implemented') 0046 end 0047 0048 end 0049