OFDM通信中的部分内容

纠错编码:在无线通信过程中由于传输过程存在噪声等各种非理想因素,在接收端接收到的信息往往相对于发射信息存在误码,通过纠错编码方式可以对少数非连续的误码进行判断和纠正。举个简单的例子,发射端可能发射的信息为00,01,10,11,若某一时刻发射端发射的信息为11,但是接收端接收到的信息为10,也就是出现了1位误码,如果按上面的编码方式,此时是没有办法发现这个传输错误的。设想若此时发射端只允许发射00,11这两种编码信息,而接收端接收到的信息为10,那么显然可以判断得到此时出现了误码,有可能是00误码为10,也有可能是11误码为10,此时再综合其他信息,完全有可能总结出具体的误码情况,并将其纠正为正确的信息。上面的例子虽然很简单,但是也基本上能够直观地展示纠错编码的功能及实现方式。其实纠错编码就是通过降低传输效率来增加冗余信息,为接收端误码判断及纠错提供一些先验信息。从上面的例子也可以看错纠错编码一般就能对偶尔的较少的误码进行判断和纠正,因为对于连续的大量误码,要想通过纠错编码来解决,就不可避免要增加过多冗余信息,这对传输效率造成很大影响,在实际应用中往往是很难接受的。

交织交织的作用就是将一串突发错误转化为随机错误,这样就可以利用纠错编码进行处理了。所以交织与纠错编码是一对紧密结合的好伙伴。以下同样通过一个简单的例子来说明交织的作用及其实现方式。假如发射端发射三句话“明天八点半”,“我们校门口”,“一起吃汉堡”,由于传输过程中某个时间点受到干扰,导致接收端接收到的信息为“明天八点半”,“xxxxx”,“一起吃汉堡”,即第2句话完全错误了,这个时候接收端就很难判断发送端的完整意思了。试想一下,如果我们在接收端按照下面的方式将原始信息进行排列:

相当于将原来的信息保存到一个 m × n m\times n m×n的矩阵里面,原来我们是按行进行发送,一行发送完了再发送另外一行,现在我们将它按列进行发送,并在接收端将结果保存到一个 n × m n\times m n×m的矩阵里面,即接收端数据矩阵里面保存的信息为
:------------::------------::------------:
x
xxx
x
我们在接收端将其按列读出来,则最终信息变为"明天xx半",“我们x门口”,“一xx汉堡”,显然此时已经将原来连续的错误随机分散到不同的位置,这样就可能利用纠错编码进行处理。从上面的例子直观感受就是交织前是某一句话完全错,交织后就是每句话都错一点。

导频:在OFDM符号中除了传输有用信息的数据子载波以外,通常还会有一些子载波用于传输特定的信息,这些子载波就被称为导频。由于导频上的信息可以事先得知,所以常常利用导频信息进行信道估计。在OFDM符号中通常有以下几种不同形式的导频:
在这里插入图片描述

(a)块状导频

在这里插入图片描述

(b)梳状导频

在这里插入图片描述

(c)格状导频
图1 不同形式的导频

图1(a)表示块状导频,即导频分布在某些时间点上的所有子载波上,即将某些OFDM符号全部用作导频,其实每个OFDM符号都可以理解为时域上的一个波形,所以块状导频在时域看来就是在某个时间段内插入一个特定波形,所以这种导频其实起到了训练符号的作用。图1(b)表示梳状导频,它是用每个OFDM符号中的某些子载波固定地来传输导频信息,从频域上看,这些导频就表现为特定频率上的尖峰。从时域上看,就是每个时间点上都有导频。所以块状导频和梳状导频的差别可以用下面一句话表明:

块状导频: 某些时间点上的所有频率(所有子载波)
梳状导频: 所有时间点上的某些频率(某些子载波)

设原始数据共有 M M M个OFDM符号,每个OFDM符号中包含 N N N个子载波,则发射数据可以表示为 X \boldsymbol{X} X,接收数据可以表示为 Y \boldsymbol{Y} Y,设信道响应为 H \boldsymbol{H} H, 则显然有 Y = H . ∗ X \boldsymbol{Y}=\boldsymbol{H}.*\boldsymbol{X} Y=H.X。其中上述三个矩阵的维数均为 N × M N\times M N×M。由于导频中的信息是先验已知的,因此导频处的信道响应是可求的,所以需要利用导频处的信道响应值来得到所有位置处的信道响应结果,以下分别说明块状和梳状导频情况下如何通过导频位置处的信道响应值得到全体数据的信道响应值:

