主要内容

dsp.FIRDecimator

多相冷杉杀害多人者

描述

dsp.FIRDecimator系统对象™重新取样向量或矩阵输入第一个维度。冷杉杀害多人者(如示意图所示)在概念上由一个反锯齿后跟downsampler冷杉过滤器。

冷杉过滤器过滤输入的数据在每个通道使用直接形式冷杉过滤器。冷杉滤波器系数可以通过指定分子财产,或者可以自动设计的对象使用designMultirateFIR函数。的designMultirateFIR函数设计抗混叠滤波器。接下来的downsampler冷杉过滤器downsamples每个通道的通过每一个过滤数据th样本和丢弃- 1样本。是你指定的大量毁灭因素的价值。由此产生的离散时间信号的采样率是1 /最初的采样率。

冷杉杀害多人者包含一个反锯齿后跟downsampler冷杉过滤器。

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

重新取样向量或矩阵输入第一个维度:

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

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

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

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

创建

描述

例子

firdecim= dsp.FIRDecimator返回一个冷杉杀害多人者对象的大量毁灭因素2。使用的对象设计数字滤波器系数designMultirateFIR (1、2)函数。

firdecim= dsp.FIRDecimator ()返回一个整数值冷杉杀害多人者DecimationFactor属性设置为。对象设计的滤波器系数基于大量毁灭的因素你指定在创建对象时,使用designMultirateFIR(1米)函数。设计的滤波器对应于一个低通滤波器截止在π/在径向频率单位。

firdecim= dsp.FIRDecimator (,“汽车”)返回的冷杉杀害多人者NumeratorSource属性设置为“汽车”。在这种模式下,每一次有一个更新的大量毁灭因素,重新设计过滤器使用的对象designMultirateFIR(1米)

firdecim= dsp.FIRDecimator (,全国矿工工会)返回的冷杉杀害多人者DecimationFactor属性设置为分子属性设置为全国矿工工会

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

firdecim= dsp.FIRDecimator (,“遗产”)返回一个冷杉杀害多人者在使用设计的滤波器系数fir1(35岁,0.4)。设计滤波器的截止频率为0.4π弧度/样品。

属性

全部展开

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

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

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

大量毁灭的因素,指定为一个正整数。冷杉杀害多人者减少输入的采样率的因素。输入的行数必须大量毁灭的多个因素。

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

冷杉滤波器系数来源,指定为以下之一:

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

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

  • “汽车”——分子系数是设计自动使用designMultirateFIR(1米)函数。

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

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

向量b= (b0,b1、…bN)代表了滤波器系数向量。

以防止混叠的结果将采样,滤波器传递函数应该有一个归一化截止频率不超过1 /。设计一个有效的抗混叠滤波器,使用designMultirateFIR函数。例如,看到的毁掉的正弦波

依赖关系

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

NumeratorSource被设置为“汽车”,分子系数自动重新设计使用designMultirateFIR(1米)。访问滤波器系数的自动设计模式、类型objName。分子在MATLAB®命令提示符。

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

指定数字滤波器的实现直接的形式直接形式转置

定点属性

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

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

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

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

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

依赖关系

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

  • 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= firdecim (x)输出过滤和downsampled值,y输入信号的x

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

输入参数

全部展开

数据输入,指定为一个列向量或矩阵的大小P——- - - - - -。输入的行数,P,必须是多重的DecimationFactor财产。代表输入列独立的通道。

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

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

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

依赖关系

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

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

输出参数

全部展开

冷杉摧毁输出,返回一个列向量或矩阵的大小P / M——- - - - - -,在那里是大量毁灭的因素。

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

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

毁掉一个正弦波之和的2倍和4倍。

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

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

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

设计默认的过滤器

创建一个dsp.FIRDecimator对象。以防止混叠,将采样前的对象使用抗混叠低通滤波器。默认情况下,抗混叠低通滤波器设计使用designMultirateFIR函数。函数设计滤波器根据您指定的大量毁灭因素,和商店的系数分子财产。大量毁灭2倍,对象设计系数使用designMultirateFIR (1、2)

firdecim = dsp.FIRDecimator (2)
firdecim = dsp.FIRDecimatorwith properties: DecimationFactor: 2 NumeratorSource: 'Property' Numerator: [0 -1.0054e-04 0 3.8704e-04 0 -0.0010 0 0.0022 0 ... ] Structure: 'Direct form' Show all properties

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

fvtool (firdecim)

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

毁掉了2

毁掉余弦信号的2倍。

y = firdecim (x);

情节原始和摧毁的信号。为了画出两个信号在相同的情节,获得仿射变换参数的时间。使用这些参数来计算输出示例。的 n th 输出样本时间等于 规模 × n + 延迟

规模= 1 / firdecim.DecimationFactor;延迟=长度(firdecim.Numerator) / (2 * firdecim.DecimationFactor);nx =(0:长度(x) 1);泰=((0:长度(y) 1)延迟)/规模;

经过短暂的过渡,输出收敛于频率的余弦 π 2 正如所料,这是输入信号频率的两倍 π 4 。由于大量毁灭因子2,输出样本配合其他输入样本。

茎(泰,y,“填充”,MarkerSize = 4);持有;茎(nx x);持有;xlim([-10] 22日)ylim([-2.5 - 2.5])传说(“摧毁了2 (y)”,“输入信号(x)”);

图包含一个坐标轴对象。坐标轴对象包含2杆类型的对象。这些对象代表摧毁了2 (y),输入信号(x)。

