nchannel1=128; %Total number of carriers
nchannel =76; %Occupied carriers with OFDM symbols
padding=nchannel1-nchannel; %zero padding
nsym =4; % number of symbols
pilotsym =2; %pilot symbols
t_data=randint(nchannel*nsym*m,1,2); %raw bits
res=reshape(t_data,m,nchannel*nsym); %reshape into
equivalent
subcarries
qamdata=bi2de(res.','left-msb'); %symbol levels
maping = bin2gray(qamdata,'qam',m^2); %Gray coding
mod_data =modulate(M,maping); %mapping
par_data = reshape(mod_data,nchannel,nsym).'; %S/P
zero_pad=[zeros(nsym,(padding-2)/2) par_data(:,[1:nchannel/2]) zeros(nsym,2) par_data(:,[nchannel/2+1:nchannel]) zeros(nsym,(padding-2)/2)]; %zero padding, making it 128 subcarriers
pilot_ins_trial=[pilot zero_pad pilot]; %inserting pilot
IFFT_data =ifft(fftshift( pilot_ins_trial.')).'; performing IFFT
cylic_add_data = [IFFT_data(:,[nchannel1-gilen+1:nchannel1]) IFFT_data]; %adding CP
y_samp=[];
t=1/Ufs:1/Ufs:Tc; %Ufs=samping frequency
%Tc=1/fc=20 MHz
nsamp=length(t);
for iii=1:length(cyclic_add_data1)
y_samp=[y_samp cyclic_add_data1(iii).*square(2*pi*fc*t)]; %upsampling with
%rectagular shape
%filter
end