分组滤波器与传统过滤器不同,因为除了信号输入之外,它还具有分数延迟输入。分数延迟输入使得能够在过滤器操作时使用时变延迟。分数延迟输入接收从0到1.0的值接收的信号。有关一般信息如何构建和使用Farrow过滤器对象,请参阅DSP System Toolbox™文档。
您可以从这些对象和结构中生成单速率分割过滤器的HDL代码:
dsp.variableFractiondElay.
System Object™
dfilt.farrowfd.
过滤结构
dfilt.farrowlinearfd.
过滤结构
编码器提供generatehdl.
让您提供的属性和等效UI选项:
定义生成代码中使用的分数延迟端口名称。
将各种测试台刺激信号应用于分数延迟端口,或定义自己的刺激信号。
过滤器设计器不支持Farrow滤波器的设计或导入。金宝app要为Farrow过滤器生成HDL代码,请使用以下方法之一:
使用matlab.®命令行创建一个伪波筛选对象。启动代码生成,并设置与源相关的属性。看Farrow滤波器的代码生成属性。
使用MATLAB命令行创建一个Farrow过滤器对象。然后将此对象传递给fdhdltool.
。
例如,这些命令创建了一个伪劣的分数延迟系统对象,Farrowfilt.
并将它传递给fdhdltool.
,以及其输入和分数延迟数据类型。
farrowfilt = dsp.variableFractiondeDelay('InterpolationMethod'那'farrow');InputDatatype = Numerictype(1,18,17);fddatatype = numerictype(1,8,7);fdhdltool(farrowfilt,inputdatatype,fddatatype);
这fdhdltool.
工具打开“生成HDL”对话框。看Farrow过滤器的UI选项有关更多信息,如何在对话框中设置属性。
采用过滤织机
设计一个分法(分数延迟)过滤器对象。在“过滤器构建器”对话框中,选择代码生成标签。要打开Generate HDL对话框,请单击生成HDL.。
看Farrow过滤器的UI选项有关更多信息,如何在“生成HDL”对话框中设置属性。
使用Farrow过滤器打开生成HDL对话框时,编码器会禁用某些选项或将它们设置为固定默认值。受影响的选项是:
建筑学。编码器将此选项设置为其默认值(完全平行
)并禁用它。
时钟输入。编码器将此选项设置为其默认值(单身的
)并禁用它。
Farrow过滤器代码生成支持以下属性:金宝app
Fracdelayport.
(字符向量)。此属性指定生成代码中的分数延迟端口的名称。默认名称是'filter_fd'
。在以下示例中,名称'fractionaldelay'
分配给分数延迟端口。
farrowfilt = dsp.variableFractiondeDelay('InterpolationMethod'那'farrow');generatehdl(farrowfilt,'inputDatatype',numerictype(1,18,17),......'fractionaldelaydatype',numerictype(1,8,7),......'fracdelayport'那'fractionaldelay');
testbenchfracdelaystumulus.
(字符向量)。此属性指定应用于测试台码中的分数延迟端口的刺激信号。
缺省情况下,内部常量值应用于分数延迟端口。要使用默认值,请留下testbenchfracdelaystumulus.
属性未指定,或通过空字符向量(''
):
farrowfilt = dsp.variableFractiondeDelay('InterpolationMethod'那'farrow');generatehdl(farrowfilt,'inputDatatype',numerictype(1,18,17),......'fractionaldelaydatype',numerictype(1,8,7),......'generatehdltestbench'那'在');
或者,您可以指定出现以下类型的刺激向量:
'randsweep'
:0到1之间的随机值的向量。此刺激信号的持续时间与滤波器相同,但以较慢的速率变化。从向量中获得的每个分数延迟值保持输入信号总持续时间的10%。例如:
farrowfilt = dsp.variableFractiondeDelay('InterpolationMethod'那'farrow');generatehdl(farrowfilt,'inputDatatype',numerictype(1,18,17),......'fractionaldelaydatype',numerictype(1,8,7),......'generatehdltestbench'那'在'那......'testbenchfracdelaystimulus'那'randsweep');
'rampsweep'
:逐渐增加的值矢量从0到1的范围内增加。该刺激信号的持续时间与过滤器的输入相同,但速度较慢的变化。从向量中获得的每个分数延迟值保持输入信号总持续时间的10%。
用户定义的刺激矢量。您可以传递向量以定义自己的刺激。例如:
farrowfilt = dsp.variableFractiondeDelay('InterpolationMethod'那'farrow');mytestv = [0.5 * one(1,512),0.2 * on(1,513)];generatehdl(farrowfilt,'inputDatatype',numerictype(1,18,17),......'fractionaldelaydatype',numerictype(1,8,7),......'generatehdltestbench'那'在'那......'testbenchstimulus',{'chirp'},......'testbenchfracdelaystimulus',mytestv);
笔记
用户定义的分数延迟刺激信号必须具有与测试台信号相同的长度。如果两个信号没有相同的长度,则测试台面生成终止于错误消息。错误消息显示信号长度。例如:
farrowfilt = dsp.variableFractiondeDelay('InterpolationMethod'那'farrow');mytestv = [0.5 * one(1,512),0.2 * on(1,513)];generatehdl(farrowfilt,'inputDatatype',numerictype(1,18,17),......'fractionaldelaydatype',numerictype(1,8,7),......'generatehdltestbench'那'在'那......'testbenchstimulus',{'chirp''噪音'},......'testbenchfracdelaystimulus',mytestv);
使用HDLFilter.AbstractFarrow / GenVecDataForFarrow错误的Fracdelay(1025)和输入(2050)的指定向量的长度不匹配。
过滤器设计HDL Coder™UI提供了生成Farrow过滤器代码的选项。这些选项对应于所描述的属性Farrow滤波器的代码生成属性。
笔记
The Farrow filter options are displayed only when a Farrow filter is selected for HDL code generation.
Farrow过滤器代码生成支持以下属性:金宝app
在“生成HDL”对话框中,在“全局设置>端口标签,分数延迟港口指定生成代码中的分数延迟端口的名称。默认名称是filter_fd.
。
在“生成HDL”对话框中,在“测试台>刺激标签,使用分数延迟刺激选择刺激信号。该信号应用于生成的测试台中的分数延迟端口。
使用分数延迟刺激选择生成的代码中的刺激信号类型:
从过滤器获取值(默认)。内部常数值应用于分数延迟端口。
斜坡扫。从0到1的范围内递增的值的矢量与滤波器的输入相同,但速度与滤波器相同,但速率较慢。从向量中获得的每个分数延迟值保持输入信号总持续时间的10%。
随机扫描。随机值的向量0和1之间的随机值与滤波器的输入相同,但速度较慢的变化。从向量中获得的每个分数延迟值保持输入信号总持续时间的10%。
用户自定义。选择此选项时,该选项用户定义的刺激框已启用。您可以输入一个向量来定义自己的刺激,如下图所示: