目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

在单载波系统中,载波频率的偏移只会对接收信号造成一定的幅度衰减和相位旋转,这可以通过均衡等方法来加以克服。而对于多载波系统来说,载波频率的偏移会导致子信道之间产生干扰。OFDM系统内存在多个正交子载波,其输出信号是多个了信道信号的叠加,由于子信道相互覆盖,这就对它们之间的正交性提出了严格的要求。无线信道时变性的一一种具体体现就是多普勒频移,多普勒频移与载波频率以及移动台的移动速度都成正比。信道带宽小于多普勒展宽的移动信道称作快衰落信道,信道冲激响应在符号周期内变化很快,即信道的相干时间比发送信道的符号周期要短。多普勒展宽会导敛频率发生弥散(时间性衰落),引发信产生畸变。从频域上看,信号失真随发送信道带宽的多普勒扩展的增加而加剧。因此,对于要求子载波保持严格同步的正父频分复用系统来说,载波的频率偏移所来的影响会更加严重,而且如果不采取措施对这种ICI加以克服,会对系统性能带来非常严重的地板效应,无论怎样增加信号的发射功率也不能显著的增加系统性能。

对于移动无线通信系统来说,无线信道存在时变性,在传输过程中会出现无线信号的频率偏移,例如多普勒频移,或者由于发射机与j接收机载波频率之间存在的频率偏差,都会使得OFDM系统子载波之间的正交性遭到破坏,从而导致ICI。因此如何减少ICl对系统性能的影响,是OFDM系统性能得到广泛应用的前提条件之一。频率偏差对OFDM系统非常个利,在系统设计中起着很重要的作用。另外,消除相位噪声在无线OFDM系统中也是一个很难解决的问题。
        由于OFDM系统要利用导频符号来进行信道估计,所以同时利用导频符号和循环前缀进行定时估计。

OFDM是一种子载波相互混叠的多载波调制,因此它除了具有上述多载波调制的优势外,还具有更高的频谱利用率。OFDM选择时域相互正交的子载波,它们虽然在频域互相混叠,却仍能在接收端被分离出来。

OFDM 收发系统的整个具体工作流程是基带信号(二进制码元)经过信道编码,交织后映射到QPSK 星座,这时变成了复数序列,再经过串并变换变成并行数据流,经过IFFT调制后把数据调制到正交子载波上,完成频谱的正交叠加,再通过并串变换,在符号间插入循环前缀CP,最后数模转换后把信号搬至工作频率,完成射频载波调制后对其发送。接收端做降频处理之后把收到的信号数字化,同步到符号定时点和频率偏差位置,去除CP,再经FFT 解调出复数序列,再经并串变换、信号逆映射、解交织、信道解码一系列变换恢复出原始数据。

OFDM 整个系统流程中存在符号同步,载波同步,采样同步这三种形式同步。

与单载波系统相比,OFDM系统对同步精度的要求更高,同步偏差会在OFDM系统中引起ISI及ICI。下图显示了OFDM系统中的同步要求,并且大概给出各种同步在系统中所处的位置。

发射机与接收机之间的频率偏差导致接收信号在频域内发生偏移。如果频率偏差是子载波间隔的n(n为整数)倍,虽然子载波之间仍然能够保持正交,但是频率采用值已经偏移了n个子载波的位置,造成映射在OFDM频谱内的数据符号的误码率高达0.5。

同步是OFDM系统中非常关键的问题,同步性能的优劣直接影响到OFDM技术能否真正被用于无线通信领域。在OFDM系统中,存在多种级别的同步:载波同步、符号定时同以及样值同步,其中每一级别的同步都会对OFDM系统性能造成影响。这里我们首先分析了OFDM系统内不同级别的同步问题,然后在此基础上介绍了几种分别用于载波同步和符号定时同步的方法。通过分析可以看到,只要合理地选择适当的同步方法,就可以在OFDM系统内实现同步,从而为其在无线通信系统中的应用打下坚实的基础。

2.仿真效果预览

matlab2022a仿真结果如下:

3.MATLAB核心程序

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。%----------------------------------------------------------------EbNo=20;ofdm_Freq_I=zeros(1,length(ofdm_receive1));ofdm_Freq_Q=zeros(1,length(ofdm_receive1));ofdm_noise_I=zeros(1,length(ofdm_receive1));ofdm_noise_Q=zeros(1,length(ofdm_receive1));Noise_I=zeros(1,length(ofdm_receive1));Noise_Q=zeros(1,length(ofdm_receive1));ofdm_noise=zeros(1,length(ofdm_receive1));%------------------------------------------------------------------randn('state',seed_num+2);Noise_I=sqrt(var(real(ofdm_receive1))*10^(-EbNo/10))*randn(1,length(ofdm_receive1));randn('state',seed_num+4);Noise_Q=sqrt(var(real(ofdm_receive1))*10^(-EbNo/10))*randn(1,length(ofdm_receive1));ofdm_noise2_I=real(ofdm_receive1)+Noise_I;ofdm_noise2_Q=imag(ofdm_receive1)+Noise_Q;ofdm_noise2=(ofdm_noise2_I+1i*ofdm_noise2_Q);%%--------------------假设没有高斯白噪声------------------------------% ofdm_noise2=ofdm_receive1;%----------------根据第一条路径细同步---------------------------------ofdm_noise3((jk-2)*N_sym_fram+1:(jk-1)*N_sym_fram)=ofdm_noise2;%取细同步后的点作为帧头%+------------------------------------------------------------------%|                     频偏补偿%+------------------------------------------------------------------fd_est(jk)=fd_residue(jk-1);fs_est(jk)=fs_residue(jk-1);%fd_est(jk)=fd;%fs_est(jk)=-delta_samp;%--------------去除残余频偏------------------------------------------ofdm_noise4=ofdm_noise3((jk-2)*N_sym_fram+1:(jk-1)*N_sym_fram);%每一帧符号*帧数kkj=1:1:N_sym_fram;fd_offset=exp(-1i*2*pi*fd_est(jk).*(kkj-1)/FFTLen);ofdm_offset_fd=ofdm_noise4.*fd_offset;%ofdm_offset_fd=ofdm_noise4;%----------------串并转换--------------------------------------------ofdm_rank=reshape(ofdm_offset_fd,FFTLen+CPLen,sym_num+1);%----------------去CP------------------------------------------------ofdm_rank_noCP=ofdm_rank((CPLen+1:FFTLen+CPLen),(1:sym_num+1));%---------------  FFT-------------------------------------------------ofdm_noCP_FFT=sqrt(8)/sqrt(FFTLen)*fft(ofdm_rank_noCP);%----------------去除采样时钟----------------------------------------for nn=1:sym_num+1for kk=1:FFTLenif kk<=FFTLen/2fs_est_m(kk,nn)=exp(-1i*2*pi*(kk-1)/FFTLen*fs_est(jk)*(FFTLen+CPLen)*(nn-1))*exp(-1i*pi*(kk-1)*fs_est(jk)*(FFTLen-1)/FFTLen);else kk > FFTLen/2;fs_est_m(kk,nn)=exp(1i*2*pi*(FFTLen-kk+1)/FFTLen*fs_est(jk)*(FFTLen+CPLen)*(nn-1))*exp(1i*pi*(FFTLen-kk+1)*fs_est(jk)*(FFTLen-1)/FFTLen);endendendkkl=(jk-2)*(sym_num+1)+1:1:(jk-1)*(sym_num+1);ofdm_rec_FFT(1:FFTLen,kkl)=ofdm_noCP_FFT.*fs_est_m;%+------------------------------------------------------------------%|                     残余频偏跟踪%+------------------------------------------------------------------ofdm_rec_FFT2(1:FFTLen,1:sym_num+1)=ofdm_rec_FFT(1:FFTLen,kkl);cpilot_slot=[10,43,75,105,151,181,213,246];%---------------------导频抽取-----------------------------------for i=1:1:length(cpilot_slot)ofdm_sfo_pilot((1:sym_num),i)=conj(ofdm_rec_FFT2(cpilot_slot(i),1:sym_num))';end%---------------------符号间对应差分---------------------------------ofdm_sfo_pilot_diff=zeros(sym_num-2,length(cpilot_slot));P_num=floor(length(cpilot_slot)/2);for l=1:1:sym_num-2for k=1:1:length(cpilot_slot)ofdm_sfo_pilot_diff(l,k)=ofdm_sfo_pilot(l+2,k)*conj(ofdm_sfo_pilot(l+1,k)); %去除第一个符号训练序列endofdm_sfo_pilot_C1(l)=sum(ofdm_sfo_pilot_diff(l,(1:P_num)));ofdm_sfo_pilot_C2(l)=sum(ofdm_sfo_pilot_diff(l,(P_num+1:end)));end%---------------------求残余频偏-------------------------------------ofdm_sfo_sum_C1(jk)=sum(ofdm_sfo_pilot_C1);ofdm_sfo_sum_C2(jk)=sum(ofdm_sfo_pilot_C2);。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。A130

4.完整MATLAB

V

