Communication Technology |
|||||
OFDM DeModulator
Creating OFDM DeModulator
hMod = comm.OFDMModulator; hModInfo = info(hMod);
rng(0); dataIn = complex(randn(hModInfo.DataInputSize),randn(hModInfo.DataInputSize)); modData = step(hMod,dataIn);
hDeMod = comm.OFDMDemodulator(hMod); hDeModInfo = info(hDeMod);
FFTLength = NumGuardBandCarriers(1) + DataInputSize + NumGuardBandCarriers(2) = 6 + 53 + 5 = 64 OutputSize = FFTLength - (NumGuardBandCarriers(1)+NumGuardBandCarriers(2)) = 64 - (6+5) = 53 = InputSize - CyclicPrefixLength - (NumGuardBandCarriers(1)+NumGuardBandCarriers(2)) = 80 - 16 - (6 + 5) = 53
Generating Demodulated OFDM Data with Default Setting
hMod = comm.OFDMModulator; hModInfo = info(hMod);
rng(0); dataIn = complex(randn(hModInfo.DataInputSize),randn(hModInfo.DataInputSize)); modData = step(hMod,dataIn);
hDeMod = comm.OFDMDemodulator(hMod); hDeModInfo = info(hDeMod);
deModData = step(hDeMod, modData);
subplot(3,1,1); stem(abs(dataIn));xlim([1 length(dataIn)]);title('Input Data'); subplot(3,1,2); stem(abs(modData));xlim([1 length(modData)]); title('Mod Data'); subplot(3,1,3); stem(abs(deModData));xlim([1 length(deModData)]); title('Demod Data');
Generating Demod OFDM Data with Internal Procedure hMod = comm.OFDMModulator; hModInfo = info(hMod);
rng(0); dataIn = complex(randn(hModInfo.DataInputSize),randn(hModInfo.DataInputSize)); modData = step(hMod,dataIn);
modDataNoCP = modData(length(modData)-hMod.FFTLength+1:length(modData)); modDataNoCPfft = fftshift(fft(modDataNoCP)); modDataNoCPfftNpGB = modDataNoCPfft(hMod.NumGuardBandCarriers(1)+1 : ... length(modDataNoCPfft) - hMod.NumGuardBandCarriers(2));
hDeMod = comm.OFDMDemodulator(hMod); hDeModInfo = info(hDeMod);
deModData = step(hDeMod, modData);
subplot(6,1,1); stem(abs(dataIn));xlim([1 length(dataIn)]); title('Input Data'); set(gca,'xtick',[1 length(dataIn)]); subplot(6,1,2); stem(abs(modData));xlim([1 length(modData)]); title('Mod Data'); set(gca,'xtick',[1 length(modData)]); subplot(6,1,3); stem(abs(modDataNoCP));xlim([1 length(modDataNoCP)]); title('Mod Data - CP Removed'); set(gca,'xtick',[1 length(modDataNoCP)]); subplot(6,1,4); stem(abs(modDataNoCPfft));xlim([1 length(modDataNoCPfft)]); title('ShiftFft(FFT(Mod Data - CP Removed))'); set(gca,'xtick',[1 length(modDataNoCPfft)]); subplot(6,1,5); stem(abs(modDataNoCPfftNpGB));xlim([1 length(modDataNoCPfftNpGB)]); title('ShiftFft(FFT(Mod Data - CP Removed)) - GuardBand Removed'); set(gca,'xtick',[1 length(modDataNoCPfftNpGB)]); subplot(6,1,6); stem(abs(deModData));xlim([1 length(deModData)]); title('Demod Data'); set(gca,'xtick',[1 length(deModData)]);
|
|||||