clear all
close all;
M = 16;
x = randi([0 M-1],500,1); % Random symbols
plot(x)
legend('random symbols')
% Use 16-QAM modulation.
hMod = modem.qammod(M);
hDemod = modem.qamdemod(hMod);
% Create a scatter plot and show constellation
scatterPlot = commscope.ScatterPlot('SamplesPerSymbol',1,...
'Constellation',hMod.Constellation);
scatterPlot.PlotSettings.Constellation = 'on';
% Modulate
y = modulate(hMod,x);
% Transmit signal through an AWGN channel.
ynoisy = awgn(y,15,'measured');
% Create scatter plot from noisy data.
update(scatterPlot,ynoisy);
% Demodulate ynoisy to recover the message.
z=demodulate(hDemod,ynoisy);
scatterplot(z)
legend('demodulated signal')
Nfft=32; Ng=Nfft/8; Nofdm=Nfft+Ng; Nsym=100;
Nps=4; Np=Nfft/Nps;
pilot_loc = [3];
for k=1:Nfft
if mod(k,Nps)==1
X(k)=x(floor(k/Nps)+1);
pilot_loc=[pilot_loc k]; x = x+1;
% else X(k) = z(k-x);
end
end
H_est = LS_CE(z,x,pilot_loc,Nfft,Nps);