OFDM同步--符号定时偏差STO

2023-10-20 16:28

本文主要是介绍OFDM同步--符号定时偏差STO,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考书籍:《MIMO-OFDM无线通信技术及MATLAB实现》 实验图基本都截取自该本书

一、什么是STO

  OFDM在接收时需要做FFT,需要在OFDM符号周期内获得对发射信号的精确采样,即在去CP之后我们需要找到OFDM的起始位,这样进行FFT运算时才能实现每一个符号位的对齐。时域 δ \delta δ的STO同时会导致频域 2 π k δ / N 2\pi k\delta/N 2πkδ/N的相位偏移。
在这里插入图片描述

二、STO的影响

STO对符号采样的影响存在4种情况,假设多径延时拓展为 τ m a x \tau_{max} τmax

Case I

  估计的 OFDM 符号起始点与精确的定时一致,因此能够保持子载波频率分量之间的正交性。在这种情况下,可以完美地恢复 OFDM符号,而且没有任何干扰。在这里插入图片描述
在这里插入图片描述

Case II

  估计的OFDM符号起始点在精确的定时点之前,但处在前一个OFDM符号信道响应的末端之后。在这种情况下,第I个符号与第I-1个符号不会重叠,即不存在由前一个符号引起的ISI。
在这里插入图片描述
  Case II 情况下子载波分量保持正交性但是恢复结果会出现固定相位偏移(对应星座图出现旋转,但并不散乱),可以使用相位补偿器解决该问题。
在这里插入图片描述

Case III

  估计的OFDM符号起始点早于前一个OFDM 符号信道响应的末端,因此符号定时太早而无法避免ISI。这种情况下,子载波之间的正交性被(来自前一个符号的)ISI破坏,同时出现了ICI。
在这里插入图片描述
相位偏差严重,无法通过补偿进行矫正
在这里插入图片描述

Case IV

  估计的OFDM符号起始点滞后于精确的定时点。在这种情况下,在 FFT 间隔内,信号由当前的OFDM符号的一部分和下一个OFDM符号的一部分组成。
在这里插入图片描述
相位偏差严重,无法通过补偿进行矫正。
在这里插入图片描述

三、STO估计技术

  Case III 和 Case IV 已经无法仅使用补偿技术进行矫正了,因此需要估计出STO,使得接收机可以准确估计出OFDM符号的起始点。

3.1 时域STO估计

1. 基于CP的STO估计

  利用CP与数据的相似性去估计STO,利用间隔N个采样(N=OFDM符号采样长度)滑动窗口寻找接收数据最相似的情况,并将其定为OFDM的起始采样点。移动时不断变化的采样点时间,即 δ \delta δ 便为STO的时域延时。
图为双滑动窗口的STO估计技术:
在这里插入图片描述
  当 W1 和 W 2中两个采样块之间相似度达到最大,估计出 δ \delta δ 即可确定OFDM采样起始点。

