主要内容

dsp。FarrowRateConverter

多项式采样率转换器,具有任意转换因子

描述

dsp。FarrowRateConverter系统对象™使用Farrow结构实现了一个多项式拟合样本率转换滤波器。您可以使用此对象将信号的采样率按任意因素向上或向下转换。该对象支持定点操作。金宝app

转换信号的采样率:

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

  2. 使用参数调用对象,就像调用函数一样。

要了解有关系统对象如何工作的更多信息,请参阅什么是系统对象?

创建

描述

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

例子

FRC.= dsp.farrowrateconverter(名称,价值使用一个或多个名称值对设置属性。用单引号括起每个属性名称。

例子:frc = dsp.farrowrateconverter('Specification','Coefficients','Coefficients',[1 2; 3 4])返回一个过滤器,使用实现2nd阶多项式滤波器的自定义系数将44.1kHz转换为48 kHz。

FRC.= dsp.farrowrateconverter(FSIN.FSOUT.托尔np返回一个采样率转换器系统对象,FRC.,InputSampleRate物业设为FSIN.OutputSampleRate物业设为FSOUT.OutputRateTolerance物业设为托尔,polynomialOrder.物业设为np

特性

展开全部

除非另有说明,否则属性是不可努力,这意味着在调用对象后无法更改其值。当您调用它们时,对象锁定释放函数打开它们。

如果属性是调节,您可以随时更改其值。

有关更改属性值的详细信息,请参阅MATLAB使用系统对象的系统设计

过滤性能

输入信号的采样率,指定为Hz的正标量。输入采样率必须大于所关心的带宽。

数据类型:|双倍的|int8|int16|INT32.|INT64.|uint8.|uint16|UINT32|uint64

输出信号的采样率,指定为Hz中的正标量。输出采样率可以表示输入信号的上置或下部。

数据类型:|双倍的|int8|int16|INT32.|INT64.|uint8.|uint16|UINT32|uint64

输出采样率的最大公差,指定为0到0.5的正标量,包含。

实际输出采样率变化但在指定范围内。例如,如果OutputRateTolerance被指定为0.01,则实际输出采样率在该范围内OutputSampleRate±1%。这种灵活性通常能够更简单的过滤器设计。

数据类型:|双倍的|int8|int16|INT32.|INT64.|uint8.|uint16|UINT32|uint64

指定插值器过滤器的滤波器系数的方法,指定为以下之一:

  • '多项式订单'——使用polynomialOrder.属性指定Lagrange插值过滤器多项式的顺序。该对象计算满足速率和公差属性的系数。

  • “系数”——使用系数property直接指定多项式系数。

Lagrange插值过滤器多项式的顺序,指定为小于或等于4的正整数。对象计算满足速率和公差属性的系数。

依赖性

此属性仅在设置时应用规范'多项式订单'

数据类型:|双倍的|int8|int16|INT32.|INT64.|uint8.|uint16|UINT32|uint64

滤波多项式系数,指定为真实值m-经过-m矩阵,m是多项式顺序。

该图显示了信号流图dsp。FarrowRateConverter具有系数的对象设置为[1 2;3 4]

FIR滤波器的每个分支对应于系数矩阵的一行。

依赖性

此属性仅在设置时应用规范“系数”

数据类型:|双倍的|int8|int16|INT32.|INT64.|uint8.|uint16|UINT32|uint64

定点属性

定点运算的舍入方法,指定为字符向量。有关舍入方法的更多信息,请参见舍入模式

定点操作的溢出操作,指定为'裹''饱和'.有关溢出操作的详细信息,请参见溢出处理

滤波器系数的数据类型,指定为符号numerictype(定点设计师)对象。默认数据类型是签名的16位numerictype对象。您必须指定一个numerictype对象没有特定的二值点缩放。为了使精度最大化,对象根据系数值确定该数据类型的分数长度。

数据类型的分数延迟,指定为无符号numerictype对象。默认数据类型是无符号的8位数据numerictype对象。您必须指定一个numerictype对象没有特定的二值点缩放。为了最大化精度,对象基于分数延迟值确定该数据类型的分数长度。

数据类型的多平面图,指定为签名numerictype对象。默认数据类型是符号16位numerictype物体具有13位分数长度。您必须指定一个numerictype具有特定二进制点缩放的对象。

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

  • “与输入的字长相同”- 输出字长度和分数长度与输入相同。

  • “蓄电池一样”- 输出字长度和分数长度与累加器相同。

  • numerictype对象 - 符号定点输出数据类型。如果未指定分数长度,则对象基于输入范围计算分数长度。对象保留输入的动态范围。

使用

描述

例子

y=FRC.X重组输入X创建输出y根据速率转换定义FRC.

输入参数

展开全部

输入信号,指定为向量或矩阵。行长度X必须是整体抽取因子的倍数。每列X被视为单独的通道。

输出参数

展开全部

重新采样的信号,作为向量或矩阵返回。

对象功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,要发布命名的系统对象的系统资源obj.,使用下面的语法:

发行版(obj)

展开全部

getPolynomialCoeffients. 得到法罗速率转换滤波器的多项式系数
getActualOutputRate 获得实际产量
getRateChangeFactors 得到整体插值和抽取因子
generatehdl 生成量化DSP滤波器的HDL代码(需要)过滤器设计HDL编码器
弗里克 离散时间滤波器的频率响应系统对象
FVTool. 显示DSP滤波器的频率响应
信息 有关过滤器的信息系统对象
成本 实现过滤器的估算成本系统对象
运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特性
重启 使内部状态复位系统对象

例子

全部折叠

笔记:如果您使用的是R2016A或早期版本,则用等价物将每个调用替换为对象句法。例如,obj(x)就变成了步骤(obj, x)

注意:dsp。audiofilewriter.中不支持系统对象™金宝appMatlab在线

创建一个dsp。FarrowRateConverter系统对象™将音频信号从44.1 kHz转换为96 kHz。设置过滤器的多项式顺序。

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''采样率',FS2);

检查得到的插值和抽取因子。

[插值函数,decim] = getRateChangeFactors (frc)
Interp = 320.
DECIM = 147.

显示对象用来匹配输入样本的多项式。

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

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

为了n = 1:1:100 x = ar();y = frc(x);AW(Y);结尾

发布audiofilewriter.系统对象™以完成输出文件的创建。

发布(aw)发布(ar)

绘制第100帧数据帧的输入和输出信号。延迟输入以补偿滤波器的延迟。

T1 = 0:1 / FS1:1 / 30-1 / FS1;T2 = 0:1 / FS2:1 / 30-1 / FS2;延迟= CEIL((LagrangeOrder + 1)/ 2)/ FS1;EL1 = 1:长度(t1)--delay;EL2 = 1:长度(T2);EL2(1:延迟)= [];图形子图(2,1,1)绘图(T1(1:长度(EL1)),x(el1,1))保持绘图(T1(1:长度(EL1)),X(EL1,2))XLabel(“时间(s)”) 标题('输入频道')子图(2,1,2)图(T2(1:长度(el2)),y(el2,1))保持情节(t2(1:长度(el2)), y (el2, 2))包含(“时间(s)”) 标题('输出频道'

图中包含2个轴。标题为“输入通道”的轴1包含2个类型为line的对象。标题为输出通道的轴2包含2个类型为line的对象。

放大以查看抽样率的差异。

图次要情节(2,1,1)情节(t1(1:长度(el1)), x (el1, 1),'O-')举行情节(t2(1:长度(el2)), y (el2, 1),“d——”) xlim([0.0104 0.0107]) title('第一个频道')包含(“时间(s)”) 传奇(“输入”“输出”)子图(2,1,2)绘图(T1(1:长度(EL1)),x(EL1,2),'O-')举行情节(t2(1:长度(el2)), y (el2, 2),“d——”)XLIM([0.0104 0.0107])Xlabel(“时间(s)”) 标题(“第二频道”) 传奇(“输入”“输出”

图中包含2个轴。带标题第一通道的轴1包含2个类型的线。这些对象表示输入,输出。标题第二通道的轴2包含2个类型的2个对象。这些对象表示输入,输出。

创建一个dsp。FarrowRateConverter系统对象™具有0%的容差。输出速率等于OutputSamplerve属性.输入大小必须是抽取因子的倍数,m.这里M等于320。

frc = dsp.farrowrateconverter('InputSamplerate',96e3,“OutputSampleRate”,44.1e3);fsout = getActualOututrate(FRC)
FsOut = 44100
[l,m] = getRatechangefactors(FRC)
L = 147
m = 320.

允许对输出速率的1%容差并观察抽取因子的差异。

frc。OutputRateTolerance = 0.01;FsOut2 = getActualOutputRate (frc)
FsOut2 = 4.4308 e + 04
[L2,M2] = GetRateChangeFactors(FRC)
L2 = 6
M2 = 13.

抽取系数现在只有13。抽取因子越低,输入的灵活性越大。输出速率在该范围内OutputSampleRate ± 1%。

创建一个dsp。FarrowRateConverter具有默认属性的系统对象™。计算和显示频率响应。

frc = dsp.FarrowRateConverter;[h f] = freqz (frc);情节(f, 20 * log10 (abs (h))) ylabel (滤波器响应的)包含('频率(rad / s)'

图中包含一个坐标轴。轴包含一个线型对象。

使用默认值创建DSP.FArrowRateConverter System object™。确定其计算成本:系数数,状态数量,每个输入样本的乘法,以及每个输入样本的添加。

frc = dsp.FarrowRateConverter;CST =成本(FRC)
CST =结构体字段:NumCoefficients: 16 NumStates: 3 MultiplicationsPerInputSample: 14.1497 AdditionsPerInputSample: 11.9728

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

frc。OutputRateTolerance = 0.1;ctl =成本(frc)
CTL =结构体字段:NumCofiers:16 NumStates:3多重PultInputSample:13 AdderdsPerInputSample:11

算法

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

一旦多项式与输入数据拟合,多项式的值就可以在任何点计算出来。因此,多项式滤波器可以在输入样本之间的任意位置进行插值。

您可以使用任何订单的多项式来适应现有样本。然而,由于大阶多项式经常振荡,因此在实践中使用订单1,2,3或4的多项式。

该块通过仅不同分数延迟计算所需位置处的内插值,μ..该值是先前输入样本和电流输出样本之间的间隔。所有滤波器系数保持恒定。

  • 输入样本使用m+ 1 FIR滤波器,其中m是多项式顺序。

  • 这些滤波器的输出乘以分数延迟,μ.

  • 输出是乘法结果的和。

参考文献

[1] Hentschel, T.和G. Fettweis。可重构无线电终端中采样率转换的连续时间数字滤波器。Frequenz.卷。55,5-6,2001,pp.185-188。

扩展能力

介绍了R2014b