文档

dsp。FarrowRateConverter系统对象

多项式与任意采样率转换器转换因子

描述

FarrowRateConverter系统对象™实现一个高效polynomial-fit采样率转换过滤器使用法罗结构。您可以使用该对象转换上下一个信号的采样率任意因素。这个对象支持定点操作。万博1manbetx

将一个信号的采样率:

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

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

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

创建

语法

frc = dsp.FarrowRateConverter
frc = dsp.FarrowRateConverter(名称、值)
frc = dsp.FarrowRateConverter(国际、FSOUT TOL NP)

描述

frc= dsp.FarrowRateConverter创建一个多项式基于过滤器采样率转换器系统对象,frc。对于每个通道的输入信号,frc输入采样率转换为输出采样率。

例子

frc= dsp.FarrowRateConverter (名称,值)设置使用一个或多个属性名称-值对。在单引号附上每个属性的名字。例如,

frc = dsp.FarrowRateConverter ('Specification','Coefficients', ... 'Coefficients',[1 2; 3 4]);

frc= dsp.FarrowRateConverter (傅氏国际,FSOUT,托尔,NP)返回一个采样率转换器对象,frc,InputSampleRate属性设置为傅氏国际,OutputSampleRate属性设置为FSOUT,OutputRateTolerance属性设置为托尔,PolynomialOrder属性设置为NP

属性

全部展开

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

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

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

输入信号的采样率,指定为一个积极的标量赫兹。输入采样率必须大于感兴趣的带宽。

输出信号的采样率,指定为一个积极的标量赫兹。输出采样率可高于或低于输入采样率。

最大允许对输出信号的采样率,指定为一个积极的标量从0到0.5,包容性。

实际的输出采样率各不相同,但在指定范围内。例如,如果OutputRateTolerance被指定为0.01,实际输出采样率的范围OutputSampleRate±1%。这种灵活性允许简单的滤波器设计。

方法用于指定系数多项式内插程序,指定为以下之一:

  • 多项式阶的——指定的顺序拉格朗日插值多项式滤波器通过PolynomialOrder财产。

  • “系数”——指定多项式系数直接通过系数财产。

拉格朗日多项式插值滤波器的顺序,指定为一个正整数小于或等于4。这个属性只适用于当您设置规范多项式阶的

过滤器多项式系数,指定为一个实方阵。这个属性只适用于当您设置规范“系数”

这里的信号流图法罗率转换器与系数设置[1 2;3 4]

每个分支的冷杉过滤器对应系数矩阵的每一行。

定点属性

舍入方法,指定为一个特征向量。舍入模式的更多信息,请参阅精度和范围

溢出的行动,指定为包装饱和。溢出模式的更多细节,请参见“溢出处理”部分精度和范围

指定数据类型的滤波器系数,作为签署numerictype对象。默认类型是一个签署了16位系数数值类型对象。您必须指定一个numerictype对象没有特定的二进制扩展点。给最好的精度,这个数据类型的长度比例是基于系数值决定的。

分数延迟的数据类型指定为一个无符号numerictype对象。默认类型是一个无符号定点部分使用8位字长延迟数据类型对象。您必须指定一个numerictype对象没有特定的二进制扩展点。给最好的精度,这个数据类型的长度比例是基于分数延迟值决定的。

被乘数的数据类型指定为一个签名numerictype对象。默认类型是与16位字长签署了定点被乘数数据类型和长度可分数。您必须指定一个numerictype对象都有一个特定的二进制扩展点。

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

  • 同一个词长度作为输入——输出字长和分数的长度是一样的输入。

  • 蓄电池一样——输出字长和分数累加器的长度是相同的。

  • numerictype ()对象——签署了定点输出数据类型。如果不指定长度,一小部分的分数计算长度根据输入范围。保存输入的动态范围。

定点数据类型

信号流图显示中使用的数据类型的产率转换器定点和浮点信号的信号。您可以指定这些产率数据类型转换器。如果输入是浮点数,所有的数据类型的信号流图有相同的数据类型作为输入,可以单引号或双。

如果输入是固定的点,冷杉过滤器使用舍入模式,溢出模式,提供产率系数数据类型数据转换器。蓄电池产品数据类型和数据类型的信号流满是精度。

使用

比R2016b早版本,使用一步函数运行系统对象™算法。的参数一步是你创建的对象,其次是本节所示的参数。

例如,y =步骤(obj, x)y = obj (x)执行相同操作。

语法

y = frc (x)

描述

例子

y=frc(x)重新取样输入x创建输出y根据定义的转换速度frc

输入参数

全部展开

输入信号,指定为一个向量或矩阵。这一行的长度x必须是一个整体大量毁灭的多个因素。每一列的x被视为一个单独的通道。

输出参数

全部展开

重新取样信号,作为一个向量或矩阵返回。

对象的功能

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

发行版(obj)

全部展开

getPolynomialCoefficients 多项式滤波器系数
getActualOutputRate 实际产量,占宽容
getRateChangeFactors 整体插值和大量毁灭的因素
freqz 滤波器的频率响应
fvtool 可视化DSP滤波器的频率响应
信息 信息过滤
多相 多频滤波器的多相分解
多项式系数 滤波器系数
成本 估计成本实现过滤系统对象
一步 运行系统对象算法
释放 释放资源,并允许系统对象属性值和输入特征的变化
重置 重置系统对象的内部状态

例子

全部展开

