主要内容

dsp.FIRInterpolator

多相冷杉插入器

描述

dsp.FIRInterpolator系统对象™upsamples输入的整数upsampling因素l第一个维度。冷杉插入器(如示意图所示)在概念上由一个upsampler后跟一个冷杉anti-imaging过滤器,这通常是一个近似的理想限带插值滤波器。anti-imaging滤波器的系数可以通过指定分子财产,或者可以自动设计的对象使用designMultirateFIR函数。

的upsampler upsamples每个通道插入的输入到一个更高的速度l样品之间的1 0。冷杉过滤器,过滤器的每个通道upsampled数据。由此产生的离散时间信号的采样率l最初的采样率。

冷杉插入器包含一个upsampler anti-imaging冷杉过滤器紧随其后。

注意,实际对象的算法实现了一个直接形式冷杉多相结构,相当于一个高效的综合系统图中描述。更多细节,请参阅算法

upsample输入:

  1. 创建dsp.FIRInterpolator对象并设置其属性。

  2. 调用对象的参数,就好像它是一个函数。

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

在特定的条件下,该系统还支持SIMD代码生成对象。金宝app有关详细信息,请参见代码生成

创建

描述

firinterp= dsp.FIRInterpolator返回一个冷杉插入器的插值因子3。使用的对象设计数字滤波器系数designMultirateFIR (3,1)函数。

firinterp= dsp.FIRInterpolator (l)返回一个冷杉插入器的整数值InterpolationFactor属性设置为l。对象设计了基于插值滤波器系数的因素l你指定在创建对象时使用designMultirateFIR (L, 1)函数。设计的滤波器对应于一个低通滤波器截止在π/l在径向频率单位。

例子

firinterp= dsp.FIRInterpolator (l,“汽车”)返回的冷杉插入器NumeratorSource属性设置为“汽车”。在这种模式下,每一次插值因子,有一个更新的对象重新设计过滤器使用在指定的设计方法DesignMethod

例子

firinterp= dsp.FIRInterpolator (l,全国矿工工会)返回的冷杉插入器InterpolationFactor属性设置为l分子属性设置为全国矿工工会

firinterp= dsp.FIRInterpolator (l,方法)返回的冷杉插入器InterpolationFactor属性设置为lDesignMethod属性设置为方法。当你作为输入,通过设计方法NumeratorSource属性自动设置“汽车”

firinterp= dsp.FIRInterpolator (___,名称,值)返回一个冷杉插入器与每个指定的对象属性设置为指定的值。在报价附上每个属性的名字。您可以使用该语法与以往任何输入参数组合。

firinterp= dsp.FIRInterpolator (l“遗产”)返回一个冷杉插入器的滤波器系数是设计使用0.25 fir1(15日)。设计滤波器的截止频率为0.25π弧度/样品。

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。

如果一个属性可调在任何时候,你可以改变它的值。

改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象

指定整数因子,l,增加输入信号的采样率。多相实现使用l多相subfilters计算分布在较低的采样率。冷杉插入器延迟上面这些低利率获得高输出的卷积。

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

冷杉滤波器系数来源,指定为:

  • “属性”——分子系数是通过指定分子财产。

  • 输入端口的——分子系数作为输入指定对象的算法。

  • “汽车”——分子系数是设计自动使用在指定的设计方法DesignMethod

分子anti-imaging冷杉滤波器的系数,指定为一个行向量的权力z1。以下方程定义了滤波器的系统函数的长度N+ 1:

H ( z ) = n = 0 N b ( n ) z n

向量b= (b(0)b(1)、…b(N))代表了滤波器系数向量。

作为一个有效的anti-imaging过滤器,通常对应于一个低通滤波器系数的归一化截止频率比的倒数InterpolationFactor。使用designMultirateFIR设计这样一个过滤器。更普遍的是,可以使用任何复杂的带通滤波器。例如,看到的使用冷杉插入器采样率的两倍

过滤器系数由价值的比例InterpolationFactor属性过滤前的信号。形成了l多相subfilters,分子是附加零如果必要的。

