首页 > 其他分享 >用MATLAB实现OFDM仿真分析

用MATLAB实现OFDM仿真分析

时间:2022-11-02 16:13:14浏览次数:75  
标签:仿真 para OFDM nod ml nd eop MATLAB noe

 

 


 

 


 

para=128;

fftlen=128;

noc=128;

nd=6;

ml=2;

sr=2500;

br=sr.*ml;

gilen=18;

ebn0=3;

%************************** 主循环部分 **************************

nloop=100;

noe = 0;

nod = 0;

eop=0;

nop=0;

for iii=1:nloop

%****************** 发射部分 ******************************************************

%****************** 产生数据 **********************

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

%****************** 串并转换 ***********************

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

%****************** QPSK调制 ***********************

[ich,qch]=qpskmod(paradata,para,nd,ml);

kmod=1/sqrt(2);

ich1=ich.*kmod;

qch1=qch.*kmod;

%****************** IFFT(离散傅里叶反变换) *********

x=ich1+qch1.*i;

y=ifft(x);

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

%****************** 高斯白信道 *****************************************************

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

%****************** 接收部分 ******************************************************

%****************** 去除保护间隔 ********************

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

%****************** FFT(离散傅里叶变换) ************

rx=ich5+qch5.*i;

ry=fft(rx);

ich6=real(ry);

qch6=imag(ry);

%***************** QPSK解调 **************************

ich7=ich6./kmod;

qch7=qch6./kmod;

[demodata]=qpskdemod(ich7,qch7,para,nd,ml);

%************** 并串变换 ***************************

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

%*************** 比特误码率 (BER) *********************

% instantaneous number of error and data

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

nod2=length(seldata);

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

end

%****************** 结果输出 ***************************

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

fclose(fid);

%****************** end of file ******************************************************
9


 

标签:仿真,para,OFDM,nod,ml,nd,eop,MATLAB,noe
From: https://www.cnblogs.com/matlabfpga/p/16851349.html

相关文章

  • 基于RBF网络的信任值预测算法matlab仿真实现
    目录一、理论基础二、核心程序三、测试结果一、理论基础测试的数据集有三种趋势型(trend),周期型(seasonal)还有混乱型的(noisydata)。三种类型要做训练集增加的测试(increas......
  • Matlab中plot函数参数解析
    功能二维曲线绘图 语法1234567plot(Y)plot(X1,Y1,...)plot(X1,Y1,LineSpec,...)plot(...,'PropertyName',PropertyValue,...)plot(axes_hand......
  • Matlab Simulink仿真工具的应用
     招募大量matlab技术人员,有大量matlab需求订单,均为个人短期可以完成,有时间的朋友可以加我微信:nn505203,有需求也可以联系此微信。加好友备注博客园matlab技术即可。S......
  • 基于单片机的水质监测(串口)仿真设计(#0007)
    水资源是人类宝贵的财富,水是生命之源,随着经济的飞速发展,环境问题逐渐出现,水资源受到污染和过度的开发,水的需求量更是大大的增加,为了保护珍贵水源,有必要对水质进行监测。功能......
  • 基于单片机的热电偶测温仿真设计(#0003)
    温度是我们日常生产和生活中实时在接触到的物理量,但是它是看不到的,仅凭感觉只能感觉到大概的温度值,传统的指针式的温度计虽然能指示温度,但是精度低,显示不够直观,数字温度计的......
  • 基于单片机的温度气压仿真设计(#0006)
    在工农业生产中,温度检测及其控制占有举足轻重的地位,随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统已经应用于诸多领域。功......
  • 基于单片机的温湿度检测热电偶仿真设计(#0001)
    功能描述采用51/52单片机(通用)作为主控芯片;采用DHT11传感器检测温度/湿度;采用PT100传感器检测温度;采用PCF8591芯片对PT100信号进行AD模数转换处理;采用LCD12864作为显示器件......
  • 基于单片机的PT100热电偶测温仿真设计(#0002)
    功能描述采用51单片机作为主控单元芯片;采用PT100热电偶检测温度,测量范围:-50℃~200℃;采用LM324作为信号放大电路;采用ADC0804芯片对温度信号进行AD模数转换处理;采用4位数码管......
  • LMS算法MatLab实现
      LMS自适应滤波器是使滤波器的输出信号与期望响应之间的误差的均方值为最小,因此称为最小均方(LMS)自适应滤波器。其原理及推导见http://download.csdn.net/source/432206......
  • Matlab神经网络函数newff()新旧用法差异
    在MatlabR2010a版中,如果要创建一个具有两个隐含层、且神经元数分别为5、3的前向BP网络,使用旧的语法可以这样写:        net1=newff(minmax(P),[53 1]);注意......