المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : مساعه فى الماتلاب ضرورى اوى



محمد ابراهيم 55
19-05-2011, 20:30
انا مبعرفش اتعامل مع الماتلاب والمفروض انا فى بكالريوس اتصالات السنه دى والمفروض المشروع بتاعى عاوز ما تلاب يعنى انا شغال ع برامج ofdm والدكتور طالب الكرفات بتاعت النتائج وانا مش عارف اعملهم ازاى؟؟؟؟؟؟؟؟؟؟؟؟بالله عليكو اى حد يعرف فى الماتلاب مممكن يرد عليا وانا اقله بالظبط الدكتور عاوز ايه ويقولى انا اعمل ايه ضرورى جزاكم الله كل خير عشان المفرووض الكلام ده يخلص الاسبوع الجاى وشكرا

محمد ابراهيم 55
19-05-2011, 20:31
% Program 4-1
% ofdm.m
%
% Simulation program to realize OFDM transmission system
%
% programmed by T.Yamamura and H.Harada
%

%********************** preparation part ***************************

para=128; % Number of parallel channel to transmit (points)
fftlen=128; % FFT length
noc=128; % Number of carrier
nd=6; % Number of information OFDM symbol for one loop
ml=2; % Modulation level : QPSK
sr=250000; % Symbol rate
br=sr.*ml; % Bit rate per carrier
gilen=32; % Length of guard interval (points)
ebn0=3; % Eb/N0

%************************** main loop part **************************

nloop=100; % Number of simulation loops

noe = 0; % Number of error data
nod = 0; % Number of transmitted data
eop=0; % Number of error packet
nop=0; % Number of transmitted packet

for iii=1:nloop

%************************** transmitter *********************************

%************************** Data generation ****************************

seldata=rand(1,para*nd*ml)>0.5; % rand : built in function

%****************** Serial to parallel conversion ***********************

paradata=reshape(seldata,para,nd*ml); % reshape : built in function

%************************** QPSK modulation *****************************

[ich,qch]=qpskmod(paradata,para,nd,ml);
kmod=1/sqrt(2); % sqrt : built in function
ich1=ich.*kmod;
qch1=qch.*kmod;

%******************* IFFT ************************

x=ich1+qch1.*i;
y=ifft(x); % ifft : built in function
ich2=real(y); % real : built in function
qch2=imag(y); % imag : built in function

%********* Gurad interval insertion **********

[ich3,qch3]= giins(ich2,qch2,fftlen,gilen,nd);
fftlen2=fftlen+gilen;

%********* Attenuation Calculation *********

spow=sum(ich3.^2+qch3.^2)/nd./para; % sum : built in function
attn=0.5*spow*sr/br*10.^(-ebn0/10);
attn=sqrt(attn);

%*************************** Receiver *****************************
%***************** AWGN addition *********

[ich4,qch4]=comb(ich3,qch3,attn);

%****************** Guard interval removal *********

[ich5,qch5]= girem(ich4,qch4,fftlen2,gilen,nd);

%****************** FFT ******************

rx=ich5+qch5.*i;
ry=fft(rx); % fft : built in function
ich6=real(ry); % real : built in function
qch6=imag(ry); % imag : built in function

%***************** demoduration *******************

ich7=ich6./kmod;
qch7=qch6./kmod;
[demodata]=qpskdemod(ich7,qch7,para,nd,ml);

%************** Parallel to serial conversion *****************

demodata1=reshape(demodata,1,para*nd*ml);

%************************** Bit Error Rate (BER) ****************************

% instantaneous number of error and data

noe2=sum(abs(demodata1-seldata)); % sum : built in function
nod2=length(seldata); % length : built in function

% cumulative the number of error and data in noe and nod

noe=noe+noe2;
nod=nod+nod2;

% calculating PER

if noe2~=0
eop=eop+1;
else
eop=eop;
end
eop;
nop=nop+1;


fprintf('%d\t%e\t%d\n',iii,noe2/nod2,eop); % fprintf : built in function

end

%********************** Output result ***************************

per=eop/nop;
ber=noe/nod;

fprintf('%f\t%e\t%e\t%d\t\n',ebn0,ber,per,nloop);
fid = fopen('BERofdm.dat','a');
fprintf(fid,'%f\t%e\t%e\t%d\t\n',ebn0,ber,per,nloo p);
fclose(fid);



%******************** end of file *************************** https://www.arabhardware.net/forum/images/visioncollison/misc/progress.gif https://www.arabhardware.net/forum/images/visioncollison/buttons/edit.gif (https://www.arabhardware.net/forum/editpost.php?do=editpost&p=1874339)