块状导频:如下图所示,通过导频信息只能得到图中红色圆圈处的信道响应值,此时需要将其沿时间轴进行插值,就能得到中间任意时刻的信道响应值,即延 H \boldsymbol H H的列进行插值。

在这里插入图片描述

图2 块状导频沿时间轴插值得到完整信道响应

梳状导频:如下图所示,通过导频信息只能得到图中红色圆圈处的信道响应值,此时需要将其沿频率轴进行插值,就能得到任意子载波上的信道响应值,即沿 H \boldsymbol H H的行进行插值。

在这里插入图片描述

图3 梳状导频沿频率轴插值得到完整信道响应

格状导频可以看成块状导频和梳状导频的组合,因此在得到导频位置处的信道响应之后,需要分别沿时间轴和频率轴进行插值,才能得到所有位置处的信道响应结果,即需要先后对信道响应矩阵 H \boldsymbol H H的列和行进行插值。
对于DTMB这种没有导频的信号来说,它可以通过帧头PN序列得到帧头处的信道响应结果,它有点像块状导频的情况,理论上可以联合多帧帧头的信道响应结果,对其沿时间轴进行插值,从而得到完整信道响应结果,但是由于相邻帧头之间的距离较远,插值的效果往往很难保证,所以往往就直接把帧头的信道响应当成是整帧数据的信道响应,其实这在信道快速变化的情况下是不合适的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python字符串入门指南:从基础到进阶

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、字符串的创建与展示 二、处理特殊情况:含有特殊字符的字符串 三、字符串拼…

Spring—Spring配置文件概念及应用(实现一个图形验证码)

文章目录 配置文件配置文件作用配置文件的格式配置文件优先级说明配置文件书写代码的格式yml文件代码的格式 Value注解 properties 缺点分析properties VS yml实现一个验证码程序 配置文件 配置文件作用 整个项目的重要信息我们都会配置在配置文件中,比如说我们数…

springboot基础篇(快速入门+要点总结)

目录 一、SpringBoot简介 二、创建SpringBoot(通过Idea脚手架搭建项目) 三、properties配置文件 properties 配置文件说明 ①. properties 基本语法 ②. 读取配置⽂件 ③. properties 缺点 2. yml 配置⽂件说明 ①. yml 基本语法 ②. yml 使用进…

easy-rule规则引擎使用

简介 轻量级的规则引擎&#xff0c;易于学习的api 简单来说&#xff0c;规则引擎就是一个函数&#xff1a;yf(x1,x2,…,xn) 将业务代码和业务规则分离&#xff0c;解耦业务决策和业务代码的绑定关系 入门示例 依赖引入 <dependency><groupId>org.jeasy</grou…

Nacos 2.x 系列【8】集成 Spring Cloud Gateway

文章目录 1. 概述1.1 API 网关1.1 Spring Cloud Gateway 2. 集成案例2.1 入门案例2.2 动态路由 1. 概述 1.1 API 网关 API网关已经成为了微服务架构的一个标配组件&#xff0c;是系统对外的唯一入口。所有的客户端都通过统一的网关接入微服务&#xff0c;在网关层处理所有非业…

Jenkins工具系列 —— 通过钉钉API 发送消息

文章目录 钉钉环境搭建使用钉钉API接口 发送消息机器人安全设置使用自定义关键词机器人安全设置使用加签方式 资料下载 钉钉环境搭建 在jenkins安装钉钉插件以及小机器人&#xff0c;这部分内容可参考&#xff1a;插件 钉钉发送消息 使用钉钉API接口 发送消息 机器人安全设置…

【全开源】分类记账小程序系统源码(ThinkPHP+FastAdmin+UniApp)

基于ThinkPHPFastAdminUniAppvk-uView-uiVue3.0开发的一款支持多人协作的记账本小程序&#xff0c;可用于家庭&#xff0c;团队&#xff0c;组织以及个人的日常收支情况记录&#xff0c;支持周月年度统计。 &#xff1a;智能管理您的财务生活 一、引言&#xff1a;财务智能化…

SSMP整合案例第三步 业务层service开发及基于Mybatis的接口功能拓展

业务层开发 对于业务层的制作有个误区 Service层接口定义与数据层接口定义具有较大差别 不要混用 业务层接口关注的是业务名称 数据层接口关注的是数据层名称 操作是不难 但是有些东西还是要掌握的 业务层接口如果是业务方法 就按照业务名称来代替 如果是数据操作 直接用…

python数据分析——数据可视化(图形绘制)

数据可视化&#xff08;图形绘制基础&#xff09; 前言一、图形绘制基础Matplotlib简介使用过程sin函数示例 二、常用图形绘制折线图的绘制plot示例 散点图的绘制scatter()示例 柱状图的绘制bar示例 箱型图绘制plot.box示例 饼状图的绘制pie示例 三、图形绘制的组合情况多个折线…

有什么普通人可以做的赚钱软件?盘点9个适合普通人长期做的软件

在这个互联网高速发展的时代&#xff0c;智能手机已经成为我们生活中不可分割的一部分。众多APP的涌现&#xff0c;使得许多朋友都在寻求通过手机赚钱的方法。 然而&#xff0c;面对市面上琳琅满目的网上赚钱APP&#xff0c;我们该如何挑选呢&#xff1f;别担心&#xff0c;今…

全国首例!云南破获域名黑产大案,抓获630人

2021年5月以来&#xff0c;在公安部的组织指挥下&#xff0c;云南公安机关历时8个多月&#xff0c;成功破获全国首例域名黑产犯罪案件&#xff0c;经全国各地公安机关连续奋战&#xff0c;共侦破案件300起&#xff0c;抓获涉案人员630人&#xff0c;查封用于黄、赌、诈等违法网…

GpuMall智算云:xinntao/Real-ESRGAN/Real-ESRGAN-v0.2.5.0

介绍 Real-ESRGAN旨在开发用于一般图像/视频恢复的实用算法。用纯合成数据训练现实世界盲人超级分辨率。我们将强大的ESRGAN扩展到一个实用的恢复应用程序&#xff08;即Real-ESRGAN&#xff09;&#xff0c;该应用程序使用纯合成数据进行训练。GpuMall智算云 | 省钱、好用、弹…

Linux(七)

Linux&#xff08;七&#xff09; 结构体---位域/位段 (为了节省空间)字节对齐:一次性分配多少个字节 (64/32)基本数据类型对齐方式结构体对齐方式:按照成员中最大的对齐方式 共用体如何定义共用体如何定义一个共用体的变量大小端什么是大端序和小端序如何测试计算机是小端序还…

京东Java社招面试题真题,最新面试题

Java中接口与抽象类的区别是什么&#xff1f; 1、定义方式&#xff1a; 接口是完全抽象的&#xff0c;只能定义抽象方法和常量&#xff0c;不能有实现&#xff1b;而抽象类可以有抽象方法和具体实现的方法&#xff0c;也可以定义成员变量。 2、实现与继承&#xff1a; 一个类…

地下城游戏(leetcode)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 地下城游戏https://leetcode.cn/problems/dungeon-game/description/ 图解分析&#xff1a; 代码 class Solution { public:int calculateMinimumHP(vector<vector<int>>& vv) {int row vv.size(), col …

2024 年 5 个 GO REST API 框架

什么是API&#xff1f; API是一个软件解决方案&#xff0c;作为中介&#xff0c;使两个应用程序能够相互交互。以下一些特征让API变得更加有用和有价值&#xff1a; 遵守REST和HTTP等易于访问、广泛理解和开发人员友好的标准。API不仅仅是几行代码&#xff1b;这些是为移动开…

内存函数memcpy和memmove的详解及模拟实现

1.函数memcpy void * memcpy ( void * destination, const void * source, size_t num );函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。 这个函数在遇到 ‘\0’ 的时候并不会停下来。 如果source和destination有任何的重叠&#xff0c;复制的…

网络攻防概述(基础概念)

文章目录 APTAPT概念APT攻击过程 网络空间与网络空间安全网络空间(Cyberspace)网络空间安全(Cyberspace Security) 网络安全属性机密性(Confidentiality或Security)完整性(Integrity)可用性&#xff08;Availability&#xff09;不可否认性&#xff08;Non-repudiation&#xf…

如何从头搭建一个自己的java库并上传到maven官方仓库

创建代码 在代码库根目录执行maven命令&#xff0c;用于快速生成一个基础的Maven项目 mvn archetype:generate \-DgroupIdcom.mycompany \-DartifactIdmy-maven-project \-Dversion1.0.0 \-DarchetypeArtifactIdmaven-archetype-quickstart \-DinteractiveModefalse 这个命令…

OS复习笔记ch6-2

死锁的解决 死锁的预防&#xff08;打疫苗&#xff09;死锁的避免&#xff08;戴口罩&#xff09;死锁的检测&#xff08;做核酸&#xff09; 死锁的预防 前面我们提到了死锁的四个必要条件 防止前三个必要条件&#xff0c;就是间接预防防止最后一个必要条件–循环等待&…