编码器支持HDL代码金宝app生成直接形成FIR多相采样率转换器。dsp。FIRRateConverter
是一种结合了插值因子和抽取因子的多速率滤波器结构。这种组合使您能够对输入信号执行分数插值或抽取。
内插因子(l
)及抽取系数(米
)中指定为整数的多相样本速率转换器InterpolationFactor
和DecimationFactor
的属性dsp。FIRRateConverter
系统对象™。这段代码构造了一个重采样比率为5/3的对象:
frac_cvrter = dsp。FIRRateConverter (“InterpolationFactor”5,...“DecimationFactor”3)
分数率重采样可以看作是一个两步的过程:通过因子插值l
,然后是因式抽取米
.对于重采样比为5/3的对象,使用五路多相滤波器将采样率提高到原来的5倍。重采样开关然后将新速率降低到原来的3倍。这个过程为每3个输入样本抽取5个输出样本。
有关此筛选器结构的一般信息,请参见dsp。FIRRateConverter
DSP System Toolbox™文档中的参考页。
该信号流为dsp。FIRRateConverter
滤波器类似于多相FIR插值器(dsp。FIRInterpolator
).延迟线是在处理所需的多相系数集合后,传送每一个输入。
该图表说明了的HDL实现的时间dsp。FIRRateConverter
.时钟允许输入(ce_in
)表示有效的输入样本。输出数据和时钟使输出(ce_out
),同时产生和交付,这导致一个非周期性的输出。
处理硬件逻辑所需的时钟速率与输入速率相关如下:
装天花板(InterpolationFactor / DecimationFactor)
对于5/3的重采样率,时钟速率为装天花板(5/3)= 2
,或输入采样率的两倍。输入每隔一个时钟周期发送一次。输出是在产生时交付的,因此是非周期性的。
请注意
当生成的代码或硬件逻辑被部署时,输出必须被纳入FIFO设计,输出以期望的采样率出现。
生成的HDL实体或模块dsp。FIRRateConverter
Filter有一个输入和两个输出时钟使能端口:
时钟使能输出:默认时钟使能输出端口名称为ce_out
.这个信号表明输出数据样本何时有效。与其他多速率过滤器一样,您可以使用时钟使能输出端口场的全局设置>港口选项卡来指定端口名称。或者,您可以使用ClockEnableOutputPort
属性中设置端口名称generatehdl
命令。
该过滤器还通过时钟启用输入到一个名为ce_in
.该信号指示对象何时接受了输入样本。您可以使用此信号来控制上游数据流。不能自定义此端口名称。
时钟使能输入:默认时钟使能输入端口名称为clk_enable
.这个信号指示输入数据样本何时有效。你可以使用时钟使能输入端口场的全局设置选项卡来指定端口名称。或者,您可以使用ClockEnableInputPort
属性中设置端口名称generatehdl
命令。
生成的测试台以正确的速率应用测试向量,然后观察并验证输出是否可用。测试工作台使用输入和输出时钟使能来控制数据流。
下面的示例构造一个固定点dsp。FIRRateConverter
对象的重采样率为5/3,并生成VHDL滤波器代码。当您为System对象生成HDL代码时,请指定输入定点数据类型。对象根据输入类型和属性设置确定内部数据类型。
frac_cvrter = dsp。FIRRateConverter (“InterpolationFactor”5,“DecimationFactor”3) generatehdl (frac_cvrter“InputDataType”numerictype(15) 1, 16日)
###生成:H:\hdlsrc\filter成功完成VHDL代码生成过程:filter ### HDL latency是2个样本
不支持以下代码生成选项金宝appdsp。FIRRateConverter
过滤器:
使用流水线登记册(AddPipelineRegisters
)
分布式算术体系结构(DARadix
和(DALUTPartition
))
全串行或部分串行体系结构(SerialPartition
和ReuseAccum
)
多个时钟输入(ClockInputs
)