OFDM调制器
调制频域OFDM子载波为自定义通信协议的时域样本
- 库:
无线HDL工具箱/调制
描述
的OFDM调制器块根据OFDM参数将频域正交频分复用(OFDM)子载波调制为时域样本。该区块支持5G新无线万博1manbetx电(NR)标准,长期演进(LTE)[1],无线局域网(WLAN 802.11a/g/n/ac)[2]WiMAX、数字视频广播(DVB)和数字音频广播(DAB)标准。
该块接受输入数据以及有效的控制信号和这些OFDM参数:FFT长度,CP长度和左右保护子载波的数量。该模块输出调制数据以及有效和就绪的控制信号。只有当准备好了端口是1
(高)而当首有效的每个OFDM符号的端口为1
(高)。
该块支持标量和向量输万博1manbetx入。您可以使用矢量输入来提高数据吞吐量并实现每秒千兆采样(GSPS)吞吐量。该块支持对标量和矢量万博1manbetx输入加窗,以减少OFDM信号的频谱再生或相邻信道泄漏比(ACLR)。该模块提供了适合于HDL代码生成和硬件部署的接口和体系结构。
港口
输入
数据
-输入数据
标量|列向量
输入数据,指定为实数或复数值的标量或列向量。向量大小必须是2的幂,范围在1到64之间,并且小于或等于FFT长度。有关如何指定向量输入的详细信息,请参见指定矢量输入.
双
而且单
数据类型支持模拟,但不支持HD万博1manbetxL代码生成。
数据类型:单
|双
|int8
|int16
|int32
|有符号不动点
复数支持:万博1manbetx是的
有效的
—有效的输入数据
标量
指示指定为标量的有效输入数据。
这个端口是一个控制信号,表明当样品从数据输入端口有效。当此值为1
的值时,该块捕获数据输入端口。当此值为0
的值时,块忽略数据输入端口。
数据类型:布尔
FFTLen
- FFT长度
标量
FFT的长度,指定为标量。FFT长度必须为2的幂,范围为8 ~ 65,536。该值必须小于或等于FFT最大长度参数值。
为了支万博1manbetx持最小FFT长度为8,使用FFTLen数据类型必须为fixdt (0 k 0)
,在那里k大于等于4。
依赖关系
若要启用此端口,请设置OFDM参数源参数输入端口
.
数据类型:单
|双
|uint8
|uint16
|uint32
|无符号固定点
CPLen
—循环前缀长度
标量
循环前缀的长度,指定为0到范围内的标量FFTLen.
为了支万博1manbetx持最小FFT长度为8,使用CPLen数据类型必须为fixdt (0 k 0)
,在那里k大于等于4。
依赖关系
若要启用此端口,请设置OFDM参数源参数输入端口
.
数据类型:单
|双
|uint8
|uint16
|uint32
|无符号固定点
numLgSc
- OFDM符号左护载波数
标量
OFDM符号的左保护载波数,指定为0到()之间的标量。FFTLen/2) - 1。
为了支万博1manbetx持最小FFT长度为8,使用numLgSc数据类型必须为fixdt (0 k 0)
,在那里k大于等于2。
依赖关系
若要启用此端口,请设置OFDM参数源参数输入端口
.
数据类型:单
|双
|uint8
|uint16
|uint32
|无符号固定点
numRgSc
- OFDM符号右护载波数
标量
OFDM符号的右保护载波数,指定为0到()之间的标量。FFTLen/2) - 1。
为了支万博1manbetx持最小FFT长度为8,使用numRgSc数据类型必须为fixdt (0 k 0)
,在那里k大于等于2。
依赖关系
若要启用此端口,请设置OFDM参数源参数输入端口
.
数据类型:单
|双
|uint8
|uint16
|uint32
|无符号固定点
重置
-明确内部状态
标量
清除内部状态,指定为布尔标量。当此值为1
,该块停止当前计算并清除所有内部状态。
依赖关系
要启用此端口,请选择开启复位输入端口参数。
数据类型:布尔
winLen
-窗口长度
标量
用于重叠添加相邻OFDM符号的窗口长度,指定为范围为1到的标量最大窗口长度.
依赖关系
若要启用此端口,请设置OFDM参数源参数输入端口
.
数据类型:单
|双
|uint8
|uint16
|uint32
|无符号固定点
输出
数据
-调制输出数据
标量|列向量
调制输出数据,作为复值标量或列向量返回。此输出的数据类型取决于输入的数据类型数据端口。
当你设置OFDM参数源参数
财产
清除将蝴蝶输出除以二参数时,输出字长按对数递增2(FFT长度)位。当你设置OFDM参数源参数
输入端口
清除将蝴蝶输出除以二参数时,输出字长按对数递增2(FFT最大长度)位。
为避免溢出,请选择将蝴蝶输出除以二参数。
数据类型:单
|双
|int8
|int16
|int32
|有符号不动点
复数支持:万博1manbetx是的
有效的
—有效的输出数据
标量
指示作为标量返回的有效输出数据。
此端口是一个控制信号,用于指示何时启动数据输出端口有效。块将此值设置为1
当数据样本可用时数据输出端口。
数据类型:布尔
准备好了
—表示block已经就绪
标量
指示块已准备好,作为标量返回。
这是一个控制信号,指示块何时准备好接受新的输入数据。当此值为1
,块在下一个时间步中接受输入数据。当此值为0
时,块将忽略下一个时间步中的输入数据。
数据类型:布尔
参数
主要
OFDM参数源
—OFDM参数来源
财产
(默认)|输入端口
您可以通过输入端口或选择参数值来设置OFDM参数。
选择财产
要启用FFT长度,循环前缀长度,左警卫副载波数,右护卫子载波数参数。
选择输入端口
要启用FFTLen,CPLen,numLgSc,numRgSc输入端口和FFT最大长度参数。的FFT最大长度属性的有效值范围的上限FFTLen输入端口。
FFT最大长度
- FFT最大长度
64
(默认)| 2的幂,范围为8到65,536
指定FFT的最大长度。
依赖关系
若要启用此参数,请设置OFDM参数源参数输入端口
.
FFT长度
- FFT长度
64
(默认)| 2的幂,范围从8到65,536
指定FFT长度。
当你设置OFDM参数源参数财产
时,块使用FFT长度值为最大FFT长度。
依赖关系
若要启用此参数,请设置OFDM参数源参数财产
.
循环前缀长度
—循环前缀长度
16
(默认值)|整数,取值范围为0 ~FFT长度
指定循环前缀的长度。
依赖关系
若要启用此参数,请设置OFDM参数源参数财产
.
左警卫副载波数
- OFDM符号左端保护带子载波数
6
(默认值)|整数,取值范围为0 ~ (FFT长度/2) - 1
指定左保护子载波数。
依赖关系
若要启用此参数,请设置OFDM参数源参数财产
.
右护卫子载波数
- OFDM符号右端保护频带子载波数
5
(默认值)|整数,取值范围为0 ~ (FFT长度/2) - 1
指定右护卫子载波数。
依赖关系
若要启用此参数,请设置OFDM参数源参数财产
.
插入DC Null
—插入DC null选项
在
(默认)|从
选择此参数表示在直流子载波上插入空值。
开启复位输入端口
-复位信号
从
(默认)|在
选择此参数可启用重置输入端口。
窗口
-谱增长减少
从
(默认)|在
选择此参数可执行基于指定窗口长度减少光谱增长的窗口操作。清除此参数可禁用窗口操作。有关窗口的更多信息,请参见窗口.
窗口长度
-窗口长度
4
(默认值)|偶数,取值范围为1 ~循环前缀长度
指定重叠添加相邻OFDM符号的窗口长度。
依赖关系
若要启用此参数,请设置OFDM参数源参数财产
并选择窗口参数。
最大窗口长度
-窗口的最大长度
8
(默认)|整数,取值范围为1 ~CPLen
指定最大窗口长度。
依赖关系
若要启用此参数,请设置OFDM参数源参数输入端口
并选择窗口参数。
传输线参数
将蝴蝶输出除以二
-将FFT蝴蝶输出除二
在
(默认)|从
控件的伸缩选项传输线(DSP HDL工具箱)块内部的OFDM调制器块。
当选择此参数时,FFT总体实现1/N比例因子是将每只蝴蝶的输出再乘以二。这种调整使IFFT的输出保持在与其输入相同的振幅范围内。如果清除此参数,则在每次蝴蝶乘法之后,该块通过将字长增加一位来避免溢出。
舍入方法
-内部定点计算的舍入模式
地板上
(默认)|天花板
|收敛
|最近的
|轮
|零
此参数指定内部定点计算的舍入模式类型。有关舍入模式的详细信息,请参见舍入模式(DSP系统工具箱).当输入为任意整数数据类型或定点数据类型时,FFT算法使用定点算法进行内部计算。当输入为数据类型时,此参数不应用单
或双
.舍入适用于旋转因子乘法和缩放操作。
模型的例子
更多关于
指定矢量输入
的OFDM调制器Block接受使用公式计算的主动输入子载波FFT长度- (左警卫副载波数+右护卫子载波数+插入DC Null).在指定矢量输入时,如果活动输入子载波的数量不足以容纳数据样本的矢量长度,则必须对输入填充零以使其成为完整的矢量。例如,如果活动数据子载波的数量是62,向量长度是16,您可以指定在3个有效周期中的48个数据样本,并在第4个有效周期中指定剩余的14个数据样本,通过填充两个零来匹配向量长度16。如果活动数据子载波数为64,向量长度为16,则可以在4个有效周期内指定完整的数据样本。
块输出循环前缀长度+FFT长度样本数量。如果返回的输出数据样本不足以容纳向量长度,则块存储剩余的样本,并在下一个数据符号的第一个有效周期中将它们与数据样本一起输出。例如,如果要返回的数据样本数量为62,指定的向量长度为16,则块在3个有效周期中返回48个数据样本,存储剩余的14个数据样本并在下一个数据符号的第一个输出有效周期中输出。如果需要返回的数据样本个数为64,指定的向量长度为16,则block将在4个有效周期内返回数据样本。
示例1
对于大小为32的带块参数的向量输入FFT长度设置为64
,循环前缀长度设置为16
,左警卫副载波数设置为6
,右护卫子载波数设置为5
,插入DC Null设置为从
,该块接受53个活动数据子载波。
图中D1和D2表示有源数据子载波,Z表示填充零,S1和S2表示调制输出数据符号。
要提供53个矢量长度为32的活动数据子载波,需要两个周期。在这种情况下,必须将第一组数据样本作为D1(1:32)发送,将第二组数据样本作为D1(33:53)发送,并将剩余的样本用零Z(1:11)填充,以形成完整的向量。类似地,块根据块参数值处理D2。
块输出循环前缀长度+FFT长度样本数量,在本例中意味着80个数据样本。在图中,S1(1:16)包含添加的循环前缀,S1(17:80)包含第一个数据符号S1的数据样本,返回为S1(17:32), S1(33:64),其余16个数据样本S1(65:80)存储并返回于第二个数据符号S2的第一个有效周期。同理,block根据block参数值输出S2,如图所示。
示例2
对于大小为32的向量输入,使用块输入FFTLen,CPLen,numLgSc,numRgSc指定为128
,10
,28
,27
,分别在第一个有效高周期和与插入DC Null参数清除后,块接受73个活动数据子载波。
图中D1和D2表示有源数据子载波,Z表示填充零,S1和S2表示调制输出数据符号。
要提供73个矢量长度为32的活动数据子载波,需要三个周期。在这种情况下,必须将第一组数据样本作为D1(1:32)发送,将第二组数据样本作为D1(65:96)发送,将第三组数据样本作为D1(65:72)发送,并将其余样本用零Z(1:24)填充,以构成完整的向量。同样,块根据端口值处理D2。
块输出循环前缀长度+FFT长度样本数量,在本例中意味着138个数据样本。在图中,输出S1(1:10)包含添加的循环前缀,S1(11:138)包含第一个数据符号S1的数据样本,返回为S1(11:32), S1(33:64), S1(65:96), S1(97:128),其余10个数据样本S1(129:138)存储并返回于第二个数据符号S2的第一个有效周期。类似地,块根据图中所示的端口值输出S2。
算法
的OFDM调制器块操作序列使用这些块实现:就绪生成器,符号形成,样本中继器,IFFT, FFT移位器,下采样器,CP加法和窗口。对标量和矢量输入支持窗口特性。万博1manbetx图中显示的参数配置块的行为。
准备好了发电机
Ready Generator子系统通过基于这些输入OFDM参数(FFT长度、CP长度、左右保护载波数量以及DC空插入状态)计算活动数据子载波数量来控制输入数据样本。
当你设置OFDM参数源参数财产
,这些方程适用。
Nh=
装天花板
((FFT长度- (左警卫副载波数+右护卫子载波数+插入DC Null)) /vecLen)Nl=
装天花板
((FFT长度+循环前缀长度)) /vecLen) - - -Nh
当你设置OFDM参数源参数输入端口
,这些方程适用。
Nh=
装天花板
((FFTLen- (numLgSc+numRgSc+插入DC Null)) /vecLen)Nl=
装天花板
((FFT最大长度+CPLen)) /vecLen) - - -Nh
在这些方程中,
Nh是高准备时钟周期的数量
Nl低就绪时钟周期的数量
vecLen向量的长度是多少
该图显示了默认块配置的就绪信号生成(FFT长度=64
,循环前缀长度=16
,左警卫副载波数=6
,右护卫子载波数=5
而且插入DC Null=在
)使用标量输入。
该图显示了默认块配置的就绪信号生成(FFT长度=64
,循环前缀长度=16
,左警卫副载波数=6
,右护卫子载波数=5
而且插入DC Null=在
),输入四元素列向量。
符号的形成
该块存储输入有效的活动子载波数据,读取它,并通过将数据放在中心形成一个FFT长度的符号,并根据提供的左右保护子载波值的数量在符号的边缘保护子载波。
样本中继器
该块重复FFT长度的样本数量,直到形成最大FFT长度。对于这个操作,块首先缓冲输入样本,然后根据最大FFT长度值重复样本。这种重复机制有助于避免在FFT块输入时缩放。此块是可选的,仅当您设置OFDM参数源参数输入端口
.当你设置OFDM参数源参数财产
,块掩码中提供的FFT长度值被设置为最大FFT长度。在这个上下文中,块不需要重复示例。
例如,如果FFT长度为128,最大FFT长度为2048,则每个OFDM符号由128个样本组成。该块通过重复128个样本16次,将这128个样本转换为2048个样本。该块生成2048个数据样本后,向下一个块发送数据和有效输入信号。
传输线
IFFT块将频域信号转换为时域信号。该块支持FFT长度为万博1manbetx2的幂,范围从8到65,536。
的将蝴蝶输出除以二参数设置FFT是否实现总体1/N比例因子是将每只蝴蝶的输出再乘以二。这种调整使IFFT的输出保持在与其输入相同的振幅范围内。当你清除将蝴蝶输出除以二参数时,该块通过在每次蝴蝶乘法后将字长增加1位来避免溢出。
时域FFT移位器
通常,收发器在频域执行FFT移位。然而,这种方法需要内存,并引入与FFT大小相关的延迟。相反,收发器可以利用傅里叶变换的频移特性在时域内执行相同的操作。在一个定义域移动一个函数对应于在另一个定义域乘以一个复指数函数。为了减少硬件资源和延迟,该块通过将时域样本乘以复指数函数来执行FFT移位。
这些方程描述了FFT位移。a的方程N点FFT是
的FFT位移N/2个载波在任意方向,替换 ,导致
这个方程化简为
自 等于 , ,则方程化简为
最后的方程表明,时域中的FFT位移简化为乘以(-1)n.因此,该块通过将时域样本乘以+1或-1来实现FFT移位。
下采样器
这样就把样本的最大FFT长度数目降为样本的FFT长度数目。此块是可选的,仅当OFDM参数源参数设置为输入端口
.当OFDM参数源设置为财产
时,将块掩码中提供的FFT长度值视为最大FFT长度。因此,在这种情况下,没有必要降低样本的抽样。
例如,块的FFT长度为128,最大FFT长度为2048。这里,输入是2048个样本,它必须按FFT长度128进行下采样。每16个样本对应1个样本。
CP之外
循环前缀添加是将OFDM符号的最后一个样本作为前缀添加到每个OFDM符号的过程。这个图显示了一个OFDM符号的CP加法Nfft样品和CP样品NCP.
当OFDM调制器Block通过输入端口
选择,它使用FFT最大长度参数,以避免多个ifft。
窗口
加窗降低了OFDM信号的频谱再生,或相邻信道泄漏比(ACLR)。窗口是可选的,支持标量和矢量输入。万博1manbetx要启用窗口,请选择窗口参数。
这些块对cp添加的OFDM符号执行窗口操作。有关窗口的更多信息,请参见OFDM调制器基带块。
延迟
块的延迟随着输入类型的不同而不同:标量或向量。
的示例输出和延迟OFDM调制器块指定标量输入时,设置OFDM参数源参数财产
并对其他块参数使用默认设置。FFT长度设置为64
,循环前缀长度设置为16
,插入DC空状态设置为在
,左警卫副载波数而且右护卫子载波数设置为6
而且5
,分别。
在本例中,块的延迟计算公式如下:FFT长度- (左警卫副载波数+右护卫子载波数+插入DC空状态) +IFFTLatency+FFT长度+ 22,其中IFFTLatency的延迟传输线block表示指定的FFT长度,22为管道延迟数。
由此计算可知,该块的时延为311个时钟周期,如图所示。
属性时,此图显示了块的示例输出和延迟OFDM参数源参数输入端口
.在这个例子中,FFTLen设置为64
,CPLen设置为16
,插入DC空状态设置为在
,numLgSc而且numRgSc设置为6
而且5
,以及FFT最大长度设置为128
.
在本例中,块的延迟计算公式如下:FFTLen- (numLgSc+numRgSc+插入DC空状态) +FFT长度+IFFTLatency+FFT最大长度+ (FFT最大长度/FFTLen- 1) + 32,其中IFFTLatency的延迟传输线block表示指定的最大FFT长度,32是管道延迟数。
由此计算可知,该块的延迟时间为582个时钟周期,如图所示。
块只接受输入时准备好了信号是1
(高)。在这种情况下,块在输入时的第一个周期捕获参数有效的信号是1
(高)。
的示例输出和延迟OFDM调制器块指定八个元素的列向量输入时,请设置OFDM参数源参数财产
并对其他块参数使用默认设置。FFT长度设置为64
,循环前缀长度设置为16
,插入DC空状态设置为在
,左警卫副载波数而且右护卫子载波数设置为6
而且5
,分别。
在本例中,块的延迟计算公式如下:装天花板
((FFT长度- (左警卫副载波数+右护卫子载波数+插入DC空状态)) /vecLen) +vecIFFTLatency+装天花板
(FFT长度/vecLen) + 22,其中vecIFFTLatency的延迟传输线块为指定的FFT长度和向量长度,vecLen是向量的长度,22是管道延迟的数量。
由此计算可知,该块的延时为104个时钟周期,如图所示。
的示例输出和延迟OFDM调制器块时指定八个元素的列向量输入并设置OFDM参数源参数输入端口
.在这个例子中,FFTLen设置为64
,CPLen设置为16
,插入DC空状态设置为在
,numLgSc而且numRgSc设置为6
而且5
,以及FFT最大长度设置为128
.
在本例中,块的延迟计算公式如下:装天花板
((FFTLen- (numLgSc+numRgSc+插入DC空状态)) /vecLen) +FFTLen/vecLen+vecIFFTLatency+地板上
((FFT最大长度/FFTLen) * (vecLen- 1) /vecLen) +装天花板
(FFT最大长度/vecLen) - (FFT最大长度/FFTLen- 1) + 32,其中vecIFFTLatency的延迟传输线块为指定的最大FFT长度和向量长度,vecLen是向量的长度,32是管道延迟的数量。
这个计算表明块的延迟是160个时钟周期,如图所示。
块只接受输入时准备好了信号是1
(高)。在这种情况下,块在输入时的第一个周期捕获参数有效的信号是1
(高)。
性能
合成HDL代码的性能因目标和合成选项而异。本例中用于生成HDL代码的输入数据类型为fixdt(14) 1日16日
.
此表显示了在使用具有默认配置的块进行标量输入和八元素列向量输入时的资源和性能数据综合结果。生成的HDL是针对Xilinx的®Zynq®—7000 ZC706评估板。
输入数据 | 片附近地区 | 片寄存器 | 需求方 | 块公羊 | 最大频率(MHz) |
---|---|---|---|---|---|
标量 | 2389 | 4103 | 8 | 3. | 263.4 |
向量 | 12311 | 21705 | 56 | 16 | 236.3 |
参考文献
[1] 3GPP TS 36.211版本14.2.0发布14。“物理通道和调制。”LTE -演进通用地面无线电接入(E-UTRA).
[2]无线局域网介质访问控制(MAC)和物理层(PHY)规范。IEEE标准802.11 - 2012。
Stefania Sesia, Issam Toufik和Matthew baker。LTE - UMTS从理论到实践的长期演进.
Erik Dahlman, Stefan Parkvall和Johan Skold。4G - LTE/LTE -高级移动宽带第二版.
扩展功能
C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。万博1manbetx
此块支持Simulin万博1manbetxk的C/ c++代码生成万博1manbetx®加速器和快速加速器模式以及用于DPI组件生成。
HDL代码生成
使用HDL Coder™为FPGA和ASIC设计生成Verilog和VHDL代码。
HDL Coder™提供了影响HDL实现和合成逻辑的额外配置选项。
此块没有任何HDL块属性。
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。