I'm trying to suppress the sidelobe of OFDM but having troubles showing its spectrum in Matlab. After IFFT, I get a time-domain signal, but in which way I can get its spectrum(or PSD)? I want to analyze the out band power emission, with rectangle window in the time domain the out of band power curve decrease slowly, so it may interference the adjacent channel user, to avoid that situation we have to apply some algorithms to suppress the out of band power emission caused by the sidelobe of OFDM signal. After apply the algorithm I have to plot some figures to demo the effect of my algorithm, so I need the whole PSD of OFDM signal and I also want the out of band part become more steep. I tried to use FFT and pwelch function of Matlab, but never get what I want. I doubt if I use them in right way. So I'm hoping someone here can help me. I know it's basic, but it really obsess for a long time. I analyze the baseband signal, so it should be after the IFFT operation.The figure that I want is below.
My matlab code:
N = 64; over_sample_factor = 2; M = N*over_sample_factor; Mod = 16; symbol = 1; bitlength = N*log2(Mod)*symbol; itr_num = 1000; fft_len = 2*M; signal_freq = zeros(itr_num,fft_len); for itr = 1:itr_num bit_data = randi([0,1],bitlength,1); h = modem.qammod('M', Mod, 'SymbolOrder', 'Binary', 'InputType', 'Bit'); zp_before = modulate(h,bit_data); after_zp = zeros(1,M); after_zp(1:N/2) = zp_before(N/2+1:N); after_zp(M-N/2+1:M) = zp_before(1:N/2); ofdm_symbol = ifft(after_zp); signal_freq(itr,:) = abs(fft(ofdm_symbol,fft_len)).^2; end PSD_mean = mean(signal_freq,1); plot(fftshift(10*log10(PSD_mean)));
The figure is like this