Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

help in OFDM code faceing the problem while getting BER curve for OFDM using QPSK

Status
Not open for further replies.

junaidhussain12

Newbie level 4
Joined
Aug 2, 2010
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
Pakistan
Activity points
1,325
i m not completely familiar wid matlab therefore i m faceing the problem while getting BER curve for OFDM using QPSK modulation channel used is AWGN.........
plz plzzz help me out wat i m doing wrong ........... i hv to submitt that assignment .......thx in advance

clc;
clear all
rand('seed',0);
randn('seed',0);

packets =100;
Bps=4;
DecodeDepth=28;
n=4;
k=2;
bits=12;
rate=1/2;
cons= 7;
gen=[171 133];
N_fft=64;

SNR_arry = 0:5:25

for snr_i=1:length(SNR_arry);

snr=SNR_arry(snr_i)

X=n*bits;

%for i=1:packets

msg=randint(1,X);

trel=poly2trellis(cons,gen);

cn = convenc(msg,trel);

rp= reshape(cn,length(cn)/k,k);

dec=bi2de(rp,'left-msb');

X_mod=pskmod(dec,Bps);

ifft_sig =ifft(X_mod,N_fft);

ifft_sig=ifft_sig:))';

%%%%%%%%%%%% GI %%%%%%%%%%%%

cp = ifft_sig(49:64);
cp= [cp ifft_sig];
cp=cp:))';

%%%%%%%%% NOISE %%%%%%%%%%%%%%%%%%%%%%

noise=randn(size(cp))+j*randn(size(cp))*1/sqrt(2);
H= cp+noise;
% power=sum(abs(X_mod).^2)/length(X_mod);
% pwsig=10*log10(power);
% nipower=pwsig-snr;
% H=wgn(1,length(cp),nipower,'complex');

%%%%%%%%%%%%%%% Remove CP %%%%%%%%%%%%%%%%%%%%%%%%%

GR = H(17:end);

%%%%%%%%%%%%% FFT %%%%%%%%%%%%%%%%%%%%%%%%%%%%

ff_sig = fft(GR,N_fft);

%%%%%%%%%%%%%%%%Demodulation%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

dem = pskdemod(ff_sig,Bps);
bi=de2bi(dem,'left-msb');
bi=bi:))';

%%%%%%%%%%%%%%%%%% Decode %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

x_decod=vitdec(bi,trel,DecodeDepth,'trunc', 'hard');
decod=x_decod(1:48);
[row,column]=size(msg);

BER=0;
biterror=0;
for i=1:row
for j=1:X
if decod(i,j)~=msg(i,j)
biterror=biterror+1;
end
end
end
BER(snr_i)=biterror/(row*X)
%[num(snr_i),rat(snr_i)]=biterr(msg,decod);
% err =xor(msg,decod);
%rat=err(snr_i)/length(msg);
yy=semilogy(snr_i,BER,'b-');
grid on
% end
end
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top