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