请教下OFDM系统在matlab上的仿真程序!

请教下OFDM系统在matlab上的仿真程序!,第1张

%实现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

个人认为,竖租功率分配是和AMC联系在一起的,一般的其优化目标是使得系统容量最大。我们知道,根据香农定理,C=BW*log(1+S/I)。因为实际信道是频率选择性信道,那么每个载波上其衰落是不一样的,如果将功率平均分配在所有载波上,不能做到容量最大。根据注水算法,如果在信道条件更好的载波上,加上更多的能量,信道条件差的载波,减少能量,最余丛兆终同样的总功率下,可以达到更大的容量。所以呢,研究功率分配就郑耐是想在同等总功率下,获得更大的系统容量。

xddata=reshape(xdbianma,xd,nd*ml)中,你都没有给出xdbianma,xd,nd,ml等变量的初值,执行xddata=reshape(xdbianma,xd,nd*ml)语枣仔句肯定出错啊,上面只是定义qpskmod这个函数,函数里面的变量要赋顷孝初值才能运行啊凳乎汪


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12375010.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存