主要内容

designMultistageInterpolator

多级插入器设计

自从R2018b

描述

C= designMultistageInterpolator (l)设计了一种多级插入器整体插值系数l。为了让C多级,l不能一个质数。有关详细信息,请参见算法。设计过程可能需要一段时间,如果l有许多因素。

例子

C= designMultistageInterpolator (l,Fs,太瓦)设计了一种多级插入器的采样率Fs和一个过渡的宽度太瓦。采样率在本例中是指输出信号的采样率在多级插入器之后。

多级插入器的截止频率Fs/ (2l)。

例子

C= designMultistageInterpolator (l,Fs,太瓦,Astop)指定的最小衰减Astop数据库的设计。

例子

C= designMultistageInterpolator (___,名称,值)指定额外使用一个或多个名称-值对参数设计参数。

例子:C = designMultistageInterpolator(48、48000、200、80年,“NumStages”、“汽车”)设计了一种多级插入器每个输入样本的乘法数最少的(mpi)。

例子

全部折叠

设计一个单级插入器使用designMultirateFIR函数和多级插入器使用designMultistageInterpolator函数。确定两个设计使用的效率成本函数。实现效率的特点是两个成本指标:NumCoefficientsMultiplicationsPerInputSample

计算的成本实现设计,和确定哪些设计更有效率。做一个比较,设计的过滤器,这样他们的过渡宽度是相同的。

初始化

选择一个插值系数48、输入采样率为30.72 MHz,片面的带宽100 kHz,和阻带attenution 90 dB。

L = 48;鳍= 30.72 e6;Astop = 90;BW = 1 e5;

使用designMultirateFIR函数

设计插值滤波器使用designMultirateFIR函数产生一个单级设计。设定half-polyphase长度为一个有限的整数,在这种情况下4。

HalfPolyLength = 4;b = designMultirateFIR (L, 1 HalfPolyLength Astop);d = dsp.FIRInterpolator (L, b)
d = dsp。FIRInterpolator属性:InterpolationFactor: 48 NumeratorSource:“财产”分子:[0 -6.0692 -4.0313 -2.5889 -1.4587 e-06 e-05 e-05 e-05 -5.8200 -2.1086 -1.7091 -1.3594 -1.0570 -7.9886 e-05 e-05 e-04 e-04 e-04 e-04 -2.5603 e-04 -3.0658 e-04 -3.6267 -7.2627 -6.4280 -5.6453 -4.9166 -4.2436 e-04 e-04 e-04 e-04 e-04 e-04……)显示所有属性

计算实现插入器的成本。插值滤波器需要376系数和7个州。乘法的数量每输入样本和添加输入样本是376和329,分别。

成本(d)
ans =结构体字段:NumCoefficients: 376 NumStates: 7 MultiplicationsPerInputSample: 376 AdditionsPerInputSample: 329

使用designMultistageInterpolator函数

设计一个多级插入器与单级过滤器规格相同的设计。计算过渡宽度使用以下关系:

Fc =鳍/ (2 * L);TW = 2 * (Fc-BW);

默认情况下,由数量的阶段NumStages参数设置为“汽车”产生最优的设计,试图减少乘法/输入样本的数量。

c = designMultistageInterpolator (L,鳍,TW Astop)
c = dsp。FilterCascade属性:Stage1: [1 x1 dsp。FIRInterpolator] Stage2: [1 x1 dsp。FIRInterpolator] CloneStages:假的

调用信息函数c显示过滤器被实现为一个级联的两个dsp.FIRInterpolator对象与插值因素分别为24岁和2。

计算实现插入器的成本。

成本(c)
ans =结构体字段:NumCoefficients: 184 NumStates: 12 MultiplicationsPerInputSample: 322 AdditionsPerInputSample: 275

NumCoefficientsMultiplicationsPerInputSample参数较低两级滤波器设计的designMultistageInterpolator功能,使之更为高效。

比较这两款设计的级响应。

hvft = fvtool (b, c);传奇(hvft“单级”,“多级”)

图1图:级响应(dB)包含一个坐标轴对象。坐标轴对象与标题级响应(dB),包含归一化频率(空白乘以πr d / s m p l e), ylabel级(dB)包含2线类型的对象。这些对象代表单级、多级。

级的反应表明,过渡宽度的过滤器是相同的,使过滤器具有可比性。的成本功能显示,实现多级设计相比是更高效的实现单级设计。

使用“设计”在d选项esignMultistageInterpolator函数

过滤器可以更有效的通过设置“CostMethod”论点的designMultistageInterpolator函数“设计”。默认情况下,这个参数被设置为“估计”

“设计”模式下,功能设计和计算每个阶段过滤器的顺序。这产生一个优化设计相比“估计”模式,函数估计滤波器为每个阶段和设计基于估计的过滤器。

请注意,“设计”选择要花更长时间相比“估计”选择。

cOptimal = designMultistageInterpolator (L,鳍、TW Astop,“CostMethod”,“设计”)
cOptimal = dsp。FilterCascade属性:Stage1: [1 x1 dsp。FIRInterpolator] Stage2: [1 x1 dsp。FIRInterpolator] Stage3: [1 x1 dsp。FIRInterpolator] CloneStages:假的
成本(cOptimal)
ans =结构体字段:NumCoefficients: 74 NumStates: 17 MultiplicationsPerInputSample: 296 AdditionsPerInputSample: 249

设计一个插入器的整体插值因子24使用designMultistageInterpolator函数。设计两个配置的过滤器:

  • 两级配置,NumStages被设置为2。

  • 汽车配置-NumStages被设置为“汽车”。这个配置设计一个过滤器每个输入样本的乘法数最低的。

比较成本实现配置。

初始化

选择一个插值系数24日输入采样率6 kHz, 90分贝的阻带衰减,过渡宽度为0.03 × 6000/2。

L = 24;Fs = 6000;Astop = 90;TW = 0.03 * Fs / 2;

设计滤波器

设计两个过滤器使用designMultistageInterpolator函数。

考托= designMultistageInterpolator (L, Fs、TW Astop,“NumStages”,“汽车”)
考托= dsp。FilterCascade属性:Stage1: [1 x1 dsp。FIRInterpolator] Stage2: [1 x1 dsp。FIRInterpolator] Stage3: [1 x1 dsp。FIRInterpolator] CloneStages:假的
cTwo = designMultistageInterpolator (L, Fs、TW Astop,“NumStages”,2)
cTwo = dsp。FilterCascade属性:Stage1: [1 x1 dsp。FIRInterpolator] Stage2: [1 x1 dsp。FIRInterpolator] CloneStages:假的

查看使用过滤信息信息函数。的“汽车”配置设计一连串的三个冷杉插入器与插值因素4、3和2,分别。两级配置设计与插值因素两个冷杉插入器的级联6和4,分别。

比较成本

比较的成本实现两个设计使用成本函数。

成本(考托)
ans =结构体字段:NumCoefficients: 70 NumStates: 28 MultiplicationsPerInputSample: 190 AdditionsPerInputSample: 167
成本(cTwo)
ans =结构体字段:NumCoefficients: 98 NumStates: 22 MultiplicationsPerInputSample: 208 AdditionsPerInputSample: 185

“汽车”配置插值滤波器产生一个三级设计,相当大的程度上胜过两阶段设计的NumCoefficientsMultiplicationsPerInputSample指标。

多级过滤器的设计满足下列条件:

  • 合并后的反应必须满足或超过给定的设计规范。

  • 所需的插值必须等于整体插值相结合。

对于一个整体插值的50倍,有几种的组合各个阶段。

获得设计用最少的总系数,设置“MinTotalCoeffs”参数真正的

Astop = 80;L = 50;Fs = 6000;TW = 0.03 * Fs / 2;cMinCoeffs = designMultistageInterpolator (L, Fs、TW Astop,“MinTotalCoeffs”,真正的)
cMinCoeffs = dsp。FilterCascade属性:Stage1: [1 x1 dsp。FIRInterpolator] Stage2: [1 x1 dsp。FIRInterpolator] Stage3: [1 x1 dsp。FIRInterpolator] CloneStages:假的
成本(cMinCoeffs)
ans =结构体字段:NumCoefficients: 58 NumStates: 18 MultiplicationsPerInputSample: 306 AdditionsPerInputSample: 257