请注意:本例中只运行在R2016b或更高版本。如果您使用的是较早的版本,用等效替换每个调用函数一步语法。例如,myObject (x)变成了一步(myObject x)。

创建一个产率转换器对象转换音频信号从44.1千赫到96千赫。法罗的多项式阶滤波器。

fs1 = 44.1 e3;fs2 = 96年e3;LagrangeOrder = 2;% 1 =线性插值frc = dsp.FarrowRateConverter (“InputSampleRate”,fs1、“OutputSampleRate”fs2,“PolynomialOrder”,LagrangeOrder);基于“增大化现实”技术= dsp.AudioFileReader (“guitar10min.ogg”,“SamplesPerFrame”,14700);aw = dsp.AudioFileWriter (“guitar10min_96kHz.wav”,“SampleRate”,fs2);

检查结果插值(左)和大量毁灭(M)的因素。

[L, M] = getRateChangeFactors (frc)
L = 320
米= 147

显示对象使用的多项式适合输入样本。

多项式系数= getPolynomialCoefficients (frc)
多项式系数=3×30.5000 - -0.5000 0 0 -1.0000 1.0000 0.5000 0.5000 0

音频信号的转换100帧。将结果写入一个文件。

n = 1:1:100 x = ar ();y = frc (x);亚历山大-伍尔兹(y);结束

释放AudioFileWriter完成创建输出文件的对象。

发布(aw)发布(ar)

情节的输入和输出信号的第100帧数据。延迟输入补偿滤波器引入的延时。

t1 = 0:1 / fs1:1/30-1 / fs1;t2 = 0:1 / fs2:1/30-1 / fs2;延迟=装天花板((LagrangeOrder + 1) / 2) / fs1;el1 = 1:长度(t1)延迟;el2 = 1:长度(t2);el2(1:延迟)= [];图次要情节(2,1,1)情节(t1(1:长度(el1)), x (el1, 1))情节(t1(1:长度(el1)), x (el1, 2))标题(的输入通道次要情节(2,1,2)情节(t2(1:长度(el2)), y (el2, 1))情节(t2(1:长度(el2)), y (el2, 2))包含(“时间(s)”)标题(“输出通道”)

放大看样本率的差异。

图次要情节(2,1,1)情节(t1(1:长度(el1)), x (el1, 1),“啊——”)举行情节(t2(1:长度(el2)), y (el2, 1),“d——”)xlim([0.0104 - 0.0107])标题(“第一频道”)传说(“输入”,“输出”次要情节(2,1,2)情节(t1(1:长度(el1)), x (el1, 2),“啊——”)举行情节(t2(1:长度(el2)), y (el2, 2),“d——”)xlim([0.0104 - 0.0107])包含(“时间(s)”)标题(“第二频道”)传说(“输入”,“输出”)

创建一个产率转换器公差为0%。输出速率匹配OutputSampleRate完全正确。然而,输入大小必须大量毁灭的多个因素,在这种情况下M . M是320。

frc = dsp.FarrowRateConverter (“InputSampleRate”96年e3,“OutputSampleRate”44.1 e3);FsOut = getActualOutputRate (frc)% #好吧
FsOut = 44100
[L, M] = getRateChangeFactors (frc)
L = 147
米= 320

允许公差1%的输出率,观察大量毁灭因素的差异。现在只有13。下大量毁灭因素输入大小允许更大的灵活性。率范围内的输出OutputSampleRate1%。

frc。OutputRateTolerance = 0.01;FsOut = getActualOutputRate (frc)
FsOut = 4.4308 e + 04
[勒,我]= getRateChangeFactors (frc)
勒= 6
我= 13

创建一个多项式采样率转换器使用默认属性。计算和显示频率响应。

frc = dsp.FarrowRateConverter;[h f] = freqz (frc);情节(f, 20 * log10 (abs (h)))

用默认值创建一个多项式采样率转换器。确定其计算成本:系数的数量,单位样本,乘法和增加单位样本。

frc = dsp.FarrowRateConverter;中科=成本(frc)
中科=结构体字段:NumCoefficients: 16 NumStates: 3 MultiplicationsPerInputSample: 13.0612 AdditionsPerInputSample: 11.9728

重复计算,允许10%的公差输出采样率。

frc。OutputRateTolerance = 0.1;ctl =成本(frc)
ctl =结构体字段:NumCoefficients: 16 NumStates: 3 MultiplicationsPerInputSample: 12 AdditionsPerInputSample: 11

算法

法罗过滤器使用霍纳氏规则实现分段多项式插值多项式计算样本。适合使用的多项式系数输入样本对应的拉格朗日插值系数。

一次多项式拟合输入数据,可以计算多项式的值在任何时候。因此,对插值多项式滤波器允许输入样本之间的任意位置。

您可以使用任意阶的多项式适合现有的样品。然而,由于大订单多项式摆动,多项式的订单1、2、3或4用于实践。

块计算插值在所需的位置只通过改变分数间隔,µ。这个间隔之间的距离之前的输入样本和当前的输出示例。所有滤波器系数保持不变。

  • 输入样本,x,过滤后使用+ 1 FIR滤波器,是多项式的秩序。

  • 这些过滤器的输出乘以分数延迟,µ

  • 输出,y乘法运算结果的总和。

引用

[1]Hentschel, T。,G. Fettweis. "Continuous-Time Digital Filters for Sample-Rate Conversion in Reconfigurable Radio Terminals." Frequenz. Volume 55, Issue 5-6, 2001, pp. 185–188.

扩展功能

介绍了R2014b

这个主题有帮助吗?