m基于OFDM系统,对比SC算法,Minn算法,PARK算法同步性能matlab仿真分析

news2025/8/6 10:01:00

目录

1.算法描述

2.仿真效果预览

3.MATLAB部分代码预览

4.完整MATLAB程序


1.算法描述

        OFDM系统下对比SC算法,Minn算法,PARK算法同步性能matlab仿真分析。OFDM系统中的定时估计和频率频率算法——时频联合估计的SC算法,由Schmidl和Cox提出,是一种基于训练序列的符号同步和载波频率同步的联合估计算法。

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

      为了进一步解决minn算法存在的不足,park等人在分析了schmidl算法和minn算法定时效果不佳的原因后,重新设计了新的前导训练序列的结构,并给出了新的定时同步度量函数,该算法的定时度量函数曲线出现了一个更为尖锐的自相关峰,很明显该算法消除了schmidl算法中由于循环前缀的存在而导致的平顶效应,同时得到了比minn算法更为尖锐的自相关峰,提高了定时的精度和确定性,但是在噪声干扰较大的情况下,该算法还是会出现较大的定时同步估计误差,其同步估计的稳定性依然较差。

SC算法

首先要考虑同步序列的结构,如下所示。 

该算法中既可以进行定时同步,也可以进行频率同步,频率同步又可以分为小数倍频偏和整数倍频偏,我在的项目里也叫精频偏估计和粗频偏估计。其中,定时同步和小数倍频偏估计用第一个训练序列也就是上图中的AA来完成,整数倍频偏则两个训练序列都会用到。

Minn算法

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

PARK算法

训练序列结构 T=[CC DD C∗C∗ D∗D∗],其中C表示由长度为N/4的复伪随机序列PN,ifft变换得到的符号序列C(n)=D(N/4−n)

 实际在算法实现上
P(d)=∑N/2−1m=0r(d−1−m)r(d+m)P(d)=∑m=0N/2−1r(d−1−m)r(d+m)
这是因为序列个数通常是偶数而非奇数,不会出现r(d)r(d)r(d)r(d)的情况。
所求得的d对应的是训练序列(不包含循环前缀)的中间位置。 

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

 

 

 

 

3.MATLAB部分代码预览

%************利用查表法生成复随机序列********************** 
QAMTable=[7+7i,-7+7i,-7-7i,7-7i]; 
buf=QAMTable(randint(N/2,1,4)+1); %加1是为了下标可能是0不合法
 
%产生train 
pn = rand(1,N/2)>0.5; 
pn = reshape(pn,N/4,2); 
[ich,qch]=qpskmod(pn,N/4,1,2); 
kmod=sqrt(2); 
x=ich*kmod+qch*kmod*i; 
y=ifft(x); 
y=reshape(y,N/4,1); 
train=[y;y(N/4:-1:1,1);conj(y);conj(y(N/4:-1:1,1))]; 
 
%*****************添加一个空符号以及一个后缀符号************* 
src = QAMTable(randint(N,1,4)+1).'; 
sym = ifft(src); 
sig =[zeros(N,1) train train sym]; 
 
%**********************添加循环前缀************************* 
tx =[sig(N - Ng +1:N,:);sig]; 
 
%***********************经过信道*************************** 
recv = reshape(tx,1,size(tx,1)*size(tx,2)); %size的1表示行,2表示列,从%前向后数,超过了为1
recv1 = awgn(recv,10,'measured'); 
recv2 = [zeros(1,100),recv1(1:end-100)]; 
recv  = recv1 + 0.8*recv2;
%*****************计算符号定时***************************** 
P=zeros(1,2*Ns); 
R=zeros(1,2*Ns); 
P2=zeros(1,2*Ns); 
R2=zeros(1,2*Ns);  
for d = Ns/2+1:1:2*Ns + Ns/2
    for m=1:N/2  
        P(d-Ns/2) = P(d-Ns/2) + (recv(d+m))*recv(d-1-m);  
        R(d-Ns/2) = R(d-Ns/2) + power(abs(recv(d+m)),2); 
    end 
