主要内容

dsp.FIRRateConverter

执行多相冷杉采样率转换

描述

dsp.FIRRateConverter系统对象™执行高效的多相抽样率转换使用理性的因素l/第一个维度。

冷杉率变换器级联一个插入器杀害多人者。从概念上讲,转换器(如示意图所示)包含一个upsampler,其次是总anti-imaging和反锯齿冷杉过滤器,一个downsampler紧随其后。anti-imaging系数和抗锯齿冷杉过滤器可以通过指定分子财产,或者可以自动设计的对象使用designMultirateFIR函数。例如,看到的重新取样信号转换器使用冷杉率

upsampler增加信号的采样率的一个因素l和downsampler减少信号的采样率的一个因素。使用upsampling和互质或coprime downsampling因素。由此产生的离散时间信号的采样率l/最初的采样率。

冷杉率转换器包含一个anti-imaging upsampler紧随其后,反锯齿冷杉过滤器,后跟一个downsampler。

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

执行采样率转换:

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

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

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

创建

描述

例子

firrc= dsp.FIRRateConverter返回一个冷杉采样率转换器对象的插值因子3和2的大量毁灭的因素。使用的对象设计数字滤波器系数designMultirateFIR (2)函数。

firrc= dsp.FIRRateConverter (l,)返回一个冷杉采样率转换器整数值InterpolationFactor属性设置为lDecimationFactor属性设置为。对象设计滤波器系数基于利率转换因素您指定在创建对象时,使用designMultirateFIR (L, M)函数。设计的滤波器对应于一个低通滤波器归一化截止频率不大于分钟(π/ L,π/米)在径向频率单位。

firrc= dsp.FIRRateConverter (l,,“汽车”)返回一个冷杉的采样率转换器NumeratorSource属性设置为“汽车”。在这种模式下,每一次有一个更新的速度转换因素,重新设计的对象中指定的过滤器使用的设计方法DesignMethod

例子

firrc= dsp.FIRRateConverter (l,,全国矿工工会)返回一个冷杉的采样率转换器分子属性设置为全国矿工工会

firrc= dsp.FIRRateConverter (l,,方法)返回一个冷杉的采样率转换器DesignMethod属性设置为方法。当你作为输入,通过设计方法NumeratorSource属性自动设置“汽车”

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

例子:firrc = dsp.FIRRateConverter (“FullPrecisionOverride”,“假”)使定点数据类型控制通过个人定点属性设置。

firrc= dsp.FIRRateConverter (l,,“遗产”)返回一个冷杉采样率转换器,使用设计的滤波器系数firpm(70年,[0 0.28 0.32 1],[1 1 0 0])。设计滤波器的截止频率π/ 3弧度/样品。

属性

全部展开

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

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

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

主要特性

插值因子l,指定为一个正整数。

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

大量毁灭的因素,指定为一个正整数。

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

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

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

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

分子冷杉滤波器的系数,指定为一个行向量的权力z1

以下方程定义了滤波器的传递函数:

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

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

使用归一化截止频率的低通滤波器不大于分钟(1 / L, 1 /米),在那里l插值因子和吗是大量毁灭的因素。低通滤波器的增益应该相等l插值系数。选择滤波器的长度是一个插值的多个因素。设计这种滤波器,使用designMultirateFIR函数。例如,看到的重新取样信号转换器使用冷杉率。所有初始过滤状态为零。

依赖关系

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

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

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

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

  • “皇帝”——皇帝的方法。近似的抗锯齿和anti-imaging低通滤波器相结合使用designMultirateFIR函数。

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

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

依赖关系

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

代码生成特性

允许任意帧长度为固定大小的输入信号在生成的代码中,指定为真正的。当您指定:

  • 真正的——输入帧长度不需要大量毁灭的多个因素。的输出对象生成的代码是一个适应可变数组。

  • ——输入帧长度必须是大量毁灭的多个因素。

当你指定适应信号,输入帧长度可以任意和对象忽略该属性在生成的代码中。在MATLAB中运行这个对象时,对象支持任意输入帧长度为固定大小和适应信号和这个属性不会影响对金宝app象的行为。

数据类型:逻辑

定点属性

指定是否使用完整精确的规则。如果你设置FullPrecisionOverride真正的是默认的,计算所有对象内部运算和输出数据类型使用完整精确的规则。这些规则提供最精确定点数字。它也关闭其他定点属性的显示,因为他们不单独申请。这些规则保证不会发生量子化的对象。位,根据需要,以确保没有舍入或发生溢出。如果你设置FullPrecisionOverride、定点数据类型控制通过个人定点属性设置。有关更多信息,请参见完整精确定点系统对象

舍入方法指定为|之一天花板|收敛|地板上|最近的||简单的||。

依赖关系

这个属性只适用于如果对象不是完全精确的模式。

指定溢出行动|之一包装|饱和|。

依赖关系