依赖关系

这个属性是可见的只有当你设置NumeratorSource“属性”

NumeratorSource被设置为“汽车”,分子系数自动重新设计使用中指定的设计方法DesignMethod。访问滤波器系数的自动设计模式、类型objName。分子在MATLAB®命令提示符。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:金宝app是的

冷杉滤波器系数的设计方法,指定为以下之一:

  • “皇帝”——皇帝的方法。近似anti-imaging低通滤波器使用designMultirateFIR函数。

  • “ZOH”——零阶保持器的方法。保存输入的序列值。

  • “线性”——线性插值方法。

依赖关系

这个属性是可见的只有当你设置NumeratorSource财产“汽车”,或者如果你通过“汽车”关键字作为输入而创建的对象。

定点属性

国旗为定点运算软件不能使用规则,指定为以下之一:

  • 真正的——对象计算所有内部运算和输出数据类型不能使用规则。这些规则提供最精确定点数字。在这种模式下,其他定点属性并不适用。没有量化发生在对象。位,根据需要,以确保没有舍入或发生溢出。

  • ——定点数据类型控制通过个人定点属性设置。

有关更多信息,请参见完整精确定点系统对象设置系统对象定点属性

舍入为定点操作方法。更多细节,请参阅舍入模式

依赖关系

这个属性是不可见的,也没有对数值结果的影响当满足下列条件:

  • FullPrecisionOverride设置为真正的

  • FullPrecisionOverride设置为,ProductDataType设置为“充分精确”,AccumulatorDataType设置为“充分精确”,OutputDataType设置为“蓄电池一样”

在这种情况下,对象完全精确模式运行。

溢出行动定点操作,指定为以下之一:

  • “包装”——对象包装定点操作的结果。

  • “饱和”——对象浸透定点操作的结果。

溢出行为的更多细节,请参阅溢出模式为定点操作。

依赖关系

这个属性是不可见的,也没有对数值结果的影响当满足下列条件:

  • FullPrecisionOverride设置为真正的

  • FullPrecisionOverride设置为,OutputDataType设置为“蓄电池一样”,ProductDataType设置为“充分精确”,AccumulatorDataType设置为“充分精确”

在这种情况下,对象完全精确模式运行。

数字滤波器系数的数据类型,指定为:

  • 同一个词长度作为输入——这个词的长度系数是一样的输入。计算分数的长度给最好的精度。

  • 自定义——系数的数据类型被指定为一个自定义数值类型通过CustomCoefficientsDataType财产。

词和部分长度系数数据类型,指定为一个autosignednumerictype(定点设计师)字长为16和一小部分的长度15。

依赖关系

这个属性设置时适用CoefficientsDataType财产自定义

数据类型的产品输出对象,指定为以下之一:

  • “充分精确”——产品输出数据类型有完整的精度。

  • 同样作为输入的——对象指定产品输出数据类型一样,输入的数据类型。

  • “自定义”——产品输出的数据类型被指定为一个自定义数值类型通过CustomProductDataType财产。

在产品输出数据类型的更多信息,参见乘法的数据类型

依赖关系

适用于当您设置这个属性FullPrecisionOverride

词和部分长度产品的数据类型,指定为一个autosigned数值类型,字长为32个,一小部分的长度30。

依赖关系

这个属性只适用于当您设置FullPrecisionOverrideProductDataType“自定义”

积累的数据类型操作这个对象,指定为以下之一:

  • “充分精确”——积累操作精度。

  • “一样的产品”——对象指定了蓄电池数据类型一样,产品的输出数据类型。

  • 同样作为输入的——对象指定了蓄电池数据类型一样,输入的数据类型。

  • “自定义”——蓄电池的数据类型被指定为一个自定义数值类型通过CustomAccumulatorDataType财产。

依赖关系

适用于当您设置这个属性FullPrecisionOverride

词和部分长度累加器的数据类型,指定为一个autosigned数值类型,字长为32个,一小部分的长度30。

