为了账号安全,请及时绑定邮箱和手机立即绑定

真的是要疯了 到底哪里错了呀?

真的是要疯了 到底哪里错了呀?

HUWWW 2023-02-17 21:17:28
clear;clc;SNR=10; %信噪比fl=128; %设置FFT长度Ns=6; %设置一个祯结构中OFDM信号的个数para=128; %设置并行传输的子载波个数sr=250000; %符号速率br=sr.*2; %每个子载波的比特率gl=32; %保护时隙的长度nloop=1; %仿真循环次数noe=0; %误码数nod=0; %传输的数据数量eop=0; %误组数nop=0; %传输的分组数for iii=1:nloop  end%-------------产生数据------------Signal=round(rand(1,para*Ns*2))>0.5; %产生0,1随即序列,符号数为para*Ns*2,Signal实际得到的%是右边逻辑表达式的结果,rand产生的值如果大于0.5,则Signal为1,如果小于0.5,则Signal为0%------------串并转换---------for i=1:flfor j=1:Ns*2ParaBitSig(i,j)=Signal(i*j);end%------------QPSK调制--------for j=1:Nsich(:,j)=ParaBitSig(:,2*j-1);qch(:,j)=ParaBitSig(:,2*j);endkmod=1./sqrt(2);ich0=ich.*2-1;qch0=qch.*2-1;ich1=ich0.*kmod;qch1=qch0.*kmod;qpsk_x=ich1+qch1.*sqrt(-1); %频域数据变时域%---------------IFFT------------fy=ifft(qpsk_x);ich2=real(fy);qch2=imag(fy);%--------------插入保护间隔------------ich3=[ich2(para-gl+1:para,:);ich2];qch3=[qch2(para-gl +1:para,:);qch2];%--------------计算衰减--------------spow=sum(ich3.^2+qch3.^2)/Ns./para;attn=0.5*spow*sr/br*10.^(-SNR/10);attn=sqrt(attn);%并串变换ich4=reshape(ich3,1,(fl+gl)*Ns);qch4=reshape(qch3,1,(fl+gl)*Ns);%形成复数发射数据TrData=ich4+qch4.*sqrt(-1);%接收机%----------加入高斯白噪声-----------ReData=awgn(TrData,SNR,'measured');idata=real(ReData);qdata=imag(ReData);idata1=reshape(idata,fl+gl,Ns);qdata1=reshape(qdata,fl+gl,Ns);idata2=idata1(gl+1:gl+fl,:);qdata2=qdata1(gl+1:gl+fl,:);Rex=idata2+qdata2.*sqrt(-1);ry=fft(Rex);ReIChan=real(ry);ReQChan=imag(ry);ReIchan1=ReIChan/kmod;ReQchan1=ReQChan/kmod;ReIChan0=(ReIChan1+1)/2;ReQChan0=(ReQchan1+1)/2;for j=1:NsRepara(:,2*j-1)=ReIChan0(:,j);Repara(:,2*j)=ReQChan(:,j);end ReSig=reshape(RePara,1,para*Ns*2);ReSig=ReSig>0.5;------
查看完整描述

1 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

你这里面错误好多,应该根据程序的提示好好检查一下。


clear;clc;SNR=10;           %信噪比fl=128;               %设置FFT长度Ns=6;            %设置一个祯结构中OFDM信号的个数para=128;          %设置并行传输的子载波个数sr=250000;          %符号速率br=sr.*2;          %每个子载波的比特率gl=32;            %保护时隙的长度nloop=1;           %仿真循环次数noe=0;            %误码数nod=0;            %传输的数据数量eop=0;            %误组数nop=0;            %传输的分组数for iii=1:nloop      end %-------------产生数据------------Signal=round(rand(1,para*Ns*2))>0.5;               %产生01随即序列,符号数为para*Ns*2,Signal实际得到的%是右边逻辑表达式的结果,rand产生的值如果大于0.5,则Signal为1,如果小于0.5,则Signal为0 %------------串并转换---------for i=1:fl  for j=1:Ns*2    ParaBitSig(i,j)=Signal(i*j);  endend%------------QPSK调制--------for j=1:Ns  ich(:,j)=ParaBitSig(:,2*j-1);  qch(:,j)=ParaBitSig(:,2*j);endkmod=1./sqrt(2);ich0=ich.*2-1;qch0=qch.*2-1;ich1=ich0.*kmod;qch1=qch0.*kmod;qpsk_x=ich1+qch1.*sqrt(-1);                                               %频域数据变时域%---------------IFFT------------fy=ifft(qpsk_x);ich2=real(fy);qch2=imag(fy);%--------------插入保护间隔------------ich3=[ich2(para-gl+1:para,:);ich2];qch3=[qch2(para-gl +1:para,:);qch2];%--------------计算衰减--------------spow=sum(ich3.^2+qch3.^2)/Ns./para;attn=0.5*spow*sr/br*10.^(-SNR/10);attn=sqrt(attn);%并串变换ich4=reshape(ich3,1,(fl+gl)*Ns);qch4=reshape(qch3,1,(fl+gl)*Ns);%形成复数发射数据TrData=ich4+qch4.*sqrt(-1);%接收机%----------加入高斯白噪声-----------ReData=awgn(TrData,SNR,'measured');idata=real(ReData);qdata=imag(ReData);idata1=reshape(idata,fl+gl,Ns);qdata1=reshape(qdata,fl+gl,Ns);idata2=idata1(gl+1:gl+fl,:);qdata2=qdata1(gl+1:gl+fl,:);Rex=idata2+qdata2.*sqrt(-1);ry=fft(Rex);ReIChan=real(ry);ReQChan=imag(ry);ReIchan1=ReIChan/kmod;ReQchan1=ReQChan/kmod;ReIChan0=(ReIchan1+1)/2;ReQChan0=(ReQchan1+1)/2;for j=1:Ns   Repara(:,2*j-1)=ReIChan0(:,j);   Repara(:,2*j)=ReQChan(:,j);end ReSig=reshape(Repara,1,para*Ns*2);ReSig=ReSig>0.5;

 


查看完整回答
反对 回复 2023-02-20
  • 1 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号