获得最低的设计每个输入样本的乘法数,设置“NumStages”汽车的

cMinMulti = designMultistageInterpolator (L, Fs、TW Astop,“NumStages”,“汽车”)
cMinMulti = dsp。FilterCascade属性:Stage1: [1 x1 dsp。FIRInterpolator] Stage2: [1 x1 dsp。FIRInterpolator] CloneStages:假的
成本(cMinMulti)
ans =结构体字段:NumCoefficients: 156 NumStates: 9 MultiplicationsPerInputSample: 252 AdditionsPerInputSample: 203

使用比较级响应的过滤器fvtool。过滤器有相同的过渡带行为和阻带衰减,低于80分贝。

hvft = fvtool (cMinCoeffs cMinMulti);传奇(hvft“最小化总系数”,“每个输入样本的乘法数最小化”)

图1图:级响应(dB)包含一个坐标轴对象。坐标轴对象与标题级响应(dB),包含频率(赫兹),ylabel级(dB)包含3线类型的对象。这些对象代表最小化总系数,减少每个输入样本的乘法数。

输入参数

全部折叠

整体插值因子,指定为一个大于1的正整数。为了让C多级,l不能一个质数。有关详细信息,请参见算法

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出信号的采样率多级插入器后,指定为一个积极的真正的标量。如果不指定,Fs默认为48000 Hz。多级插入器的截止频率Fs/ (2l)。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

过渡宽度,指定为一个积极的真正的标量不到Fs/l。如果不指定,太瓦默认为0.2×Fs/l。过渡宽度必须小于Fs/l

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

最低阻带衰减结果设计、指定为一个积极的真正的标量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:C = designMultistageInterpolator(48、48000、200、80年,“NumStages”、“汽车”)设计了一种多级插入器每个输入样本的乘法数最低的。

插入器阶段,指定为一个正整数。如果设置为“汽车”,设计算法确定阶段的数量导致每个输入样本的乘法数量最低。如果指定为一个正整数,N,整体插值系数,l至少,必须考虑到N因素,不包括1l作为因素。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

,设计算法最小化乘法/输入样本的数量。当真正的,设计算法最小化的总数系数。

数据类型:逻辑

成本计算方法,指定为:

  • “估计”——每个阶段所需的函数估计滤波器的顺序和设计基于估计的过滤器。该方法比“设计”,但会导致设计不佳。

  • “设计”——功能设计和计算每个阶段过滤器的顺序。

数据类型:字符

宽容,指定为一个积极的标量。宽容是用来确定多级配置最少的mpi的数量。当多个配置导致相同的mpi在指定的公差,最低配置,收益率最低的选择系数总体的数量。查看系数和mpi的总数为一个特定的过滤器,使用成本函数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出参数

全部折叠

滤波器设计,作为一个返回dsp.FilterCascade系统对象™。过滤器是一个级联的多个阶段设计的功能。阶段的数量决定的“NumStages”论点。

每个过滤阶段的信息,调用信息功能上的C论点。

算法

整体插值因素分为较小的因素,每个因素的插值系数对应的各个阶段。结合插值的各个阶段必须等于整体插值。合并后的反应必须满足或超过给定的设计规范。

函数的数量决定了通过内插程序阶段“NumStages”论点。阶段的顺序是根据实施成本决定的。默认情况下,“NumStages”被设置为“汽车”,导致了一个序列,给出了最低数量的mpi。当多个配置导致相同的mpi在指定的公差,最低配置,收益率最低的选择系数总体的数量。如果“MinTotalCoeffs”被设置为真正的,函数决定了总系数序列要求的最低数量。

默认情况下,“CostMethod”被设置为“估计”。在这种模式下,每个阶段所需的函数估计滤波器的顺序和设计基于估计的过滤器。这种方法速度更快,但会导致次优的设计。对于一个优化设计,集“CostMethod”“设计”。在这种模式下,功能设计每个阶段和计算滤波器的顺序。

版本历史

介绍了R2018b