%实现OFDM传输的仿真程序
para=128; %并行子信道的个数
fftlen:128; %FFT的长度
paradata=reshape(seldata,para,nd
*m1);
%QPSK调制
[ich,qch]=qpskmod(paradata,para,nd,m1);
kmod=1/sqrt(2);
ichl=ich.*kmod;
qchl=qch.*kmod;
%In叩(离散傅里叶反变换)
X=ichl+qchl.*i:
y=ifft(x);
ich2=real(y);
qch2=imag(y);
%插入保护间隔
[ich3,qch3]=giins(ich2,qch2,fftlen,gilen,nd);
fftlen2=fftlen+gilen;
%衰减计算
spow=suln(ich3.2+qch3.“2)/nd./para;
attn=0.郑敬5*spow*sr/br*10.“(.ebn0/10);扒档
attn=sqrt(attn);
%高斯自信道
[ich4,qeh4]=eomb(ich3,qch3,attn);
%接收部分
%去除保护间隔
[ieh5,,qeh5]=girem(ich4,qch4,fftlen2,gilen,
nd);
%FFr(离散傅里叶变换)
IX=ich5+qch5.*i:
ry=fit(Ⅸ);
ich6=real(ry);
qch6=imag(ry);
%春丛乱QPSK解调
ieh7=ich6./kmod;
qch7=qch6./kmod;
[derrtxtata]=qpskdemod(ich7,qch7,para,nd,m1);
%并串变换
demodatal=reshape(demodata,I,para*nd*rnl);
%比特误码率(BER)
bit—errors=find(seldata~=demodatal);
bit—error—count 2 size(bit—e/TOES,2);
total—bits=size(demodatal,2);
bit—error—rate=bit—error—count/total—bits;
fprintf(7%f\n’,bit—eITor—rate)
%end offile
程序运行结果,输出误码率为:
>>0.037109
xddata=reshape(xdbianma,xd,nd*ml)中,你都没有给出xdbianma,xd,nd,ml等变量的初值,执行xddata=reshape(xdbianma,xd,nd*ml)语枣仔句肯定出错啊,上面只是定义qpskmod这个函数,函数里面的变量要赋顷孝初值才能运行啊凳乎汪欢迎分享,转载请注明来源:内存溢出
评论列表(0条)