高频组件添加到输入和毁掉

添加另一个输入信号频率分量,一个正弦的角频率 2 π 3 弧度/样品。自 ω = 2 π 3 高于冷杉低通截止, π 2 ,频率 2 π 3 弧度/样本信号过滤掉。

xhigh = x + 0.2 * sin(2 *π/ 3 * (0:95)');释放(firdecim) yhigh = firdecim (xhigh);

画出输入信号、摧毁信号和低频的输出组件。摧毁信号yhigh具有较高的频率分量过滤掉。yhigh几乎是identiical低频分量的输出y

茎(ty yhigh,“填充”,MarkerSize = 4);持有;茎(nx xhigh);茎(泰,y,“m”,MarkerSize = 7);持有;xlim([-10] 22日)ylim([-2.5 - 2.5])传说(“摧毁了2 (yhigh)”,添加了高音调的输入信号(xhigh) ',2 -低调的摧毁(y)的);

图包含一个坐标轴对象。坐标轴对象包含3杆类型的对象。这些对象代表摧毁了2 (yhigh),添加了高音调输入信号(xhigh),摧毁了2 -低调只(y)。

4毁掉的自动过滤设计模式

现在成千上万的4倍。为了使滤波器设计是自动更新新的大量毁灭因素的基础上,设置NumeratorSource财产“汽车”。还可以通过“汽车”关键字在创建对象时。然后运行在自动过滤对象设计模式。每次有大量毁灭的变化因素,对象更新滤波器设计。

(firdecim) firdecim发布。NumeratorSource =“汽车”;firdecim。DecimationFactor = 4
firdecim = dsp.FIRDecimatorwith properties: DecimationFactor: 4 NumeratorSource: 'Auto' Structure: 'Direct form' Show all properties

访问过滤系数在自动模式下,类型firdecim.Numerator在MATLAB命令提示符。

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

fvtool (firdecim)

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

毁掉余弦信号的4倍。经过短暂的过渡,输出收敛于频率的余弦 π 正如所料,这是四倍降低输入信号的频率分量 π 4 。这一次的振幅输出是输入振幅的一半,因为获得的冷杉 ω = π 4 正是 1 2 。高频组件 2 π 3 减少低通截止频率的冷杉 π 4

yAuto = firdecim (xhigh);

画出输入信号与高频组件补充说,低频分量乘以1/2,摧毁信号。重新计算仿射变换参数的时间以来,大量毁灭因素发生了变化。

规模= 1 / firdecim.DecimationFactor;延迟=长度(firdecim.Numerator) / (2 * firdecim.DecimationFactor);tyAuto =((0:长度(yAuto) 1)延迟)/规模;茎(tyAuto yAuto,“填充”,MarkerSize = 4);持有;茎(nx xhigh);茎(nx、x / 2”男:“,MarkerSize = 7);持有;xlim ([-20, 36]) ylim([-2.5 - 2.5])传说(4 (yAuto)”的摧毁,输入信号与高频组件说(xhigh) ',“低音调输入了1/2”);

图包含一个坐标轴对象。坐标轴对象包含3杆类型的对象。这些对象代表摧毁4 (yAuto),输入信号与高频组件添加(xhigh),低音调输入了1/2。

减少一个音频信号的采样率的2倍和摧毁信号使用audioDeviceWriter对象。

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

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

创建一个dsp.AudioFileReader对象。默认的音频文件读取对象的采样率为22050 Hz。

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

创建一个dsp.FIRDecimator对象和指定大量毁灭因素2。对象设计滤波器使用designMultirateFIR (1、2)和商店的系数分子对象的属性。

firdecim = dsp.FIRDecimator (2)
firdecim = dsp.FIRDecimatorwith properties: DecimationFactor: 2 NumeratorSource: 'Property' Numerator: [0 -1.0054e-04 0 3.8704e-04 0 -0.0010 0 0.0022 0 ... ] Structure: 'Direct form' Show all properties

创建一个audioDeviceWriter对象。22050/2指定采样率。

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

音频信号使用文件读取读者对象,毁掉信号的2倍,并摧毁信号。

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

更多关于

全部展开

算法

冷杉大批杀害过滤器实现有效地使用多相结构。多相滤波器的更多细节,请参阅多相Subfilters

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

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

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

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

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

多相组件的数量,其值等于指定的大量毁灭因素。

你可以把这个方程写成:

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

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

从概念上讲,冷杉大批杀害过滤器包含一个低通滤波器,后跟一个downsampler。

取代H(z)多相表示。

这是大量毁灭的多重速率的高贵身份。

高贵的身份申请大量毁灭移动将采样操作前的过滤操作。这一举动使您能够过滤信号在一个较低的利率。

你可以取代延误和大量毁灭因素与一个换向开关输入。开关在第一个分支0开始,逆时针方向移动,这个图所示。蓄电池的输出接收处理输入样本每个分支的多相结构和积累处理样品,直到开关→分支0。切换分支0时,蓄电池输出累积值。

第一个输入样品交付时,开关提要这个分支的输入0和杀害多人者计算第一个输出值。随着越来越多的输入样本,反时针方向的开关动作通过分支−1−2,一直到分支0,为每个分支提供一个示例。当切换分支0,杀害多人者输出下一组输出值。这一过程持续进行数据进来。每次切换分支0,杀害多人者输出y [m]。每一个杀害多人者有效输出的一个示例它接收样品。因此,采样率在冷杉大批杀害滤波器的输出fs/

扩展功能

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

介绍了R2012a