依赖关系

这个属性只适用于当您设置FullPrecisionOverrideAccumulatorDataType“自定义”

输出数据类型的对象,指定为以下之一:

  • “蓄电池一样”输出数据类型是一样的,蓄电池输出的数据类型。

  • 同样作为输入的输出数据类型是一样的,输入的数据类型。

  • “一样的产品”输出数据类型是一样的,产品的输出数据类型。

  • “自定义”——输出的数据类型被指定为一个自定义数值类型通过CustomOutputDataType财产。

依赖关系

适用于当您设置这个属性FullPrecisionOverride

词和部分长度输出的数据类型,指定为一个autosigned数值类型的字长16和一小部分的长度15。

依赖关系

这个属性只适用于当您设置FullPrecisionOverrideOutputDataType“自定义”

使用

描述

例子

y= firinterp (x)篡改输入信号x第一个维度,并输出upsampled和过滤值,y

y= firinterp (x,全国矿工工会)使用滤波器全国矿工工会插入,输入信号。这个配置是有效的只有当“NumeratorSource”属性设置为输入端口的

输入参数

全部展开

数据输入,指定为一个向量或矩阵。一个P——- - - - - -被视为输入矩阵独立的通道,系统对象插入每个通道在第一维度和生成L P *——- - - - - -输出矩阵,l是插值的因素。

这个对象支持适应输入和不金宝app支持复杂的无符号定点输入。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|fi
复数的支持:金宝app是的

冷杉滤波器系数,指定为一个行向量。

依赖关系

这只有当输入是被接受的“NumeratorSource”属性设置为输入端口的

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|fi
复数的支持:金宝app是的

输出参数

全部展开

冷杉插入器输出,返回向量或矩阵的大小L P *——- - - - - -,在那里l是插值的因素。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|fi
复数的支持:金宝app是的

对象的功能

使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

freqz 离散滤波器的频率响应系统对象
fvtool 可视化DSP滤波器的频率响应
信息 信息过滤系统对象
成本 实现滤波器的估计成本系统对象
多相 多频滤波器的多相分解
generatehdl 生成量化的HDL代码DSP滤波器(需要滤波器设计高密度脂蛋白编码器)
impz 离散滤波器的脉冲响应系统对象
多项式系数 返回过滤器系统对象系数的结构
一步 运行系统对象算法
释放 释放资源,并允许修改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

插入一个余弦波的2倍。在自动过滤设计模式,改变基本的D / A信号插值模型“线性”和插入信号的4倍,改变基本的D / a信号插值模型“ZOH”和插入信号的5倍。

余弦波的角频率 π 4 弧度/样品。

