⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ofdm_fading.asv

📁 OFDM仿真代码
💻 ASV
字号:
para=128;
fftlen=128;
noc=128;
nd=6;
ml=1;
sr=250000;
br=sr.*ml;
gilen=32;


tstp=1/sr/(fftlen+gilen); 
itau = [0];
dlvl = [0];
n0=[6];
th1=[0.0];
itnd0=nd*(fftlen+gilen)*10;
itnd1=[1000];
now1=1;        
fd=320;       
flat =1;

for ebn0=1:14

nloop=1000;  

noe = 0;   
gnoe = 0;

nod = 0;   
eop=0;     
geop=0;

nop=0; 

for iii=1:nloop

seldata=rand(1,para*nd*ml)>0.5;


paradata=reshape(seldata,para,nd*ml);

data1=paradata.*2-1;
kmod=1/sqrt(2);
ch1=data1.*kmod;
gdata=seldata.*2-1;
gdata2=gdata.*kmod;

y=ifft(ch1);   
ich2=real(y);
qch2=imag(y);

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


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

itnd1 = itnd1+ itnd0;

[ich4,qch4]=comb(ich3,qch3,attn);
%ich4=awgn(ich3,ebn0,'measured','db');
%qch4=awgn(qch3,ebn0,'measured','db');

gout = randn(1,length(gdata2)).*attn;
gout = gout+gdata2(1:length(gdata2));


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


rx=ich5+qch5.*i;
ry=fft(rx);
ich6=real(ry);
qch6=imag(ry);


ich7=ich6./kmod;
demodata=ich7>0;  
gdata3=gout./kmod;
gdata4=gdata3>0;


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

noe2=sum(abs(demodata1-seldata));
nod2=length(seldata);

gnoe2=sum(abs(gdata4-seldata));


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

gnoe=gnoe+gnoe2;


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);

if gnoe2~=0
    geop=geop+1;
else
    geop=geop;
end
    

end
ber(1,ebn0)= noe/nod;
febn0(1,ebn0)=ebn0;
gber(1,ebn0)=gnoe/nod;

end
semilogy(febn0,gber,'r');
hold on;
semilogy(febn0,ber,'b.');
xlabel('Eb/No');
ylabel('BER');
title('Performance of OFDM under the channel of Rayleigh plus AWGN')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -