主要内容

designMultistageInterpolator

多级插补器设计

描述

C= designMultistageInterpolator (l设计了一种总插补系数为的多级插补器l.为了C是多级的,l一定不是质数。详细信息请参见算法.设计过程可能需要一段时间l有很多因素。

例子

C= designMultistageInterpolator (lFs太瓦设计了一种采样率为的多级插补器Fs过渡宽度为太瓦.这里的采样率是指信号经过多级插补器后的输出采样率。

多级插补器的截止频率为Fs/ (2l).

例子

C= designMultistageInterpolator (lFs太瓦Astop的最小衰减Astop结果设计的dB。

例子

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

例子:C = designMultistageInterpolator(48,48,200,80,'NumStages','auto')设计了一种每输入样本乘法最少的多级插补器。

例子

全部折叠

设计一个单级插补器designMultirateFIR函数和多级插补器使用designMultistageInterpolator函数。确定两种设计的效率使用成本函数。实施效率由两个成本指标表征:NumCoefficients而且MultiplicationsPerInputSample

计算实现这两种设计的成本,并确定哪种设计更有效。为了进行比较,可以设计滤波器,使它们的过渡宽度相同。

初始化

选择插补系数为48,输入采样率为30.72 MHz,单向带宽为100 kHz,阻带衰减为90 dB。

L = 48;Fin = 30.72e6;stop = 90;BW = 1e5;

使用designMultirateFIR函数

设计了插值滤波器designMultirateFIR功能产生单级设计。将半多相长度设置为有限整数,在本例中为4。

HalfPolyLength = 4;b = designMultirateFIR(L,1,HalfPolyLength, stop);d = dsp.FIRInterpolator(L,b)
D = dsp。FIRInterpolator with properties: InterpolationFactor: 48 NumeratorSource: 'Property'分子:[0 -6.0692e-06 -1.4587e-05 -2.5889e-05…显示所有属性

计算实现插值器的成本。插值滤波器需要376个系数和7个状态。每个输入样本的乘法数和每个输入样本的加法数分别为376和329。

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

使用designMultistageInterpolator函数

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

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

默认情况下,所给出的阶段数NumStages参数设置为“汽车”,从而得到一个最佳设计,尽量减少每个输入样本的乘法次数。

c = designMultistageInterpolator(L,Fin,TW, stop)
C = dsp。FilterCascade的属性:Stage1: [1x1 dsp. properties]FIRInterpolator] Stage2: [1x1 dsp。FIRInterpolator]

调用信息函数c显示筛选器是作为两个级联实现的dsp。FIRInterpolator插值因子分别为24和2的对象。

计算实现插值器的成本。

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

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

比较两种设计的震级响应。

fvtool (b, c)传说(“单级”“多级”

图形过滤可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为Magnitude Response (dB)的axis对象包含2个类型为line的对象。这些对象代表单级、多级。

震级响应表明,两个滤波器的过渡宽度是相同的,使得滤波器具有可比性。的成本函数表明,采用多级设计比采用单级设计效率更高。

使用“设计”选项。esignMultistageInterpolator函数

属性可以使过滤器更加有效“CostMethod”的参数designMultistageInterpolator函数“设计”.默认情况下,该参数设置为“估计”

“设计”模式下,函数设计每个阶段并计算过滤器顺序。这将产生与“估计”模式,其中函数估计每个阶段的过滤器顺序,并根据估计设计过滤器。

注意“设计”期权花费的时间比“估计”选择。

cOptimal =设计多级插值器(L,鳍,TW,停止,“CostMethod”“设计”
cOptimal = dsp。FilterCascadewith properties: Stage1: [1x1 dsp.FIRInterpolator] Stage2: [1x1 dsp.FIRInterpolator] Stage3: [1x1 dsp.FIRInterpolator]
成本(cOptimal)
ans =带字段的结构:NumCoefficients: 74 NumStates: 17 MultiplicationsPerInputSample: 296 AdditionsPerInputSample: 249

设计一个总插补系数为24的插补器designMultistageInterpolator函数。设计滤波器的两种配置:

  • 两级配置-NumStages设置为2。

  • 自动配置-NumStages设置为“汽车”.这种配置设计了一个过滤器,每个输入样本的乘法最少。

比较成本实现这两种配置。

初始化

选择插补因子24,输入采样率6 kHz,阻带衰减90 dB,过渡宽度0.03 × 6000/2。

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

设计过滤器

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

cAuto = designMultistageInterpolator(L, f,TW, stop,“NumStages”“汽车”
cAuto = dsp。FilterCascade的属性:Stage1: [1x1 dsp. properties]FIRInterpolator] Stage2: [1x1 dsp。FIRInterpolator] Stage3: [1x1 dsp。FIRInterpolator]
cTwo = designMultistageInterpolator(L,Fs,TW, stop,“NumStages”,2)
cTwo = dsp。FilterCascade的属性:Stage1: [1x1 dsp. properties]FIRInterpolator] Stage2: [1x1 dsp。FIRInterpolator]

命令查看筛选器信息信息函数。的“汽车”配置设计了三个FIR插补因子分别为4、3和2的级联插补器。两级结构设计了两个FIR插补器的级联,插补因子分别为6和4。

比较成本

方法比较实现这两种设计的成本成本函数。

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

“汽车”组态插值滤波器产生了三段式设计,在性能方面优于两段式设计NumCoefficients而且MultiplicationsPerInputSample指标。

多级设计中的滤波器满足以下条件:

  • 组合响应必须满足或超过给定的设计规范。

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

对于总插补系数为50的分段,有几个分段组合。

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

stop = 80;L = 50;Fs = 6000;TW = 0.03*Fs/2;cMinCoeffs =设计多级插值器(L, f,TW,停止,“MinTotalCoeffs”,真正的)
cMinCoeffs = dsp。FilterCascadewith properties: Stage1: [1x1 dsp.FIRInterpolator] Stage2: [1x1 dsp.FIRInterpolator] Stage3: [1x1 dsp.FIRInterpolator]
成本(cMinCoeffs)
ans =带字段的结构:NumCoefficients: 58 NumStates: 18 MultiplicationsPerInputSample: 306 AdditionsPerInputSample: 257

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

cMinMulti = designMultistageInterpolator(L,Fs,TW, stop,“NumStages”“汽车”
cMinMulti = dsp。FilterCascadewith properties: Stage1: [1x1 dsp.FIRInterpolator] Stage2: [1x1 dsp.FIRInterpolator]
成本(cMinMulti)
ans =带字段的结构:NumCoefficients: 156 NumStates: 9 MultiplicationsPerInputSample: 252 AdditionsPerInputSample: 203

比较使用的两个滤波器的幅度响应fvtool.两种滤波器都具有相同的过渡带特性和低于80 dB的阻带衰减。

fvtool (cMinCoeffs cMinMulti)传说(“最小化总系数”“最小化每个输入样本的乘法次数”

图形过滤可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为Magnitude Response (dB)的axis对象包含3个类型为line的对象。这些对象代表最小化总系数,最小化每个输入样本的乘法数。

输入参数

全部折叠

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

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

多级插补器后输出信号的采样率,指定为正实标量。如果没有指定,Fs默认为48,000 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,…,的家

例子:C = designMultistageInterpolator(48,48,200,80,'NumStages','auto')设计了一个多级插值器,每个输入样本的乘法最少。

插补器的级数,指定为正整数。如果设置为“汽车”,设计算法确定导致每个输入样本乘法最少的阶段数。如果指定为正整数,N,整体插值因子,l,至少要能因式分解N因素,不计算1l作为因素。

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

,设计算法使每个输入样本的乘法次数最小化。当真正的时,设计算法使总系数最小。

数据类型:逻辑

成本计算方法,指定为:

  • “估计”——该函数估计每个阶段所需的滤波器顺序,并根据估计设计滤波器。这种方法比“设计”,但可能导致次优设计。

  • “设计”——该函数设计每个阶段并计算过滤顺序。

数据类型:字符

公差,指定为正标量。该公差用于确定具有最少MPIS数量的多级配置。当多个配置在指定的公差范围内产生相同的最低MPIS时,将选择产生最低系数数的配置。要查看特定过滤器的系数和MPIS的总数,请使用成本函数。

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

输出参数

全部折叠

设计的过滤器,返回作为dsp。FilterCascade系统对象™。该滤波器是由函数设计的多个级联。阶段的数量是由“NumStages”论点。

要获得关于每个筛选器阶段的信息,请调用信息函数在C论点。

算法

将整体插补因子分解为较小的插补因子,每个插补因子分别作为相应阶段的插补因子。所有单独阶段的组合插值必须等于整体插值。组合响应必须满足或超过给定的设计规范。

函数确定插值器通过的阶段数“NumStages”论点。阶段的顺序是根据实施成本确定的。默认情况下,“NumStages”设置为“汽车”,从而得到MPIS最少的序列。当多个配置在指定的公差范围内产生相同的最低MPIS时,将选择产生最低系数数的配置。如果“MinTotalCoeffs”设置为真正的时,该函数确定所需总系数最少的序列。

默认情况下,“CostMethod”设置为“估计”.在这种模式下,函数估计每个阶段所需的滤波器顺序,并根据估计来设计滤波器。这种方法更快,但可能导致次优设计。为获得最优设计,请设置“CostMethod”“设计”.在这种模式下,函数设计每个阶段并计算过滤器顺序。

在R2018b中引入