W1与W2相似度计算方法

  1. 差值估计
    直接计算搜索块的差值,尽管这种技术简单,但是当接收系统中存在 CFO 时其性能会下降。
    δ ^ = arg ⁡ min ⁡ δ { ∑ i = δ N G − 1 + δ ∣ y l [ n + i ] − y l [ n + N + i ] ∣ } \hat{\delta}=\underset{\delta}{\arg \min }\left\{\sum_{i=\delta}^{N_{\mathrm{G}-1+\delta}}\left|y_l[n+i]-y_l[n+N+i]\right|\right\} δ^=δargmin{i=δNG1+δyl[n+i]yl[n+N+i]}
  2. 平方估计
    为了处理CFO, 通过最小化 W1 中采样块和 W2中采样块之差的平方来估计STO
    δ ^ = arg ⁡ min ⁡ δ { ∑ i = δ N G − 1 + δ ( ∣ y l [ n + i ] ∣ − ∣ y l ∗ [ n + N + i ] ) 2 } \hat{\delta}=\underset{\delta}{\arg \min }\left\{\sum_{i=\delta}^{N_{\mathrm{G}}-1+\delta}\left(\left|y_l[n+i]\right|-\mid y_l^*[n+N+i]\right)^2\right\} δ^=δargmin{i=δNG1+δ(yl[n+i]yl[n+N+i])2}
  3. 相关性估计
    W1 和 W2 中两个采样块之间的相关性,即
    δ ^ = arg ⁡ max ⁡ δ { ∑ i = δ N G − 1 + δ ∣ y l [ n + i ] y l ∗ [ n + N + i ] ∣ } \hat{\delta}=\underset{\delta}{\arg \max }\left\{\sum_{i=\delta}^{N_{\mathrm{G}}-1+\delta}\left|y_l[n+i] y_l{ }^*[n+N+i]\right|\right\} δ^=δargmax{i=δNG1+δyl[n+i]yl[n+N+i]}
  4. 最大似然估计
    最大化 W1 中采样块和 W2 中采样块之间的相关性。然而,当接收信号中存在 CFO 时的性能会下降。为了处理接收信号中的 CFO,通过最大化对数似然函数来估计STO。
    δ ^ M L = arg ⁡ max ⁡ δ [ ∑ i = δ N G − 1 + δ 2 ( 1 − ρ ) Re ⁡ { y l [ n + i ] y l ∗ [ n + N + i ] } − ρ ∑ i = δ N G − 1 + δ ∣ y l [ n + i ] − y l [ n + N + i ] ∣ ] \hat{\delta}_{\mathrm{ML}}=\underset{\delta}{\arg \max }\left[\sum_{i=\delta}^{N_{\mathrm{G}-1+\delta}} 2(1-\rho) \operatorname{Re}\left\{y_l[n+i] y_l^*[n+N+i]\right\}-\rho \sum_{i=\delta}^{N_{\mathrm{G}}-1+\delta}\left|y_l[n+i]-y_l[n+N+i]\right|\right] δ^ML=δargmax[i=δNG1+δ2(1ρ)Re{yl[n+i]yl[n+N+i]}ρi=δNG1+δyl[n+i]yl[n+N+i]]

2. 基于训练符号的STO技术

  通过发射训练符号,可以在接收机实现符号同步。与基于 CP 的方法相比,基于训练符号的方法存在因传输训练符号而带来的负荷问题,但是这种方法不受多径信道的影响 (我其实不太理解为什么不受多径信道影响,这也是书中提到的方法就放在这) 。在估计的过程中,可以使用两个相同的OFDM训练符号,也可以使用具有 (不同重复周期)重复结构的单个OFDM训练符号。
在这里插入图片描述

3.2 频域STO估计

  接收信号会因 STO 而产生相位旋转。相位旋转与子载波的频率成比例, 所以可以用频域接收信号中相邻子载波的相位差来估计 STO。频域 STO 估计技术通常会得到相当精确的估计值,所以能够用于精符号同步中,但是同样以为着更大的计算量。

3.2.1 训练符号

  一种利用相位旋转的影响进行 STO 估计的技术 。更具体地, 将训练符号的共轭 X l ∗ [ k ] X_l^*[k] Xl[k] 和存在 STO 的接收符号相乘,然后从中估计出 STO
δ ^ = arg ⁡ max ⁡ n ( y l X [ n ] ) \hat{\delta}=\underset{n}{\arg \max }\left(y_l^{\mathrm{X}}[n]\right) δ^=nargmax(ylX[n])其中 y l X [ n ] = IFFT ⁡ { Y l [ k ] e j 2 π n k / N X l ∗ [ k ] } = 1 N ∑ k = 0 N − 1 Y l [ k ] e j 2 π δ k / N X l ∗ [ k ] e j 2 π δ k / N = 1 N ∑ k = 0 N − 1 H l [ k ] X l [ k ] X l ∗ [ k ] e j 2 π ( δ + n ) k / N = 1 N ∑ k = 0 N − 1 H l [ k ] e j 2 π ( δ + n ) k / N = h l [ n + δ ] \begin{aligned} y_l^{\mathrm{X}}[n] & =\operatorname{IFFT}\left\{Y_l[k] \mathrm{e}^{\mathrm{j} 2 \pi n k / N} X_l^*[k]\right\} \\ & =\frac{1}{N} \sum_{k=0}^{N-1} Y_l[k] \mathrm{e}^{\mathrm{j} 2 \pi \delta k / N} X_l^*[k] \mathrm{e}^{\mathrm{j} 2 \pi \delta k / N} \\ & =\frac{1}{N} \sum_{k=0}^{N-1} H_l[k] X_l[k] X_l^*[k] \mathrm{e}^{\mathrm{j} 2 \pi(\delta+n) k / N} \\ & =\frac{1}{N} \sum_{k=0}^{N-1} H_l[k] \mathrm{e}^{\mathrm{j} 2 \pi(\delta+n) k / N} \\ & =h_l[n+\delta] \end{aligned} ylX[n]=IFFT{Yl[k]ej2πnk/NXl[k]}=N1k=0N1Yl[k]ej2πδk/NXl[k]ej2πδk/N=N1k=0N1Hl[k]Xl[k]Xl[k]ej2π(δ+n)k/N=N1k=0N1Hl[k]ej2π(δ+n)k/N=hl[n+δ]假设训练符号 X [ k ] X[k] X[k] 的功率等于 1 , 即 X [ k ] X l ∗ [ k ] = ∣ X [ k ] ∣ 2 = 1 X[k] X_l^*[k]=|X[k]|^2=1 X[k]Xl[k]=X[k]2=1

