生成真实的或复杂的正弦signals-optimized HDL代码生成
高密度脂蛋白NCO系统对象™生成真实的或复杂的正弦信号,同时提供hardware-friendly控制信号。对象使用相同的阶段积累和查找表算法在区域中实现系统对象。对象使用量化的整数积累创建一个正弦曲线信号。
高密度脂蛋白NCO系统对象提供了这些功能。
可选的框架输出。
一个查找表压缩选项减少查找表的大小。这种压缩结果小于1 LSB损失精度。看到查找表的压缩为更多的信息。
一个可选的输入参数为外部发抖。
一个可选的重置认为重置相位累加器的初始值。
一个可选的输出参数为当前NCO阶段。
给定一个样本,T年代期望的输出频率的分辨率,Δf大小,计算所需的蓄电池 。
假设你想要的输出频率Fo远低于奈奎斯特频率,你可以使用一个近似的每一点噪音分贝,基于伪自由动态范围(SFDR),确定有多少你可以量化蓄电池的输出。达到指定的量化字长SFDR是 。
对于一个想要的输出频率Fo,计算相位增量使用 ,在那里Nacc是量子化的蓄电池单词长度。您可以指定阶段增加使用一个属性或一个输入参数。
鉴于所需的相位偏移(弧度),计算相抵消使用 。您可以指定相抵消使用一个属性或一个输入参数。
生成真实的或复杂的正弦信号:
创建dsp.HDLNCO
对象并设置其属性。
调用对象的参数,就好像它是一个函数。
了解更多关于系统对象是如何工作的,看到的系统对象是什么?。
创建一个数控振荡器(NCO)系统对象,hdlnco
= dsp.HDLNCOhdlnco
,生成一个真实的或复杂的正弦信号。生成的信号的振幅总是1。
设置使用一个或多个属性名称-值对。在单引号附上每个属性的名字。例如,hdlnco
= dsp.HDLNCO (名称,值
)
hdlnco = dsp.HDLNCO (“NumQuantizerAccumulatorBits”,12,…“AccumulatorWL”, 16);
创建一个区域的hdlnco
= dsp.HDLNCO (公司
、“PhaseIncrementSource”、“房地产”)PhaseIncrement
属性设置为公司
,一个整数标量。使用PhaseIncrement属性,设置PhaseIncrementSource财产“属性”
。您可以添加其他名称,值
对之前或之后PhaseIncrementSource
。
对象返回的波形值,Y
作为一个正弦值,一个余弦值,复指数的值,或正弦、余弦
)的值,根据波形财产。
(
返回一个波形,Y
,ValidOut
)= hdlnco (ValidIn
)Y
使用波形参数属性,而不是输入参数。
使用这个语法,设置PhaseIncrementSource,PhaseOffsetSource,DitherSource属性“属性”
。这些属性是相互独立的。例如:
hdlnco = dsp.HDLNCO (“PhaseIncrementSource”,“属性”,…“PhaseIncrement”phIncr,…“PhaseOffset”phOffset,…“NumDitherBits”4)
(
返回一个波形,Y
,ValidOut
)= hdlnco (公司
,抵消
,高频振动
,ValidIn
)Y
相位增量,公司
相抵消,抵消
优柔寡断,高频振动
。
这个语法适用于当你设置PhaseIncrementSource,PhaseOffsetSource,DitherSource属性输入端口的
。这些属性是相互独立的。你可以混合和匹配的激活这些参数。PhaseIncrementSource
是输入端口的
默认情况下。例如:
hdlnco = dsp.HDLNCO (“PhaseOffsetSource”,输入端口的,…“DitherSource”,输入端口的)为k = 1:1 / Ts y (k) = hdlnco (phIncr, phOffset ditherBits,真的);结束
(___)= hdlnco (___,
重置累加器的值,但没有复位输出样本的管道。如果ResetAccum
,ValidIn
)ValidIn
是真正的
,那么对象继续生成输出波形从重置累加值。
使用这个语法,设置ResetAction财产1
(真正的
)。这个语法可以包括任何从其他语法的参数。
使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj
使用这个语法:
发行版(obj)
[1]Cordesses, L。,"Direct Digital Synthesis: A Tool for Periodic Wave Generation (Part 1)."IEEE信号处理杂志。问题4卷21日,2004年7月,页50 - 54。