主要内容

多相采样率转换器

代码生成多相采样率转换器

编码器支持HDL代码金宝app生成直接形成FIR多相采样率转换器。dsp。FIRRateConverter是一种结合了插值因子和抽取因子的多速率滤波器结构。这种组合使您能够对输入信号执行分数插值或抽取。

内插因子(l)及抽取系数()中指定为整数的多相样本速率转换器InterpolationFactorDecimationFactor的属性dsp。FIRRateConverter系统对象™。这段代码构造了一个重采样比率为5/3的对象:

frac_cvrter = dsp。FIRRateConverter (“InterpolationFactor”5,...“DecimationFactor”3)

分数率重采样可以看作是一个两步的过程:通过因子插值l,然后是因式抽取.对于重采样比为5/3的对象,使用五路多相滤波器将采样率提高到原来的5倍。重采样开关然后将新速率降低到原来的3倍。这个过程为每3个输入样本抽取5个输出样本。

有关此筛选器结构的一般信息,请参见dsp。FIRRateConverterDSP System Toolbox™文档中的参考页。

多相采样速率转换器的HDL实现

信号流、延迟和定时

该信号流为dsp。FIRRateConverter滤波器类似于多相FIR插值器(dsp。FIRInterpolator).延迟线是在处理所需的多相系数集合后,传送每一个输入。

该图表说明了的HDL实现的时间dsp。FIRRateConverter.时钟允许输入(ce_in)表示有效的输入样本。输出数据和时钟使输出(ce_out),同时产生和交付,这导致一个非周期性的输出。

时钟频率

处理硬件逻辑所需的时钟速率与输入速率相关如下:

装天花板(InterpolationFactor / DecimationFactor)

对于5/3的重采样率,时钟速率为装天花板(5/3)= 2,或输入采样率的两倍。输入每隔一个时钟周期发送一次。输出是在产生时交付的,因此是非周期性的。

请注意

当生成的代码或硬件逻辑被部署时,输出必须被纳入FIFO设计,输出以期望的采样率出现。

时钟使港口

生成的HDL实体或模块dsp。FIRRateConverterFilter有一个输入和两个输出时钟使能端口:

  • 时钟使能输出:默认时钟使能输出端口名称为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过滤器: