Communication Technology |
||
OFDM Details
hMod = comm.OFDMModulator; hMod.InsertDCNull = true; hMod.PilotInputPort = true; hMod.PilotCarrierIndices =[14; 24; 42; 52]; hModInfo = info(hMod);
rng(0); dataIn = complex(ones(hModInfo.DataInputSize),ones(hModInfo.DataInputSize)); PilotIn = 1.5 * complex(ones(length(hMod.PilotCarrierIndices),1), ... ones(length(hMod.PilotCarrierIndices),1)); modData = step(hMod,dataIn,PilotIn);
modDataNoCP = modData(length(modData)-hMod.FFTLength+1:length(modData)); modDataNoCPfft = fftshift(fft(modDataNoCP));
indicesOfPilotAndDC = [hMod.PilotCarrierIndices ; length(modDataNoCPfft)/2+1]; indicesWoPilotAndDC = [ ];
for i = 1:length(modDataNoCPfft) if ismember(i, indicesOfPilotAndDC) == 0 indicesWoPilotAndDC = [indicesWoPilotAndDC i]; end; end;
modDataNoCPfftNoPilotDC = modDataNoCPfft(indicesWoPilotAndDC); modDataNoCPfftNoPilotDcNoGB = modDataNoCPfftNoPilotDC(hMod.NumGuardBandCarriers(1)+1 : ... length(modDataNoCPfftNoPilotDC) - hMod.NumGuardBandCarriers(2));
hDeMod = comm.OFDMDemodulator(hMod); hDeModInfo = info(hDeMod);
[deModData,PilotOut] = step(hDeMod, modData);
subplot(7,1,1); stem(abs(dataIn));xlim([1 length(dataIn)]); title('Input Data'); set(gca,'xtick',[1 length(dataIn)]);
subplot(7,1,2); stem(abs(modData));xlim([1 length(modData)]); title('Mod Data'); set(gca,'xtick',[1 length(modData)]);
subplot(7,1,3); stem(abs(modDataNoCP));xlim([1 length(modDataNoCP)]); title('Mod Data - CP Removed'); set(gca,'xtick',[1 length(modDataNoCP)]);
subplot(7,1,4); stem(abs(modDataNoCPfft));xlim([1 length(modDataNoCPfft)]); title('ShiftFft(FFT(Mod Data - CP Removed))'); set(gca,'xtick',[1 length(modDataNoCPfft)]);
subplot(7,1,5); stem(abs(modDataNoCPfftNoPilotDC));xlim([1 length(modDataNoCPfftNoPilotDC)]); title('ShiftFft(FFT(Mod Data - CP Removed)) -Pilot/DC Removed'); set(gca,'xtick',[1 length(modDataNoCPfftNoPilotDC)]);
subplot(7,1,6); stem(abs(modDataNoCPfftNoPilotDcNoGB));xlim([1 length(modDataNoCPfftNoPilotDcNoGB)]); title('ShiftFft(FFT(Mod Data - CP Removed)) - Pilot/DC/GuardBand Removed'); set(gca,'xtick',[1 length(modDataNoCPfftNoPilotDcNoGB)]);
subplot(7,1,7); stem(abs(deModData));xlim([1 length(deModData)]); title('Demod Data'); set(gca,'xtick',[1 length(deModData)]);
|
||