You are on page 1of 1

pure_OFDM.

m clear all;close all;clc; N=256; data=randi([0 1],1,2e4); % Data Generation [n zsym s]=v2syms(data,N-N/8); % Generate messages of length N-N/8 each %Modems Creation ht=modem.qammod('M',16,'SymbolOrder','gray'); % Tx - Modem hr=modem.qamdemod('M',16,'SymbolOrder','gray'); % Rx - Modem % Binary to Decimal conversions [r c]=size(s); for symb=1:r sd(symb,:)=b2d(s(symb,:),4); end % Mapping using 16-QAM sM=modulate(ht,sd); % IFFT modulation sifft=ifft(sM); for a=1:size(sifft,1) par1(a)=papr(sifft(a,:)); end % Noise co=0; st=1; mx=30; for snr=0:st:mx co=co+1; noisy=awgn(sifft,snr,'measured'); %% FFT Demodulation rfft=fft(noisy); % De - Mapping using 16-QAM r_dem=demodulate(hr,rfft); % Decimal to Binary Conversion [rb cb]=size(r_dem); for symb=1:rb sb(symb,:)=d2b(r_dem(symb,:),4); end re=syms2v(sb,zsym); [no(co) ratio(co)]=biterr(re,data); end snr=0:st:mx; semilogy(snr,ratio,'-o'),grid;

You might also like