首页 > 编程语言 >基于minn算法的OFDM定时同步matlab仿真

基于minn算法的OFDM定时同步matlab仿真

时间:2024-03-19 10:34:20浏览次数:22  
标签:同步 minn OFDM Minn signal 算法 matlab 定时

目录

1.MMSE定时同步原理

2.minn定时同步原理

3.matlab核心程序

4.仿真结果

正交频分复用(Orthogonal Frequency Division Multiplexing, OFDM)是一种多载波传输技术,通过将高速数据流分解到多个正交子载波上进行传输。在接收端,精确的定时同步对于恢复出高质量的数据至关重要,因为它直接影响到子载波之间的正交性以及符号间干扰(ISI)的消除。

定时同步算法通常分为基于非辅助数据的同步算法和基于辅助数据的同步算法。目前应用最广泛的基于导频的定时和频偏估计算法是由Schmidl提出的。这种算法采用相同的两段训练序列进行定时,该方法采用递推公式进行计算,实现复杂度很低,在OFDM系统中被广泛采用,然而这种方法的定时判决函数存在一个误差平台,会引起很大的定时偏差。为了减小定时判决函数的误差平台造成的影响,Minn对Schmidl的方法做出了一定的改进。Minn的定时判决函数是一个尖峰,在一定程度上消除了误差平台的影响;Park提出了一种定时判决函数更加尖锐的波形。但是由于循环前缀的存在,这种方法的判决函数有很大的旁瓣,在循环前缀较长时,几乎与主瓣的高度相同,在信噪比较低的情况下,很难得到正确的定时结果。采用训练序列与本地PN码互相关有明显的单峰值,但在频偏较大的情况下,定时判决函数会严重变形,引起较大的定时误差。

1.MMSE定时同步原理
在OFDM系统中,通常使用导频信号(如循环前缀或特定位置的已知训练序列)来进行定时同步。假设接收到的OFDM符号为 r[n],其中包含了时延 τ\tauτ 和噪声的影响。理想情况下,我们希望找到使接收到的信号与本地生成的参考信号 s[n]最佳对齐的时延值。

 

4.复杂度考虑 为了降低计算复杂度,可以选择在离散时间点上搜索最优时延,或者采用快速算法如FFT来实现互相关计算。

5.性能分析 MMSE定时同步算法的性能取决于信噪比、信道条件和定时采样点数等因素。通过对上述互相关函数进行优化处理,可以得到一个相对准确的时延估计值,从而有效完成OFDM系统的定时同步任务。

2.minn定时同步原理
Minn算法是一种基于训练序列的OFDM定时同步算法,它利用训练序列的特定结构来估计定时偏移。该算法通过计算接收信号与本地训练序列之间的相关性来实现同步。在OFDM系统中,定时同步对于确保子载波之间的正交性和减少符号间干扰(ISI)至关重要。Minn算法使用一个特定的训练序列,通常是在OFDM符号的开头插入的一段已知数据。这个训练序列在接收端用于同步处理。训练序列的设计应具有良好的自相关性和互相关性,以便在接收端能够准确地检测到定时偏移。

为了消除Schmidl算法出现的平顶影响,minn等人改变了训练队列的结构,并重新设计了一种新的同步度量函数,虽然成功消除了schmidl算法的平顶效应,使得同步自相关峰变得尖锐,提高了定时同步估计的精度和可靠性,但是该向相关峰还不够尖锐,而且在同步度量函数曲线主峰两边出现了多个副峰,在信道环境恶劣的条件下,也即低信噪比条件下,定时同步估计将受到较大的影响。

 

 

所求得的d对应的是训练序列(不包含循环前缀)的开始位置。

3.matlab核心程序

...................................................................
for p=1:length(SNR) % 遍历不同的信噪比
p % 显示当前信噪比的索引(此行代码实际上没有必要,可以删除)
for k=1:sim_times; % 对于每个信噪比,进行多次仿真
% 给信号添加加性高斯白噪声,信噪比由SNR(p)决定
signal_channel=awgn(signal,SNR(p),'measured');

% 初始化相关信号数组
signal_cor=zeros(1,len_m);
Minn_cor=zeros(1,len_m); % 初始化一个数组来存储相关值的模平方(原代码遗漏了此定义)

