以区域
生成真实的或复杂的正弦信号
库:
DSP HDL工具箱/信号操作
DSP HDL工具箱/来源
描述
的以区域块生成真实的或复杂的正弦信号,同时提供hardware-friendly控制信号。
数控振荡器(NCO)积累阶段增加和使用的量化输出蓄电池作为索引来查找表包含正弦波值。定点的环绕蓄电池和量化器的数据类型提供周期性的正弦波,并量化减少必要的表的大小对于一个给定的频率分辨率。
的例子如何生成正弦波使用区域块,明白了产生正弦波。有关配置和实现的更多信息,请参考算法部分。
块还提供这些特性:
可选的框架输出。
一个查找表压缩选项减少查找表的大小。这种压缩结果小于1 LSB损失精度。看到查找表的压缩为更多的信息。
一个可选的输入端口外部发抖。
一个可选的复位端口重置相位累加器的初始值。
一个可选的输出端口为当前NCO阶段。
例子
港口
请注意
这一块出现在来源库与相位增量来源参数设置为
财产
。唯一的输入端口有效的。这一块出现在信号操作库与相位增量来源参数设置为
输入端口
。这个配置显示可选的输入端口公司。
这个图标显示了可选的区域块的港口。
输入
公司- - - - - -相位增量
标量整数
相位增量,指定为一个标量整数。块投这个值以匹配蓄电池单词长度。
双
和单
数据类型支持模拟而不是HDL代金宝app码生成。
依赖关系
要启用这个端口,设置相位增量来源参数输入端口
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|fixdt ([], N, 0)
抵消- - - - - -相抵消
标量整数
相抵消,指定为一个标量整数。
双
和单
数据类型支持模拟而不是HDL代金宝app码生成。
依赖关系
要启用这个端口,设置相抵消源参数输入端口
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|fixdt ([], N, 0)
高频振动- - - - - -高频振动
整数|列向量的整数
优柔寡断,指定为一个整数或一个整数列向量。向量的长度必须相等样品每帧参数值。
双
和单
数据类型支持模拟而不是HDL代金宝app码生成。
依赖关系
要启用这个端口,设置高频振动源参数输入端口
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|fixdt ([], N, 0)
有效的- - - - - -控制信号,使区域操作
标量
控制信号,使区域操作,指定为一个布尔标量。当这个信号1
,块递增阶段,捕捉任何输入值。当这个信号0
,块相位累加器,无视任何输入值。
当样品每帧参数大于1
这个值允许的处理样品每帧样本。
数据类型:布尔
重置accum- - - - - -重置的蓄电池
标量
控制信号,重置蓄电池,指定为一个布尔标量。当这个信号1
、块重置蓄电池初始值。这个信号不重置输出样本的管道。
依赖关系
要启用这个端口,选择使蓄电池复位输入端口参数。
数据类型:布尔
输出
罪,因为实验- - - - - -生成的波形
标量|列向量
生成的波形,作为一个标量或返回一个列向量长度等于样品每帧参数值。可以是一个单独的端口,它返回的输出罪或因为返回值,一个单独的端口经验值价值观代表余弦+ j *正弦
或两个端口返回罪和因为值,分别。
当所有输入值定点类型或所有输入端口被禁用,块决定了输出类型使用输出数据类型参数。任何输入值是浮点类型时,忽略了输出数据类型参数。在这种情况下,块返回波形作为浮点值。浮点数据类型支持模拟而不是HDL代码生成。金宝app
依赖关系
默认情况下,这个输出端口是一个正弦波,罪。港标签和格式变化的基础上输出信号类型参数。
阶段- - - - - -当前阶段的区域
标量|列向量
NCO的当前阶段,作为一个标量或返回一个列向量长度等于样品每帧参数值。阶段是量子化的蓄电池的输出偏移和增值应用。如果量化是禁用的,这个端口返回的输出蓄电池抵消和增值应用。类型的值fixdt (1, N, 0)
,在那里N
是量化器累加器的位元数参数值。如果量化是禁用的N
是蓄电池字长参数值。
如果输入值是浮点类型,返回阶段作为一个浮点值。浮点数据类型支持模拟而不是HDL代码生成。金宝app
依赖关系
要启用这个端口,选择使阶段港口参数。
数据类型:单
|双
|fixdt (1, N, 0)
有效的- - - - - -显示输出数据的有效性
标量
控制信号显示输出数据的有效性,作为一个布尔返回标量。当输出有效的是1
上的值罪,因为,经验值,阶段港口是有效的。当输出有效的是0
,输出端口上的值是无效的。
当样品每帧参数大于1
,这个信号表明输出向量中的所有元素的有效性。
数据类型:布尔
参数
主要
请注意
此块支持金宝app双
和单
输入模拟而不是HDL代码生成。当所有输入值定点类型或所有输入端口被禁用,块决定了输出类型使用输出数据类型参数。任何输入值是浮点类型时,忽略了输出数据类型参数。在这种情况下,块返回波形和可选阶段作为浮点值。
使用定点设计师™数据类型覆盖特性,您可以获得一个双
输出值的应用双
输入数据的一个可选的港口。
相位增量来源- - - - - -相位增量的来源
输入端口
(默认)|财产
你可以设置相位增量与一个输入端口或通过输入参数的值。如果您选择财产
,相位增量参数出现输入一个值。如果您选择输入端口
,公司港口出现在块中。
相位增量- - - - - -对生成的波形相位增量
One hundred.
(默认)|整数
相位增量为生成的波形,指定为一个整数。块投这个值以匹配蓄电池单词长度。
依赖关系
要启用该参数,设置相位增量来源参数财产
。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
|fixdt ([], N, 0)
相抵消源- - - - - -源的相位偏移量
输入端口
(默认)|财产
你可以用一个输入端口设置相抵消或通过输入参数的值。如果您选择财产
,相抵消参数出现输入一个值。如果您选择输入端口
,抵消港口出现在块中。
相抵消- - - - - -对生成的波形相抵消
0
(默认)|整数
生成的波形相抵消,指定为一个整数。
依赖关系
要启用该参数,设置相抵消源参数财产
。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
|fixdt ([], N, 0)
高频振动源- - - - - -发抖的比特数
财产
(默认)|输入端口
|没有一个
你可以从一个输入端口设置抖动或参数。如果您选择财产
,优柔寡断的比特数参数出现。如果您选择输入端口
港口出现在块中。如果您选择没有一个
块不加犹豫。
优柔寡断的比特数- - - - - -位用来表达发抖
4
(默认)|正整数
优柔寡断的比特数,指定为一个正整数。
依赖关系
要启用该参数,设置高频振动源参数财产
。
样品每帧- - - - - -向量的大小对框架的输入和输出
1
(默认)|正整数
当你将这个值设置为1
,阻止标量的输入和输出。当这个值大于1
,高频振动港预计一个列向量的长度样品每帧和罪,因为,经验值,阶段港口返回列向量的长度样品每帧。
使蓄电池复位输入端口- - - - - -启用复位控制信号
从
(默认)|在
选择启用该参数重置accum端口。当重置accum是1
、块重置蓄电池初始值。
输出信号类型- - - - - -格式的输出波形
正弦
(默认)|余弦
|复指数
|正弦和余弦
如果您选择正弦
或余弦
块显示,适用的港口,罪或因为。如果您选择复指数
的输出形式余弦+ j *正弦
和端口标记经验值。如果您选择正弦和余弦
块显示了两个港口,罪和因为。
当你设置输出信号类型参数复指数
或正弦和余弦
块实现了1/8正弦波查找表为每个波形的正弦和余弦的部分,并使用控制逻辑选择和转化生成的值正弦和余弦波形。这种优化意味着双重输出模式使用相同的硬件资源相对于单一输出模式。
使阶段港口- - - - - -输出电流相位
从
(默认)|在
选择这个参数返回当前NCO的阶段阶段端口。阶段是量子化的蓄电池的输出,抵消和增值应用。如果量化是禁用的,这个端口返回的输出蓄电池,抵消和增值应用。
数据类型
舍入模式- - - - - -舍入为定点操作模式
地板上
(默认)
舍入模式为定点操作。舍入模式是一个只读参数与价值地板上
。
溢出模式- - - - - -溢出为定点操作模式
包装
(默认)
溢出模式为定点操作。溢出模式是一个只读参数。定点数字环绕溢出。
蓄电池数据类型- - - - - -蓄电池数据类型
二进制扩展点
(默认)
蓄电池数据类型描述。这个参数是只读的,价值二进制扩展点
。块定义了定点数据类型使用蓄电池签署,蓄电池字长,蓄电池部分的长度参数。
蓄电池签署- - - - - -签署或无符号累加器的数据格式
签署
(默认)
这个参数是只读的。签署所有输出格式。
蓄电池字长- - - - - -蓄电池字长
16
(默认)|整数
单位是比特。这个值必须包括符号位。
如果你清楚数字转换阶段参数,那么蓄电池字长确定的尺寸。对HDL代码生成的大小必须在2和2之间17条目。当您选择使查找表压缩方法,该参数必须是一个整数范围内(5,21)。当你清楚使查找表压缩方法,该参数必须是一个整数范围内(3、19)。更多信息关于这个参数影响的大小,看到算法部分。
当您选择数字转换阶段参数,没有限制蓄电池字长参数值。
蓄电池部分的长度- - - - - -蓄电池部分的长度
0
(默认)|整数
这个参数是只读的。蓄电池分数是零位长度。
蓄电池作用于整数。如果相位增量fixdt
类型与小数部分,块返回一个错误。
数字转换阶段- - - - - -数字转换积累阶段
从
(默认)|在
当您选择数字转换阶段,块量化相位累加器的结果,一个固定的位宽。块使用这个量化的值来选择一个波形查找表的值。量化相位累加器的输出使您能够降低查找表的大小,而不降低的频率分辨率。选择使用的查找表的大小量化器累加器的位元数参数。
当你清楚数字转换阶段,阻止使用完整的累加值作为查找表的地址。
量化器累加器的位元数- - - - - -量化器累加器的位元数
12
(默认)|整数
量化器累加器的位元数,指定为一个整数标量低于蓄电池单词长度。HDL代码生成,这个参数的值必须导致附近地区大小2 - 217条目。当您选择使查找表压缩方法,该参数必须是一个整数范围内(5,21)。当你清楚使查找表压缩方法,该参数必须是一个整数范围内(3、19)。更多信息关于这个参数影响的大小,看到算法部分。
依赖关系
要启用该参数,选择数字转换阶段参数。
输出数据类型- - - - - -输出数据类型
二进制扩展点
(默认)|双
|单
指定的数据类型罪,因为,经验值港口。将忽略此参数如果任何输入浮点类型。在这种情况下,输出数据类型是浮点。
如果您选择二进制扩展点
块定义了定点数据类型使用输出了,输出字长,输出部分的长度参数。
输出了- - - - - -签署或无符号输出数据格式
签署
(默认)
这个参数是只读的。签署所有输出格式。
输出字长- - - - - -输出字长
16
(默认)|整数
单位是比特。这个值必须包括符号位。
输出部分的长度- - - - - -输出部分的长度
14
(默认)|整数
单位是比特。
算法
正弦波的频率分辨率取决于蓄电池的大小。给定一个样本,T年代和所需的输出频率的分辨率Δf,计算所需的蓄电池单词长度,N。
对于一个想要的输出频率Fo,计算相位增量。
量化相位累加器的输出使您能够降低查找表的大小,而不降低的频率分辨率。计算量化字长来实现所需的伪自由动态范围(SFDR)。
相位偏移和抖动是有选择地添加在蓄电池阶段。所需的相位偏移(弧度)的输出波形,计算相抵消值块蓄电池补充道。
NCO的实现取决于你选择使查找表压缩方法。
没有查找表压缩,块使用相同的quarter-sine查找表以区域块。附近地区的大小是2问2×W位,问是量化器累加器的位元数和W是输出字长。
块投相位增量值以匹配蓄电池单词长度。
如果你不让数字转换阶段,然后问=N,在那里N是蓄电池字长。考虑到影响模拟器内存和硬件资源,当你选择这些参数。
当你设置输出信号类型参数复指数
或正弦和余弦
块实现了1/8正弦波查找表为每个波形的正弦和余弦的部分,并使用控制逻辑选择和转化生成的值正弦和余弦波形。这种优化意味着双重输出模式使用相同的硬件资源相对于单一输出模式。
的例子如何生成正弦波使用区域块,明白了产生正弦波。
查找表的压缩
词根当您选择查找表(LUT)压缩以区域块适用于桑德兰压缩方法。桑德兰技术使用三角恒等式季度正弦波的每个阶段划分为三个组件并将其表示为:
如果quarter-sine阶段问2
位,然后阶段组件一个和B有一个词的长度拉=磅=装天花板((问2)/ 3)
。阶段组件C包含位剩下的阶段。如果阶段有12位,那么这个季度正弦相位有10位,和组件被定义为:
一个,这四个最重要的部分
B,接下来的四位
C,剩下的两个最低有效位
相对大小的A、B和C,可以近似方程:
的以区域块实现这个方程与一个附近地区 和一个附近地区 。第二项是一个很好的校正因子,可以截断少位不失精度。因此,第二个返回一个四位的结果。
使用默认蓄电池16位的大小,和默认的宽度为12位量化阶段,附近地区使用28×16 + 26×4位(4.5 kb)。相比之下,一个quarter-sine查找表不压缩使用210×16位(16 kb)。压缩近似是准确的在一个LSB,导致至少60 dB在输出的信噪比。看到[1]。
当你设置类型的输出参数复指数
或正弦和余弦
块实现了压缩查找表为每个波形的正弦和余弦部分。硬件资源的使用仍小于双输出模式与一个未压缩的表。
控制信号
块有两个输入控制信号,重置accum(可选),有效的,和一个输出控制信号,有效的。当重置accum是1
块设置相位累加器,其初始值。当输入有效的是1
,块递增阶段,捕捉任何输入值。当这个信号0
,块相位累加器,无视任何输入值。当输出有效的信号是1
,其他的输出端口上的值是有效的。
延迟
NCO的延迟块6个周期。
性能
此表显示了生成的HDL代码post-synthesis资源利用的区域块产生正弦波的例子。Xilinx的综合目标®佐- 706 (XC7Z045ffg900-2) FPGA。
资源 | 使用 |
---|---|
附近地区 | 744年 |
片注册 | 156年 |
Xilinx LogiCORE DSP48 | 0 |
地点和路线后,设计的最高时钟频率为477 MHz。
引用
[1]Cordesses, L。,"Direct Digital Synthesis: A Tool for Periodic Wave Generation (Part 1)."IEEE信号处理杂志。问题4卷21日,2004年7月,页50 - 54。
扩展功能
C / c++代码生成
使用仿真软件生成C和c++代码®编码器™。金宝app
此块支持C / c++金宝app代码生成模型金宝app®加速器加速器和快速模式和DPI组件生成。
HDL代码生成
生成FPGA和ASIC设计的Verilog和VHDL代码使用HDL编码器™。
影响高密度脂蛋白HDL编码器™提供了额外的配置选项和合成逻辑实现。
这一块有一个默认的HDL的架构。
ConstrainedOutputPipeline | 寄存器的数量在输出中通过移动现有的延迟你的设计。分布式流水线不重新分配这些寄存器。默认值是 |
InputPipeline | 数量的输入管道阶段生成的代码插入。分布式流水线和限制输出管道可以移动这些寄存器。默认值是 |
OutputPipeline | 数量的输出管道阶段生成的代码插入。分布式流水线和限制输出管道可以移动这些寄存器。默认值是 |
当您设置高频振动源来
财产
,每循环块添加随机抖动。如果你用这些设置生成验证模型,显示一个警告。随机产生的内部高频振动会导致模型之间的不匹配。你可以增加的误差验证相比,占的区别。你也可以禁用优柔寡断或设置高频振动源来输入端口
为了避免这个问题。你不能使用在一个区域的块复位同步子系统(高密度脂蛋白编码器)。
版本历史
介绍了R2013aR2022a:搬到DSP HDL工具箱从DSP系统工具箱
R2022a之前,这一块名叫NCO HDL优化并包含在DSP系统工具箱™DSP系统工具箱HDL的支持金宝app图书馆。
R2022a:资源优化双输出模式
当你设置输出信号类型参数复指数
或正弦和余弦
,这个块实现了一个1/8正弦波查找表为每个波形的正弦和余弦的部分,并使用控制逻辑选择和转化生成的值正弦和余弦波形。这种优化意味着双重输出模式使用硬件资源类似于单输出模式。在以前的版本中,块实现了一个为每个输出波形查找表。
R2020a:需要有效的输入端口
在以前的版本中,输入validIn端口是可选的。现在需要和重命名有效的。如果您使用任何其他输入端口,块使用有效的作为一个启动信号的信号。
R2020a:阶段为浮点量化输入
从浮点返回的输出波形输入值已经改变了。现在的输出波形匹配返回的波形相同输入值中指定的定点类型。
R2020a之前,当使用浮点输入类型,内部块没有数字转换阶段。预计块浮点增量和抵消输入阶段中指定的弧度。内部块数字转换阶段,您必须指定的输入相位增量和抵消量化大小、浮点和定点输入类型。
例如,R2020a之前,一个浮点HDL NCO生成输出样本的期望输出频率F0和采样频率F年代,你必须指定阶段增加为2π(F0/F年代)和相位偏移量为π/ 2。
从R2020a开始,您必须指定相位增量和相位偏移的量子化的大小,N。这些输入值是一样的输入值您使用定点类型。相位增量指定为(F0×2N)/F年代和相位偏移(π/ 2)×2N/ 2π,或2N/ 4。
R2020a:LUTRegisterResetType选项删除
在以前的版本中,你可以选择两个选项LUTRegisterResetType的参数高密度脂蛋白块属性对话框。这两个选项默认的
和没有一个
。从R2020a块忽略了参数设置和使用没有一个
这个参数值。这个选项不连接的寄存器的复位信号。这种配置使合成工具实现查找表来确定与附近地区或布拉姆。
R2020a:高通量的接口
你可以从块生成的波形不定位。块返回向量中每个元素代表一个样本。设置样品每帧参数所需的输出向量的大小。
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。