这个属性只适用于如果对象不是完全精确的模式。

滤波器系数定点数据类型指定为|之一同一个词长度作为输入|自定义|。

指定过滤系数作为定点类型numerictype(定点设计师)对象与一个Signedness汽车

依赖关系

这个属性只适用于当CoefficientsDataType属性是自定义

指定产品定点数据类型是|之一完整的精度|同样作为输入|自定义|。

指定产品定点类型扩展numerictype(定点设计师)对象与一个Signedness汽车

依赖关系

这个属性只适用于当ProductDataType属性是自定义

蓄电池定点数据类型指定为|之一完整的精度|一样的产品|同样作为输入|自定义|。

指定蓄电池定点类型扩展numerictype(定点设计师)对象与一个Signedness汽车

依赖关系

这个属性只适用于当AccumulatorDataType属性是自定义

指定输出定点数据类型是|之一蓄电池一样|一样的产品|同样作为输入|自定义|。

指定输出定点类型扩展numerictype(定点设计师)对象与一个Signedness汽车

依赖关系

这个属性只适用于当OutputDataType属性是自定义

使用

语法

描述

例子

y= firrc (x)重新取样输入x并返回重新取样信号y

输入参数

全部展开

数据输入,指定为一个列向量或矩阵的大小P——- - - - - -。列表示输入信号独立的通道。

在大多数情况下,输入的行数P可以任意的和不需要的多个DecimationFactor财产。有关详细信息,请参阅此表。

输入信号 当您运行对象在MATLAB 当你使用生成代码MATLAB编码器™
固定大小 对象支持任意输金宝app入帧长度 当你设置对象支金宝app持任意输入帧长度AllowArbitraryInputLength真正的在生成代码
适应 对象支持任意输金宝app入帧长度 对象支持任意输金宝app入帧长度

适应信号帧长度的变化一旦锁定对象,而固定大小的信号保持不变。当对象不支持任意帧长度,输入帧长度一定的倍数金宝appDecimationFactor财产。

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

输出参数

全部展开

重新取样输出,作为一个列向量或矩阵返回。当输入的大小P——- - - - - -,P不是一个多个大规模毁坏的因素,输出信号有上界的大小装天花板(LP/)———。如果P大量毁灭的多个因素,那么输出的大小(LP/)———

在输出的行数是由信号LP/,在那里P是输入的行数,l是插值系数,是大量毁灭的因素。

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

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

重新取样一个100 Hz的3/2倍正弦波信号。

创建一个dsp.SineWave对象生成一个正弦信号和54个样品每帧,包含一个音调在100 Hz,采样率为1250 Hz。

正弦= dsp.SineWave (1100“SampleRate”,1250,“SamplesPerFrame”54);%抓取一帧x = sin ();%计算输入向量tx =(0:长度(x) 1) / sine.SampleRate;

设计默认的过滤器

创建一个dsp.FIRRateConverter对象。对象使用一个联合anti-imaging和反锯齿冷杉过滤器。默认情况下,这个过滤器使用而设计的designMultirateFIR函数。功能设计滤波器基于速率转换您指定的因素,和商店的系数分子财产。的插值因子3和2的大量毁灭因素,设计系数使用的对象designMultirateFIR (2)

firrc = dsp.FIRRateConverter (3,2);

重新取样3/2倍

重新取样信号3/2倍。

y = firrc (x);

绘制原始和重新取样信号。为了画出两个信号在相同的情节,你必须占冷杉率转换器的输出延迟和扩展引入的过滤器。使用outputDelay函数计算延迟引入的价值率转换器。转变这个延迟值的输出。

可视化输入和重新取样信号。每3输出样本的输入和输出值一致,和其他输入样本,由于3/2的转化率。

傅氏国际= sine.SampleRate;[延迟,FsOut] = outputDelay (firrc国际=国际);在输入向量y %计算输出时间单位泰=(0:长度(y) 1) / FsOut-delay;茎(tx, x,“填充”MarkerSize = 4)茎(泰,y)xlim ([0.0 - 0.0145]) ylim([-1.5 - 1.5])传说(原始输入的,重新取样的)

图包含一个坐标轴对象。坐标轴对象包含2杆类型的对象。这些对象代表原始输入,重新取样。

重新取样5/3倍自动过滤设计模式

现在改变插值因子5和大量毁灭因素3。为了使滤波器设计是自动更新基于新汇率转换因素,设置NumeratorSource财产“汽车”。或者,你可以通过关键字“汽车”作为输入而创建的对象。然后运行在自动过滤对象设计模式。每次的改变率转换因素,相应地更新滤波器设计的对象。

(firrc) firrc发布。NumeratorSource =“汽车”;firrc。InterpolationFactor = 5;firrc。DecimationFactor = 3
firrc = dsp.FIRRateConverterwith properties: Main InterpolationFactor: 5 DecimationFactor: 3 NumeratorSource: 'Auto' DesignMethod: 'Kaiser' Show all properties

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