3.2.2 信道脉冲响应

  利用信道脉冲响应进行 STO 估计的两个例子,其中一个0点采样,另一个10点采样。第一个信道脉冲响应从第 0个采样开始,用实线表示。第二个信道脉冲响应从第10个采样开始,用虚线表示。可以通过这种方法对 STO 进行正确的估计。
在这里插入图片描述

总结

  数字信号的同步一直都是数字信号处理中很关键的步骤,但在学习过程中我仅将同步视为必要步骤而不是复杂步骤。其实系统同步技术都很关键和复杂,经过同步的矫正才能保证系统的正确稳定。本文简要介绍了OFDM的STO同步,后续还会介绍OFDM另外一个重要的同步技术—>CFO同步

这篇关于OFDM同步--符号定时偏差STO的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/248272

相关文章

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

ActiveMQ—消息特性(延迟和定时消息投递)

ActiveMQ消息特性:延迟和定时消息投递(Delay and Schedule Message Delivery) 转自:http://blog.csdn.net/kimmking/article/details/8443872 有时候我们不希望消息马上被broker投递出去,而是想要消息60秒以后发给消费者,或者我们想让消息没隔一定时间投递一次,一共投递指定的次数。。。 类似

MySQL主从同步延迟原理及解决方案

概述 MySQL的主从同步是一个很成熟的架构,优点为: ①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力; ②在从主服务器进行备份,避免备份期间影响主服务器服务; ③当主服务器出现问题时,可以切换到从服务器。 相信大家对于这些好处已经非常了解了,在项目的部署中也采用这种方案。但是MySQL的主从同步一直有从库延迟的问题,那么为什么会有这种问题。这种问题如何解决呢? MyS

使用条件变量实现线程同步:C++实战指南

使用条件变量实现线程同步:C++实战指南 在多线程编程中,线程同步是确保程序正确性和稳定性的关键。条件变量(condition variable)是一种强大的同步原语,用于在线程之间进行协调,避免数据竞争和死锁。本文将详细介绍如何在C++中使用条件变量实现线程同步,并提供完整的代码示例和详细的解释。 什么是条件变量? 条件变量是一种同步机制,允许线程在某个条件满足之前进入等待状态,并在条件满

mysql创建新表,同步数据

import os import argparse import glob import cv2 import numpy as np import onnxruntime import tqdm import pymysql import time import json from datetime import datetime os.environ[“CUDA_VISIBLE_DEVICE

三.海量数据实时分析-FlinkCDC实现Mysql数据同步到Doris

FlinkCDC 同步Mysql到Doris 参考:https://nightlies.apache.org/flink/flink-cdc-docs-release-3.0/zh/docs/get-started/quickstart/mysql-to-doris/ 1.安装Flink 下载 Flink 1.18.0,下载后把压缩包上传到服务器,使用tar -zxvf flink-xxx-

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密 可以将表情,动物,水果,表情,手势,猫语,兽语,狗语,爱语,符号,数字,字母,加密和解密 可以将文字、字母、数字、代码、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容 源码截图: https://www.httple.net/152649.html

Gerrit与Gitlab同步配置replication其他配置

一、Gerrit与Gitlab同步配置 当配置好gerrit环境后,还需要与现有gitlab库进行同步配置,否则会影响现有开发与打包流程。 1.安装gerrit replication插件 unzip gerrit.warcp WEB-INF/plugins/replication.jar ~/temp/ssh -p 29418 admin@172.19.16.64 gerrit plu