WHAT IS THE USE OF THIS FUNCTION IN THIS OFDMA SIMULATION CODE "ofdma_mapping"
4 views (last 30 days)
Show older comments
PLEASE TELL ME THE USE AND HOW TO BUILd THE FUNCTION, "ofdma_mapping",in this code, THAT CAN DO THE WORK OF "q_out=ofdma_mapping(y,ylen)"
Here is the code. Please help and So many thanks in advance.
% Number of Subcarriers
NS=512;
% Input Generation
x=rand(1,NS)>0.5;
fftlength=512;
nd=6;
BW=5e6;
FS=2*BW;%Sampling Frequency
% Conversion of data from serial to parallel
p=series2parallel(x,NS);
% M-ary Modulaton of PSK & QAM
M=2;
X=0;
for Count1=2:1:7;
if(M==2||M==4||M==16||M==64)
M=M+X
%M-ary modulation for producing y
if(M<=8)
%Modulation for PSK
y=modulate(modem.pskmod(M),p);
else
%Moodulation for QAM
end
ylen=length(y);
%Applying Mapping
q_out=ofdma_mapping(y,ylen);
%Apply IFFT operation
outifft=ifft(q_out);
%Cyclic Prefix Addition
cp(count1,:)=cyclicpad(outifft,64);
%Length of CP
cplength=length(cp);
%Conversion of data from parallel to serial
out=reshape(cp(count1,:),1,cplength);
%Signal transmits through AWGN channel
ynoisy=awgn(out,100,'measured');
%Addition of relay fading
c=rayleighchan(1/1000,100,[0 2e-5],[0 -9]);
rf=filter(c,ynoisy);
%Conversion of data from serial to parallel
p2=series2parallel(rf,cplength);
re_par=real(p2);
%Remove cyclic prefix
rcp(count1,:)=decyclicpad(p2,64);
rcplength=length(rcp);
%FFT
zzfft=fft(rcp(count1,:),fftlength);
%Apply Demapping
qq_out=ofdma_demapping(zzfft,fftlength);
outfft=qq_out;
%%Applung IFFT
%zfft=ifft(qq_out);
if(M<=8)
%Demodulation of PSK at Reciever
z=demodulate(modem.pskdemod(M),outfft);
else
%Demodulation of QAM at reciever
z=demodulate(modem.qamdemod(M),outfft);
end
%conversion of data from parallel to serial
xdash=reshape(z,1,NS)
berr=0;
for a=1:1:NS;
if(xdash(:,a)==x(:,a))
berr=0;
else
berr=berr+1;
end
end
tberr(count1,:)=berr;
Eb_No=0:1:NS-1;
Eb_No=0.4*Eb_No;
if(M<=8)
ber(count1,:)=berawgn(Eb_No,'psk',M,'nondiff');
Pe(count1,:)=erfc(sqrt(0.9*Eb_No)*sin(pi/M));
else
ber1(count1,:)=berawgn(0.9*Eb_No,'qam',M);
Pe(count1,:)=2*((1-(1/sqrt(M)))*erfc(sqrt((1.5*Eb_No)/(M-1))));
end
for init=1:1:32
switch M
end
end
end
M=2^count1;
end
figure()
%Plot SNR and BER
semilogy(Eb_No,ber(2,:),'k',Eb_No,ber(3,:),'g',Eb_No,ber1(5,:),'b',Eb_No,ber1(7,:),'r');
axis([ 25 0.0001 1]);
xlabel('SNR[dB]')
ylabel('BER')
legend('BPSK','QPSK','16-QAM','64-QAM')
figure()
%Plot Error Probability
semilogy(Eb_No,Pe(2,:),'k',Eb_No,Pe(3,:),'r',Eb_No,Pe(5,:),'b',Eb_No,Pe(7,:),'g');
axis([0 50 0.0001 1]);
xlabel('SNR[dB]')
ylabel('Probability of Error')
legend('BPSK','QPSK','16-QAM','64-QAM')
title('OFDMA')
h=spectrum.periodogram;
figure()
HS=psd(h,outifft,'SpectrumType','twosided','NFFT',NS,'FS',FS);
plot(HS)
xlabel('Sampling Frequency (2 * BW)in MHz')
ylabel('Power Spectral Density [dBm/Hz]')
title('OFDMA')
grid off;
0 Comments
Answers (1)
Walter Roberson
on 4 May 2013
6 Comments
Eduardo Chancay
on 9 Dec 2020
The mapping function on pudn has other parameter. How can I use in the code?
See Also
Categories
Find more on Waveform Generation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!