重新取样与更新的速度信号转换值。

yAuto = firrc (x);

绘制原始和重新取样信号。重新计算输出延迟和输出采样率转换速率因素已经发生了变化。注意,输入和输出一致输入样本,每3和每5输出样本,由于5/3转换因子。

[延迟,FsOut] = outputDelay (firrc国际=国际);%计算向量yAuto输入输出时间单位tyAuto =(0:长度(yAuto) 1) / FsOut-delay;茎(tx, x,“填充”MarkerSize = 4)茎(tyAuto yAuto,“r”)举行xlim ([0.0 - 0.015]) ylim([-1.5 - 1.5])传说(原始输入的,重新取样的)

图包含一个坐标轴对象。坐标轴对象包含2杆类型的对象。这些对象代表原始输入,重新取样。

指定信号插值模型

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

DesignMethod“线性”和变化的插值因素11。

(firrc) firrc发布。DesignMethod =“线性”;firrc。InterpolationFactor = 11;

重新取样信号使用线性插值模型。

yLinear = firrc (x);

绘制原始和重新取样信号。躺在一个分段线性曲线的输出样本。注意,输入和输出一致每三输入样本和每11输出样本比率11/3如预期。

[延迟,FsOut] = outputDelay (firrc国际=国际);%计算向量yLinear输入输出时间单位tyLinear =(0:长度(yLinear) 1) / FsOut-delay;茎(tx, x,“填充”MarkerSize = 4)茎(tyLinear yLinear)情节(tyLinear, yLinear,颜色= [1 0 0 0.3])xlim ([0.0 - 0.009]) ylim([-1.5 - 1.5])传说(原始输入的,重新取样的)

图包含一个坐标轴对象。坐标轴对象包含3杆类型的对象。这些对象代表原始输入,重新取样。

重新取样一个音频信号从48千赫至44 kHz,重新取样信号使用audioDeviceWriter对象。

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

创建一个dsp.AudioFileReader对象。的对象读取一个音频文件48 kHz的采样率。

L = 11;M = 12;误判率= dsp.AudioFileReader (“audio48kHz.wav”,“OutputDataType”,“单一”,“SamplesPerFrame”4 *米);

创建一个dsp.FIRRateConverter对象的插值系数l= 11和大量毁灭的因素= 12(的互质表示比率 44 k / 48 k ),一个合理的近似标准44.1 kHz的速率。对象设计滤波器使用designMultirateFIR(11、12)和商店的系数分子对象的属性。

firrc = dsp.FIRRateConverter (L, M)
firrc = dsp.FIRRateConverterwith properties: Main InterpolationFactor: 11 DecimationFactor: 12 NumeratorSource: 'Property' Numerator: [0 2.3076e-05 5.4790e-05 9.3620e-05 1.3665e-04 1.7959e-04 2.1699e-04 2.4263e-04 2.5004e-04 2.3320e-04 1.8731e-04 1.0959e-04 0 -1.3820e-04 -2.9809e-04 -4.6908e-04 -6.3723e-04 -7.8603e-04 -8.9751e-04 -9.5372e-04 -9.3845e-04 ... ] Show all properties

创建一个audioDeviceWriter对象。指定采样率为44100 Hz。

adw = audioDeviceWriter (44100);

读取音频文件,音频信号的采样率转换,重新取样音频。

~结束(误判率)audio1 =误判率();audio2 = firrc (audio1);adw (audio2);结束发布(误判率)发布(adw)

算法

冷杉率转换器实现有效地使用多相结构。

推导出多相结构,从数字滤波器的传递函数:这冷杉过滤器是一种结合anti-imaging和抗混叠滤波器。

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)。

从概念上讲,冷杉率转换器包含一个upsampler,后跟一个anti-imaging相结合,反锯齿冷杉过滤器H(z),其次是downsampler。

冷杉率转换器包含一个upsampler后跟anti-imaging相结合,抗锯齿冷杉过滤器,其次是downsampler。

取代H(z)多相表示。

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

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

你可以换upsampling运营商延迟块,加法器换向开关。为接下来的downsampler帐户,开关动作的步骤大小。开关接收到第一个样本分支0和反时针方向移动,每一次跳跃−1分支。

作为一个例子,考虑一个率转换器l设置为5,设置为3。多相组件是E0(z),E1(z),E2(z),E3(z),E4(z)。开关在第一个分支0开始,跳过分支1和2,接收下一个样本分支3,然后跳过分支4和0,接收下一个样本分支2,等等。序列的分支开关接收到数据样本是[0、3、1、4、2 0 3 1…。)。

转换器实现了l/转换首先应用插值因子l传入的数据,最后使用换向开关只收到1有效样本,占dowsampling因素。因此,采样率转换器冷杉的输出速度Lfs / M

扩展功能

版本历史

介绍了R2012a

全部展开