end 
M= power(abs(P),2)./power(abs(R),2); 
[a b]=max(M);
b=b-N/2;
%取第一个峰值
Level = a/3;
Ind   = [];
for i=1:length(M)
    if M(i) > Level
       Ind = [Ind,i];
    end
end
M(Ind(2:end)) = 0;
M2(:,iii) = M;
end
MM = mean(M2,2);
%**********************绘图****************************** 
figure('Color','w'); 
d=1:1:400; 
plot(d,MM(d+N/2)); 
grid on; 
axis([0,400,0,1.1]); 
title('Park 算法'); 
xlabel('时间(采样)'); 
ylabel('定是度量曲线'); 
01_071_m

4.完整MATLAB程序

matlab源码说明_我爱C编程的博客-CSDN博客

V

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/34612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python入门自学进阶-Web框架——27、DjangoAdmin项目应用-数据记录操作2

四、对数据记录删除 1、首先是配置整个流程框架&#xff0c;使整个流程运转顺利&#xff1a; 路由项添加&#xff1a;path(<str:app_name>/<str:table_name>/<int:id_num>/delete/,views.rec_obj_delete,namerec_delete), 主要是匹配记录的id和delete字符…

【LeetCode每日一题:809.情感丰富的文字~~~双指针+计数器】

题目描述 有时候人们会用重复写一些字母来表示额外的感受&#xff0c;比如 “hello” -> “heeellooo”, “hi” -> “hiii”。我们将相邻字母都相同的一串字符定义为相同字母组&#xff0c;例如&#xff1a;“h”, “eee”, “ll”, “ooo”。 对于一个给定的字符串 S…

MyBatis核心对象简介说明

转自: MyBatis核心对象简介说明 MyBatis 有三个基本要素&#xff1a; 核心接口和类MyBatis核心配置文件&#xff08;mybatis-config.xml&#xff09;SQL映射文件&#xff08;mapper.xml&#xff09;下面首先介绍 MyBatis 的核心接口和类&#xff0c;如下图 每个 MyBatis 应…

华为云会议网络研讨会,按次订购更方便!

如今&#xff0c;云会议已经成为日常办公协作的常态&#xff0c;但在线发布会、大型培训会、大型招聘会等大型会议&#xff0c;常规云会议由于会议容量有限、人多会控难、角色单一等技术限制&#xff0c;已经无法满足大型会议的需求&#xff0c;此时&#xff0c;网络研讨会便能…

【电商】电商后台系统整体介绍

电商后台系统支撑了电商企业亿万级的交易量&#xff0c;其重要性不言而喻。本文章将从电商后台系统的的各个模块来分析&#xff0c;让大家的后台真正”硬“起来。 当前关于产品经理的文章主要偏向方法论、业界动向、产品分析、用户体验、交互等&#xff0c;关于后台系统的文章比…

m在simulink进行DS-CDMA建模,然后通过MATLAB调用simulink模型进行误码率仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 研究信道编码在噪声和衰落信道条件下传输和保护数据或图像类型源的性能。在工作于AWGN和瑞利衰落信道&#xff08;可根据需要选择信道类型&#xff09;的Simulink中创建二进制PSK&#x…

Metabase学习教程:视图-5

用地图可视化数据 如何使用标注地图、区域地图和网格地图来可视化Metabase中的数据。 本文介绍如何在Metabase中使用地图来可视化数据。本文中使用的美国地图是使用示例数据库每次安装Metabase时都会用到。 地图类型 Metabase具有三种地图类型&#xff1a; 标注地图标记特…

【Spring(五)】引入篇:一文带你弄懂AOP的底层原理(动态代理)

有关Spring的所有文章都收录于我的专栏&#xff1a;&#x1f449;Spring&#x1f448; 目录 一、前言 二、使用AOP需要的依赖 三、引入 四、AOP的底层原理之动态代理 五、总结 相关文章 【Spring&#xff08;一&#xff09;】如何获取对象&#xff08;Bean&#xff09;【Sprin…

