基于ML算法、Schmidl & Cox算法、Minn算法、Park 算法实现OFDM系统的时间同步附matlab代码 |
您所在的位置:网站首页 › ofdm实现方法 › 基于ML算法、Schmidl & Cox算法、Minn算法、Park 算法实现OFDM系统的时间同步附matlab代码 |
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 神经网络预测 雷达通信 无线传感器 电力系统 信号处理 图像处理 路径规划 元胞自动机 无人机 ⛄ 内容介绍1.1 ML算法原理:利用CP前后数据相同,则相关后保留有效值,噪声不相关,会去除,根据噪声的概率公式,求得ML下的估计值。 ML算法是不考虑多径情况的,即多径下,同一个符号接收上的错开问题。盲检测算法把这个考虑了进来。多径的简单示意图如下,在偏移位置到Ncp+L-1这个位置之内,跟后面的部分的相关值是分段的。 从上面基于CP的方法其实可以看出来,时域同步的主要方式就是相关。两段数据相同,则起始点位置一致时,相关值最大。数据没联系,则相关值小。不知道你有没有学习过相关的概念。 前面的CP是OFDM系统本身就有的,但是受到CP长度(实际就是统计相关的数据量,越大肯定统计效果越好)、CP数据和其他OFDM符号里面数据相关性(理想状态是完全不相关,这个当然很难实现)影响,导致效果不稳定。所以一般实用系统里面都是使用训练序列,这样的话就有训练序列本身和放置两个方面的问题。 明显地,良好训练序列具有的基本特点应该是自相关很大,互相关为0,受到信道、频移、噪声的影响后,这个特点依然存在(很多系统里面采用的ZC序列,具有这个特点,可以自己查查。) 下面的几种算法都是采用的普通伪随机序列,然后在放置上考虑的。 %----Blind 方法是考虑了多径的ML算法,需要多符号进行平均,否则算法效果还比不上ML %----衰落信道下Blind算法,函数图 clc clear all close all N = 256; %FFT长度 CP_len = 256/4; %CP长度 SNR = 20; %SNR symbolNum = 20; TxsymbolCP = []; %产生OFDM时域符号 for i1 =1:symbolNum Tx = randsrc(1,2*N); TxSymbolFreq = (Tx(1:2:end)+1i*Tx(2:2:end))/sqrt(2); %QPSK符号 TxSymbolTime = ifft(TxSymbolFreq,N)*sqrt(N); %IFFT,并且功率归一化 TxSymbolTimeCP = [TxSymbolTime(end-CP_len+1:end) TxSymbolTime]; TxsymbolCP = [TxsymbolCP TxSymbolTimeCP]; end thelta = 8; %定时偏移 k = 0:symbolNum*(N+CP_len)-1; e = 0.23; L = 30; r1 = [zeros(1,thelta) TxsymbolCP(1:end - thelta)]; l1 = 2*(CP_len+N); %检测长度,要将图片的坐标变长,修改该值,但是注意不要越界 v = 50; %单位km/h,其他参数固定下,该值越大,则快衰落越厉害,可以单独从singlePath函数的结果看出各因素的影响 h1 = singlePath(10^(-6)*(length(r1)-1),v); r = awgn(h1.*r1,SNR,'measured'); n1 = 10^(SNR/10); %信噪比 rou = n1/(1+n1); %---------加入多OFDM符号的平均,否则结果会不稳定,在m |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |