当前位置: 首页 > news >正文

IQ Tools---OFDM

  本文将详细介绍IQ Tool中的OFDM模块的使用方法和实现原理。

1. 参数配置

图1. OFDM参数配置界面

  该模块可配参数如下:

序号名称含义
1Sample Rate(Hz)AWG的采样率,单位:Hz
2Oversampling rate相对于OFDM System Frequency的过采样倍数,目前只支持整数倍过采样
3OFDM System Frequency(Hz)OFDM的带宽,在IQ tool中通常OFDM带宽和过采样倍数的乘积等于AWG的采样率
4Frequency Offset频率偏移,用于对生成的OFDM信号进行频谱搬移。如果该参数大于0,则最终只会生成一路实信号(原始OFDM信号根据Frequency Offset进行频谱搬移后的实部),此时AWG只用到了一个通道
5Number of Sample for Window窗函数的点数,如果该参数大于0,则会在每个OFDM符号左右两侧均生成该长度的窗函数(目前只支持blackman窗),然后对OFDM符号数据进行加窗
6FFT Length一个OFDM符号包含的子载波数,包含有效的数据子载波、导频、前导码、空载波及前/后保护间隔子载波
7Symbols per Resource Map Entry ,
8Resource Map表示每个子载波中的信息类型,其中0表示数据(Data), 1表示导频(pilot), 2表示未知导频(Unknown Pilot), 3表示前导码(Preample),4表示空载波(Null), 5表示未指定(unspecificed). 该参数只作用于OFDM符号中的有效子载波,而不作用于保护间隔子载波
9Resource Modulation用于索引QAM Identifier的值
10QAM Identifier用于索引QAM Levels中的值
11QAM Levels表示每个子载波的调制形式,其中0表示未知(Unknown, BPSK is used), 1表示BPSK, 2表示QPSK, 3表示8-PSK, 4表示16-QAM, 5表示32-QAM, 6表示64-QAM, 7表示128-QAM, 8表示256-QAM, 9表示512-QAM, 10表示1024-QAM
12Pilot Defintions导频值,是复数序列,奇数位置上为实部,偶数位置上为虚部,相邻两个位置上的实部和虚部的值共同组合成一个导频
13Preamble IQ Values前导码的值,是复数序列,奇数位置上为实部,偶数位置上为虚部,相邻两个位置上的实部和虚部的值共同组合成一个前导码
14Guard lower Subcarriers低频保护间隔包含的子载波数
15Guard upper Subcarriers高频保护间隔包含的子载波数
16Guard Interval保护间隔,必须是1/N(N表示正整数),最终会在两个符号中间插入一段保护间隔长度的数据(当前符号的后面数据)
17Resource Repeat Index系统采样率,单位:Hz
18Number of Symbols(all)每个package里面包含的总的OFDM符号数
19Number of PackagesOFDM符号包数,每个包里面包含Number of Symbols(all)个OFDM符号,相邻包之间的时间间隔为Pause between Bursts/(s)
20Pause between Bursts/(s)表示相邻OFDM符号包之间的时间间隔
21Create Random Data在程序内调用随机数生成的函数生成随机序列,用于填充各个子载波的内容
22Binary Data Stream若没有勾选Create Random Data,则由用户输入的二进制序列来填充各个子载波的内容

2. 波形生成原理

图2. 生成的波形结构示意图

  上图为IqTool中生成的OFDM数据示意图。波形生成步骤如下:
  (1) 生成二进制比特流(可以选择由程序生成随机二进制比特流或用户手动由界面导入)(注:该二进制比特流仅用于数据子载波);
  (2) 根据Resource Map和QAM Levels的参数,对上述二进制比特序列进行调制,并塞到OFDM符号中的指定位置上,具体地:a) 若Resource Map=0,表示当前子载波是数据子载波,根据QAM Levels的值,对二进制序列进行调制,如4-QAM/8-QAM等调制(调制后均进行了子载波能量的归一化);b) 若Resource Map=1,则表示当前子载波是导频子载波,则从Pilot Defintions中读出对应的导频值;c) 若Resource Map=2,则表示当前子载波是未知导频子载波,填入默认的1+0j;d)若Resource Map=3,则表示当前子载波是前导码子载波,从Preamble IQ Values中读出对应的前导码的值;e)若Resource Map=4,表示当前子载波是空载波,跳入0;f) 若Resource Map=5,表示当前子载波是未知子载波,填入默认的0值。此外,OFDM的前Guard lower Subcarriers个子载波中填入0,作为低频保护间隔子载波,后Guard Upper Subcarriers个子载波中填入0,作为高频保护间隔。
  (3) 将步骤(2)得到的数据进行IFFT变换,得到OFDM符号值;
  (4) 将步骤(3)得到的OFDM符号数据的后Guard Interval%的数据复制到本次OFDM符号的前端作为符号间保护间隔;
  (5) 按(1)~(4)的步骤生成Number of Symbols(all)各OFDM符号,并级联形成一个OFDM符号的包(package);
  (6) 在步骤(5)生成的OFDM符号包后面,补上一段持续Pause between Bursts/(s)时长的0值,作为不同OFDM符号包之间的间隔。共生成Number of Packages个OFDM符号包。
  (7) 对生成的数据进行预失真等操作。
  按图1所示参数生成的OFDM符号时/频域图如下所示

(a) 时域波形

(b) 频域波形
图3、 生成的OFDM符号

  除了上面的步骤外,生成过程还有一些细节要注意,说明如下:
   未完待续…
   未完待续…
   未完待续…


http://www.mrgr.cn/news/33956.html

相关文章:

  • golang将word、excel转换为pdf
  • 【Excel】数据透视表分析方法大全
  • Window下PHP安装最新sg11(php5.3-php8.3)
  • 【HBase原理及应用实训课程】第五章 HBase与MapReduce的集成
  • 《Redis集群高可用环境构建与优化》
  • 雷池waf安装并部署防护站点
  • 60.【C语言】内存函数(memset函数)
  • 基于单片机的水位检测系统仿真
  • C#/.NET/.NET Core技术前沿周刊 | 第 6 期(2024年9.16-9.22)
  • 基于STM32残疾人辅助行走系统
  • Python知识点:如何使用Python进行物联网数据处理
  • 【全网最全】2024年华为杯研究生数学建模A题成品论文
  • tornado
  • 【数据结构】图的遍历
  • Project Online 专业版部署方案
  • SBB对象和SBB实体的区别
  • SQL查询中字段选择的两种写法:select * VS select 字段名
  • 软考高级:数据库保持函数依赖和有损无损分解 AI 解读
  • 计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-23
  • 淘客导购系统的分布式存储与管理
  • Vue3通过$emit实现子向父传递数据
  • 【Linux 从基础到进阶】 Google Cloud Platform 配置与管理
  • 网络通信——路由器、交换机、集线器(HUB)
  • EP26 在onLoad周期获取参数获取对应的数据
  • PHP中如何使用三元条件运算符
  • 深入理解Python中的数据结构:deque