[附源码]SSM计算机毕业设计民宿客栈管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

基于QT封装海康SDK(MvCameraControl),访问控制海康相机

1、封装类HkCameraApi,此类可以访问控制海康的网络相机、USB相机,可以同时采集多台相机的视频、控制设置的各种属性设置。 2、采集效果如下: 3.、该类已经上传,下载地址:基于C++封装HkCameraApi类,用于访问控制海康相机-C++文档类资源-CSDN下载 4、HkCameraApi类的头文…

【附源码】计算机毕业设计JAVA疫情下的居民管理系统

【附源码】计算机毕业设计JAVA疫情下的居民管理系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA…

算法图解学习4 递归

random recording 随心记录 What seems to us as bitter trials are often blessings in disguise. 看起来对我们痛苦的试炼&#xff0c;常常是伪装起来的好运。 递归 背景导入 在一个盒中盒找钥匙 第一种实现方法&#xff0c;如下图 第二种方法&#xff0c;如图 两种方法伪代…

6.jQuery中的Ajax上传文件

目录 1 上传文件 2 loading效果 1 上传文件 后端接到数据后保存在upload_file文件夹下 前端依然使用FormData处理文件 contentType:false的意思是 使用FormData默认的Content-Type值 processData:false的意思是 不对FormData中的数据进行url编码&#xff0c;而是将Form…

与专业安全厂商相比,戴尔做安全的优势是什么?

上文介绍了戴尔大谈零信任架构的原因&#xff0c;也提到了现代安全的三大要素&#xff0c;分别为&#xff1a;信任的基础、简化的零信任采纳和网络恢复计划。事实上&#xff0c;戴尔作为全球大型IT基础设施提供商&#xff0c;能提供多种网络安全能力来构建现代安全&#xff0c;…

当你碰到了MySQL中的死锁,你了解这些机制吗?

MySQL死锁怎么来的&#xff1f; 当两个及以上的事务&#xff0c;双方都在等待对方释放已经持有的锁或因为加锁顺序不一致造成循环等待锁资源&#xff0c;就会出现“死锁”。 总结一下生产死锁的4个条件&#xff1a; 两个或者两个以上事务 每个事务都已经持有锁并且申请新的锁…

[附源码]java毕业设计游戏战队考核系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Baklib帮助中心:自助服务指南

根据 Social endurance 的调查&#xff0c;64%的客户希望在 Twitter 上发帖一小时内得到回复&#xff0c;85%的客户希望公司在6小时内回复。 虽然这种客户期望的趋势几乎适用于所有行业&#xff0c;但某些行业——如电子商务应用程序——的流量正创下历史新高。大多数公司可能…

如何在矩池云上安装语音识别模型 Whisper

如何在矩池云上安装语音识别模型 Whisper Whisper 是 OpenAI 近期开源的一个语音识别的模型&#xff0c;研究人员基于 680,000 小时的标记音频数据进行训练&#xff0c;它同时也是一个多任务模型&#xff0c;可以进行多语言语音识别以及语音翻译任务&#xff0c;可以将语音音频…

【CVPR 2022】QueryDet:加速高分辨率小目标检测

大连不负众望&#xff0c;疫情了&#xff0c;我们又封校了&#xff0c;可能初步封个5678天&#xff0c;微笑jpg 论文地址&#xff1a;https://arxiv.org/pdf/2103.09136.pdf 项目地址&#xff1a;https://github.com/ ChenhongyiYang/QueryDet-PyTorch 1. 简介 背景&#xf…

java中的线程池

文章目录前言线程池的优点线程池的实现原理线程池的创建线程池提交任务线程池的关闭合理配置线程池线程池的监控总结前言 在处理一些比较复杂或者费时的任务的时候&#xff0c;我们常常会选择多线程的方式去处理。那么怎么创建多个线程呢&#xff0c;当然不可能是一个一个创建…