% 对信号进行相关处理
for l=len_m/2:2*len_m
signal_temp=signal_channel(l:l+len_m-1);
% 计算信号的相关值
signal_cor(l)=signal_temp(257:512)*signal_temp(1:256)'+signal_temp(769:1024)*signal_temp(513:768)';
% 计算相关值的模平方
Minn_cor(l)=abs(signal_cor(l))^2;
end

% 找到相关值模平方的最大值及其位置
[peak time_index(k)]=max(Minn_cor);

% 计算时间误差
time_error(k)=abs(time_index(k)-1153);

end

% 计算均方误差
MSE_syn(p)=sum(time_error)/sim_times;
end

% 绘制相关值的模平方
figure
plot(Minn_cor,'k');

% 绘制信噪比与均方误差的关系图
figure
plot(SNR,MSE_syn,'b*-');
4035

4.仿真结果

 

标签:同步,minn,OFDM,Minn,signal,算法,matlab,定时
From: https://www.cnblogs.com/matlabfpga/p/18082184

相关文章

  • DS-CDMA通信系统误码率matlab仿真,包括QPSK调制解调和扩频解扩
    目录1.QPSK调制解调2.扩频与解扩3.MATLAB程序DS-CDMA是一种多址接入技术,它允许多个用户在同一频段和时间内进行通信。每个用户都被分配一个独特的扩频码(通常是伪随机噪声码),用于在发送端对数据进行扩频,并在接收端进行解扩以恢复原始数据。DS-CDMA(DirectSequence—CodeDivis......
  • 【matlab】如何批量修改图片命名
    【matlab】如何批量修改图片命名(●’◡’●)先赞后看养成习惯......
  • 基于多种优化算法的物联网无人机基站研究【布谷鸟搜索CS、大象群体优化EHO、灰狼优化G
     ......
  • 【无人机路径规划】基于IRM和RRTstar进行无人机路径规划(Matlab代码实现)
    ......
  • matlab程序设计——程序流程控制
    和所有编程语言一样,matlab也有类似的程序控制流程,函数定义与调用等操作,相较于python和c/++,matlab更加特别,其格式与二者皆有出入,尤其需要初学者慎重记忆、区分理解。相同的,MATLAB的程序流程也无非分为:顺序结构、选择结构、循环结构三种类型(一).顺序结构MATLAB程序设计同样也遵......
  • 数学建模--MATLAB基本使用
    1.线性方程组这个是一个线性方程组(属于线性代数的范畴),Ax=b类型的方程,如果使用MATLAB进行求解,就需要分别表示A矩阵(线性方程组未知数前面的系数),b矩阵(表示等式右边的结果),inv是这个软件里面的一个函数,用来进行求解A的逆矩阵,因为Ax=b,那么x=A-1次方乘上b另外,我们也可以使用这个......
  • Matlab 实现抽样定理
    Matlab实现抽样定理-Wsine-博客园(cnblogs.com)  clearallclc%%设置原始信号%t=-0.2:0.0005:0.2;t=-0.2:(1/80):0.2;N=1000;k=-N:N;W=k*2000/N;origin=sin(2*pi*60*t)+cos(2*pi*25*t)+sin(2*pi*30*t);%......
  • m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:     2.算法涉及理论知识概要        随着人工智能和机器学习技术的飞速发展,手势识别技术在人机交互、虚拟现实、智能家居等领域的应用越来越广泛。基于深度学习网络的手势识别系统凭借其强大的特征提取和......
  • 基于yolov2深度学习网络的视频手部检测算法matlab仿真
    1.算法运行效果图预览输入mp4格式的视频文件进行测试,视频格式为1080p@30.   2.算法运行软件版本matlab2022a  3.算法理论概述         近年来,深度学习在计算机视觉领域取得了显著成果,特别是在目标检测任务中。YOLO(YouOnlyLookOnce)系列算法作为其中......
  • Matlab|【免费】基于半不变量的概率潮流计算
    目录主要内容     部分代码     结果一览   下载链接主要内容   该程序主要内容是基于半不变量法的概率潮流,包含蒙特卡洛模拟法、半不变量法+Gram-Charlier级数展开以及半不变量法+Cornish-Fisher级数展开三种方法以及效果对比,模型考虑了负荷不确定性(......