MatLab Toolbox - Comm                                      Home : www.sharetechnote.com

 

 

 

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)]);