You are on page 1of 1

% Generates PAM real symbols spread in time and frequency.

0003 % 0004 % function [


d ] = Generate_d_PAM( Para ) 0005 % 0006 % The function works for SISO and MIMO
systems. 0007 % 0008 % Input arguments: 0009 % 0010 % Para: structure containing
the modulation parameters. 0011 % 0012 % Outputs arguments: 0013 % 0014 % d:
OQAM/PAM real symbols. Size: matrix [2*para.M, 2*Para.Ns] if Para.S 0015 % == 1 and
multidimensional array [Para.S, 2*para.M, 2*Para.Ns] if Para.S 0016 % > 1 0017 %
0018 0019 % This file is part of WaveComBox: www.wavecombox.com and is distributed
under 0020 % the terms of the MIT license. See accompanying LICENSE file. 0021 %
Original author: François Rottenberg, May 3, 2018. 0022 % Contributors: 0023 %
Change log: 0024 0025 N_active=length(Para.ActiveSubcarriers); 0026
mod_norm=sqrt(Para.Es/2/(1./Para.M_PAM.*sum(abs(pammod([0:Para.M_PAM-
1],Para.M_PAM)).^2)))*1./sqrt(Para.S); 0027 0028 if Para.S==1 0029
d=zeros(Para.nSubcarriers,2*Para.Ns); 0030 for index_sub_act=1:N_active 0031 data
=randi([0 Para.M_PAM-1],1,2*Para.Ns); 0032
d(Para.ActiveSubcarriers(index_sub_act),:) =pammod(data,Para.M_PAM).*mod_norm; 0033
end 0034 else 0035 d=zeros(Para.S,Para.nSubcarriers,2*Para.Ns); 0036 for
index_S=1:Para.S 0037 for index_sub_act=1:N_active 0038 data =randi([0 Para.M_PAM-
1],1,2*Para.Ns); 0039 d(index_S,Para.ActiveSubcarriers(index_sub_act),:)
=pammod(data,Para.M_PAM).*mod_norm; 0040 end 0041 end 0042 end 0043 0044 end

You might also like