OFDM系统同步技术的matlab仿真,包括符号定时同步,采样钟同步,频偏估计相关推荐

  1. OFDM同步技术基于MATLAB仿真,基于Matlab的OFDM系统仿真

    中文摘要 交频分复用(OFDM, Orthogonal Frequency Division Multiplexing) 是一种特殊的多载波方案,它可以被看作一种调制技术,也可以被当作是一种复用技术。 ...

  2. saber仿真软件_电力电子应用技术的MATLAB仿真

    欢迎加入技术交流QQ群(2000人):电力电子技术与新能源 905723370 高可靠新能源行业顶尖自媒体 在这里有电力电子.新能源干货.行业发展趋势分析.最新产品介绍.众多技术达人与您分享经验,欢迎 ...

  3. lms算法的verilog实现_数字通信同步技术的MATLAB与FPGA实现

    <数字通信同步技术的MATLAB与FPGA实现>包含2个版本:Xilinx/VHDL版的设计平台为ISE14.7/VHDL,配套开发板为CXD301:Altera/Verilog版(第2版 ...

  4. matlab帽檐图像,图像分割技术与MATLAB仿真

    中南民族大学 毕业论文(设计) 学院: 计算机科学学院 专业: 自动化 年级:2012 题目: 图像分割技术与MATLAB仿真 学生姓名: 高宇成 学号:2012213353 指导教师姓名: 王黎 职 ...

  5. matlab交流调压调速课本,双闭环交流调速系统的设计及MATLAB仿真

    内容简介: 毕业设计 双闭环交流调速系统的设计及MATLAB仿真,共44页,17796字. 摘 要 本文首先介绍了交流调速系统的基本概况,并对MATLAB做了简单介绍.同时提出了本文所要研究解决的问题 ...

  6. matlab仿真转速波形为负,转速、电流双闭环直流调速系统的课程设计MATLAB仿真.docx...

    转速.电流双闭环直流调速系统的课程设计MATLAB仿真 PAGE \* MERGEFORMAT25 任务书1.设计题目转速.电流双闭环直流调速系统的设计2.设计任务某晶闸管供电的双闭环直流调速系统,整 ...

  7. 电力电子应用技术的matlab仿真 光盘,《电力电子应用技术的MATLAB仿真》.pdf

    本书概述了MATLAB软件及其图形仿真界面Simulink的基础应用知识,详细介绍了用于电力电子仿真的SimPowerSystems中的各模块库,然后列举了DC-DC变换.DC-AC变换.AC-DC变 ...

  8. matlab henon,Henon系统动力学行为的MATLAB仿真研究

    收稿日期:2010 -11 -11 基金项目: 河南省科技发展计划资助项目( 102102210164) ; 河南科技大学博士科研基金资助项目( 09001376) ; 河南科技大学科研基金资助项目( ...

  9. OFDM通信系统PAPR抑制算法matlab仿真,对比SLM算法和PTS算法

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 OFDM(Orthogonal Frequency Division Multiplexing)正交频分复用技术,OFDM是一 ...

最新文章

  1. 自动驾驶仿真分析,提高研发效率
  2. robotframework接口测试(二)—post request
  3. java类接口的区别_【Java基础】java接口和类的区别-瑶瑶吖的回答
  4. Android画图之Matrix(一)
  5. 分布式系统中的限流与熔断
  6. BZOJ3160:万径人踪灭
  7. 你不知道的Python的输入输出
  8. whois php,用PHP实现标准的IP Whois查询
  9. 2.6 子窗口赋值给父窗口并关闭子窗口 我的程序猿之路:第十六章
  10. [SDN] mininet walkthrough
  11. Python学习笔记——元组
  12. 智慧发电厂+智能发电厂web端平台管理系统+Axure高保真智慧电厂系统+能耗管理+告警管理+生产监控+安防设备管理+运维设备管理+监控面板+系统管理+智慧电厂+电厂系统+axure源文件+rp原型
  13. C++网络编程学习指南
  14. rf接口自动化之结果校验
  15. Nature综述|整合组学分析护航健康,推动精准医学时代的到来!
  16. ORA-29339: tablespace block size 32768 does not match configured block sizes
  17. 速学TypeScript-精简划重点手册-上册
  18. 数据构造---家族树
  19. 【我的渲染技术进阶之旅】Google开源的基于物理的实时渲染引擎Filament源码分析:Android版本的Filament第一个示例:sample-hello-triangle
  20. 微信Hook最佳实践-WechatHook

热门文章

  1. 自制OculusVR控制(一)——利用Unity的自带方法实现VR的控制输入
  2. RMXP脚本解析(二十二):Game_Enemy
  3. restart和reload的区别
  4. java硬币翻转问题_java – 硬币翻转程序
  5. mysql idb,frm文件复制恢复
  6. 微软关停wp服务器,官方实锤!微软正式抛弃WP系统,今年12月停止支持
  7. 微信小程序开发:一个音乐播放器
  8. linux 实时备份文件内容,实现实时同步备份总结
  9. Laravel学生信息查询界面
  10. 创文html5作品欣赏,我市举办创文作品展暨陆丰记忆20年图片展