x = cos(π/ 4 * (0:39)');

设计默认的过滤器

创建一个dsp.FIRInterpolator对象。对象使用一个anti-imaging upsampling后低通滤波器。默认情况下,anti-imaging低通滤波器设计使用designMultirateFIR函数。函数设计滤波器根据您指定的插值系数,并存储的系数分子财产。的插值因子2,使用对象设计系数designMultirateFIR (2, 1)

firinterp = dsp.FIRInterpolator (2)
firinterp = dsp.FIRInterpolatorwith properties: InterpolationFactor: 2 NumeratorSource: 'Property' Numerator: [0 -2.0108e-04 0 7.7408e-04 0 -0.0020 0 0.0045 ... ] Show all properties

可视化滤波器响应使用fvtool。设计滤波器满足理想滤波器的约束,用红色标注的。截止频率大约是一半的光谱。

fvtool (firinterp)

数字滤波器可视化工具——级响应(dB)包含一个轴uitoolbar类型的对象和其他对象,uimenu。坐标轴对象2级响应(dB)包含标题行类型的对象。

插入2

插入余弦信号的2倍。

y = firinterp (x);

绘制原始和插值信号。为了画出两个信号在相同的情节,获得仿射变换参数的时间。使用这些参数来计算输出示例。的 n th 输出样本时间等于 规模 × n + 延迟 。每一个样本的输入和输出值一致,由于插值系数2。

规模= firinterp.InterpolationFactor;延迟=长度(firinterp.Numerator) / 2;nx =(0:长度(x) 1);在输入向量y %计算输出时间单位泰=((0:长度(y) 1)延迟)/规模;茎(泰,y,“填充”,MarkerSize = 4);持有;茎(nx x);持有;xlim ([5, 20]) ylim([-2.5 - 2.5])传说(“插入2”,输入信号的);

图包含一个坐标轴对象。坐标轴对象包含2杆类型的对象。这些对象代表插入2,输入信号。

插入4在自动过滤设计模式

现在插入4倍。为了使滤波器设计是自动更新基于新的插值系数,设置NumeratorSource财产“汽车”。或者,你可以通过关键字“汽车”作为输入而创建的对象。然后运行在自动过滤对象设计模式。每次有一个插值系数的变化,更新滤波器设计的对象。

(firinterp) firinterp发布。NumeratorSource =“汽车”;firinterp。InterpolationFactor = 4
firinterp = dsp.FIRInterpolatorwith properties: InterpolationFactor: 4 NumeratorSource: 'Auto' DesignMethod: 'Kaiser' Show all properties

访问滤波器系数的自动过滤设计模式,类型firinterp.Numerator在MATLAB命令提示符。

设计滤波器占有窄通带大约四分之一的频谱。

fvtool (firinterp)

数字滤波器可视化工具——级响应(dB)包含一个轴uitoolbar类型的对象和其他对象,uimenu。坐标轴对象2级响应(dB)包含标题行类型的对象。

插入余弦信号的4倍。

yAuto = firinterp (x);

绘制原始和重新取样信号。重新计算时间自仿射变换参数插值因子已经改变了。每4输出样本的输入和输出值一致,由于插值系数4。

规模= firinterp.InterpolationFactor;延迟=长度(firinterp.Numerator) / 2;nx =(0:长度(x) 1);%计算向量yAuto输入输出时间单位tyAuto =((0:长度(yAuto) 1)延迟)/规模;茎(tyAuto yAuto,“填充”,MarkerSize = 4);持有;茎(nx x);持有;xlim ([5 10]) ylim([-2.5 - 2.5])传说(“插入4”,输入信号的);

图包含一个坐标轴对象。坐标轴对象包含2杆类型的对象。这些对象代表插值由4,输入信号。

指定信号插值模型

在自动设计模式中,您还可以指定底层通过D / A信号插值模型DesignMethod财产。

DesignMethod“线性”

如果你设置DesignMethod“线性”,对象使用线性插值模型。

(firinterp) firinterp发布。DesignMethod =“线性”
firinterp = dsp.FIRInterpolatorwith properties: InterpolationFactor: 4 NumeratorSource: 'Auto' DesignMethod: 'Linear' Show all properties

插入信号使用线性插值模型。

ylinear = firinterp (x);

画出原始信号和线性插值。

规模= firinterp.InterpolationFactor;延迟=(长度(firinterp.Numerator) 1) / 2;nx =(0:长度(x) 1);%计算向量ylinear输入输出时间单位tylinear =((0:长度(ylinear) 1)延迟)/规模;茎(tylinear ylinear,“填充”,MarkerSize = 4);持有;茎(nx x);持有;xlim ([0, 10]) ylim([-2.5 - 2.5])传说(的线性插值4 ',输入信号的);

图包含一个坐标轴对象。坐标轴对象包含2杆类型的对象。这些对象代表线性插值,4、输入信号。

DesignMethod“ZOH”和改变InterpolationFactor到5

如果你设置DesignMethod“ZOH”,对象使用零阶保持器的方法。改变插值因子5。

(firinterp) firinterp发布。DesignMethod =“ZOH”;firinterp。InterpolationFactor = 5
firinterp = dsp.FIRInterpolatorwith properties: InterpolationFactor: 5 NumeratorSource: 'Auto' DesignMethod: 'ZOH' Show all properties

插入使用零阶保持器的信号的方法。

yzoh = firinterp (x);

情节原始和ZOH插值信号。

规模= firinterp.InterpolationFactor;延迟=地板((长度(firinterp.Numerator) 1) / 2);nx =(0:长度(x) 1);%计算向量yzoh输入输出时间单位tyzoh =((0:长度(yzoh) 1)延迟)/规模;茎(tyzoh yzoh,“填充”,MarkerSize = 4);持有;茎(nx x);持有;xlim ([0, 10]) ylim([-1.5 - 1.5])传说(“ZOH插值4”,输入信号的);

图包含一个坐标轴对象。坐标轴对象包含2杆类型的对象。这些对象代表ZOH插值由4、输入信号。

双音频信号的采样率和插值信号使用audioDeviceWriter对象。

请注意:如果您使用的是R2016a或更早的版本中,用等效替换每个调用对象一步语法。例如,obj (x)就变成了步骤(obj, x)

注意:audioDeviceWriter不支持系统对象™金宝appMATLAB在线

创建一个dsp.AudioFileReader对象。默认的音频文件准备好了对象的采样率为22050 Hz。

误判率= dsp.AudioFileReader (“OutputDataType”,“单一”);

创建一个dsp.FIRInterpolator对象和指定插值因子为2。对象设计滤波器使用designMultirateFIR (2, 1)函数的系数和商店分子对象的属性。

firInterp = dsp.FIRInterpolator (2)
firInterp = dsp。FIRInterpolator属性:InterpolationFactor: 2 NumeratorSource:“财产”分子:[0 0.0045 -0.0020 -2.0108 7.7408 e-04 e-04 0 0 0…)显示所有属性

创建一个audioDeviceWriter对象。指定采样率为22050 × 2,等于44100 Hz。

adw = audioDeviceWriter (44100)
adw = audioDeviceWriter属性:设备:44100年“默认”SampleRate:显示所有属性

阅读使用文件读者对象的音频信号,双信号的采样率从22050赫兹到44100赫兹和插值信号。

~结束(误判率)帧=误判率();y = firInterp(框架);adw (y);结束暂停(1);释放(误判率);释放(adw);

算法

实现FIR插值滤波器有效地使用多相结构。

推导出多相结构,从数字滤波器的传递函数:

H ( z ) = b 0 + b 1 z 1 + + b N z N

N+ 1是数字滤波器的长度。

你可以重新安排这个方程如下:

H ( z ) = ( b 0 + b l z l + b 2 l z 2 l + 。。 + b N l + 1 z ( N l + 1 ) ) + z 1 ( b 1 + b l + 1 z l + b 2 l + 1 z 2 l + 。。 + b N l + 2 z ( N l + 1 ) ) + z ( l 1 ) ( b l 1 + b 2 l 1 z l + b 3 l 1 z 2 l + 。。 + b N z ( N l + 1 ) )

l是多相组件的数量,其值等于指定的插值系数。

你可以把这个方程写成:

H ( z ) = E 0 ( z l ) + z 1 E 1 ( z l ) + + z ( l 1 ) E l 1 ( z l )

E0(zl),E1(zl)、……El - 1(zl)冷杉滤波器的多相组件吗H(z)。

从概念上讲,FIR插值滤波器包含一个upsampler后面跟着一个FIR低通滤波器H(z)。

冷杉插入器包含一个upsampler anti-imaging冷杉过滤器紧随其后。

取代H(z)多相表示。

这是插值的多重速率的高贵身份。

高贵的身份申请插值移动upsampling操作后过滤操作。这一举动使您能够过滤信号在一个较低的利率。

你可以取代upsampling运营商,与一个换向开关延迟块,加法器。开关在第一个分支0开始,逆时针方向移动,每次收到样品从每个分支之一。插入器有效地输出l每一个输入样本接收样品。因此,在FIR插值滤波器的输出采样率Lfs

扩展功能

定点转换
设计和模拟使用定点定点系统设计师™。

介绍了R2012a