dsp。VariableFractionalDelay
通过时变的采样周期分数来延迟输入
描述
请注意
的DirectFeedthrough
物业已被移除。在MATLAB中删除此属性的所有实例<年代up>®代码。有关更多细节,请参见兼容性的考虑.
的dsp。VariableFractionalDelay
系统对象™沿输入的每个通道通过指定数量的分数采样延迟输入信号。该对象还可以并发地计算同一信号的多个延迟版本(tap)。示例请参见使用多抽头分数延迟的信号延迟.
该对象以非整数采样间隔插值输入信号以获得新的采样。您可以设置InterpolationMethod财产“线性”
,“杉”
,或“法罗”
.该对象支持时变延迟值。金宝app也就是说,在一个帧中,延迟值可以随样本的不同而变化。方法还可以指定延迟的最大值MaximumDelay财产。大于最大值的延迟值被裁剪到最大值。
延迟:通过一个时变的采样周期的分数来延迟输入:
创建
dsp。VariableFractionalDelay
对象并设置其属性。调用带有参数的对象,就像调用函数一样。
要了解更多关于System对象如何工作的信息,请参见什么是系统对象?(MATLAB)。
创建
描述
创建可变分数延迟系统对象,该对象将离散时间输入延迟一个时变的分数采样周期,该采样周期由第二个输入指定。变频
= dsp。VariableFractionalDelay
创建一个可变的分数延迟系统对象,每个指定的属性设置为指定的值。将每个属性名用单引号括起来。变频
= dsp。VariableFractionalDelay (名称,值
)
属性
除非另有说明,属性为<年代pan class="emphasis">nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放
函数解锁它们。
如果属性是<年代pan class="emphasis">可调,您可以随时更改其值。
有关更改属性值的更多信息,请参见在MATLAB中使用系统对象设计系统(MATLAB)。
InterpolationMethod
- - - - - -<年代pan itemprop="purpose">内插法
“线性”
(默认)|<年代pan itemprop="inputvalue">“杉”
|<年代pan itemprop="inputvalue">“法罗”
插值方法,指定为以下之一。使用这种方法,对象插值信号以获得非整数采样间隔的新采样。
“线性”
——物体采用线性插值。“杉”
——该对象实现了一个多相FIR插值滤波器来插值值。“法罗”
——该对象使用LaGrange方法插值值。
有关这些方法的详细信息,请参见算法.
FilterHalfLength
- - - - - -<年代pan itemprop="purpose">半长FIR插值滤波器
4
(默认)|<年代pan itemprop="inputvalue">[1 65535]范围内的正整数
FIR插值滤波器的半长,指定为范围[1 65535]内的正整数。
对于周期信号,该属性的值越大,表示高阶滤波器,产生延迟输出样本的更好估计。属性值为4到6(对应于7阶到11阶滤波器)通常就足够了。
依赖关系
此属性仅在设置InterpolationMethod财产“杉”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
|fi
FilterLength
- - - - - -<年代pan itemprop="purpose">法罗滤波器的长度
4
(默认)|<年代pan itemprop="inputvalue">大于等于2的整数
使用Farrow结构实现的FIR过滤器的长度,指定为大于或等于2的整数。如果长度等于2,过滤器执行线性插值。滤波器长度值决定了用于拉格朗日插值的多项式的阶数。
例子:4
例子:10
依赖关系
此属性仅在设置InterpolationMethod财产“法罗”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
InterpolationPointsPerSample
- - - - - -<年代pan itemprop="purpose">每个输入样本的插补点数
10
(默认)|<年代pan itemprop="inputvalue">范围[2,65,535]的正整数
在每个输入样本上计算唯一FIR插值滤波器的插补点数,指定为范围[2 65535]的正整数。
例子:20.
例子:5
依赖关系
此属性仅在设置InterpolationMethod财产“杉”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
带宽
- - - - - -<年代pan itemprop="purpose">标准化输入带宽
1
(默认)|<年代pan itemprop="inputvalue">(范围内的实标量0 1
]
用于约束插值输出样本的归一化输入带宽,指定为范围(0 1
].的值1
等于奈奎斯特频率,或采样频率的一半,Fs.使用此属性可以利用输入的带宽限制频率内容。例如,如果输入信号没有以上的频率内容Fs/4时,可以指定值为0.5
.
例子:0.5
例子:0.8
依赖关系
此属性仅在设置InterpolationMethod财产“杉”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
|fi
InitialConditions
- - - - - -<年代pan itemprop="purpose">内存中的初始值
0
(默认)|<年代pan itemprop="inputvalue">标量|<年代pan itemprop="inputvalue">1 -N——- - - - - -D数组|<年代pan itemprop="inputvalue">1 -N————(D + L)数组
对象内存中的初始值,指定为标量或数组。此属性的维度可以根据您想要的初始条件是固定的还是时变的而变化。对象处理N输入列作为一个包含米来自独立通道的连续时间样本。
对于一个米——- - - - - -N输入矩阵,U,您可以设置InitialConditions
属性如下:
要指定固定的初始条件,请指定
InitialConditions
作为一个标量值。该对象使用指定的值初始化内存中每个通道的每个示例。为时变初始条件指定的维度取决于InterpolationMethod财产。
当
InterpolationMethod
设置为“线性”
,指定InitialConditions
作为一个1
——- - - - - -N——- - - - - -D,在那里D是价值的MaximumDelay财产。当
InterpolationMethod
设置为“杉”
或“法罗”
,指定InitialConditions
作为1 × -N————(D+l数组,其中D是价值的MaximumDelay
财产。对于FIR插值,l是价值的FilterHalfLength
财产。对于法罗插值,l等于地板上
一半的价值FilterLength
属性:地板(FilterLength / 2)
.
例子:1
例子:randn (3104)
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
MaximumDelay
- - - - - -<年代pan itemprop="purpose">最大延迟
One hundred.
(默认)|<年代pan itemprop="inputvalue">[范围内的整数65535年0
]
对象可以为任何样本产生的最大延迟,指定为范围为[的整数65535年0
].对象剪辑输入延迟值大于MaximumDelay
达到那个最大值。
例子:One hundred.
例子:10
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
FIRSmallDelayAction
- - - - - -<年代pan itemprop="purpose">当对象使用FIR插值方法时,对小输入延迟值采取的措施
“剪辑到居中内核所需的最小值”
(默认)|<年代pan itemprop="inputvalue">'如果内核不能居中,切换到线性插值'
FarrowSmallDelayAction
- - - - - -<年代pan itemprop="purpose">当对象使用法罗插值方法时,对小输入延迟值采取的措施
“剪辑到居中内核所需的最小值”
(默认)|<年代pan itemprop="inputvalue">“使用偏心核”
定点属性
RoundingMethod
- - - - - -<年代pan itemprop="purpose">定点运算的舍入方法
“零”
(默认)|<年代pan itemprop="inputvalue">“天花板”
|<年代pan itemprop="inputvalue">“收敛”
|<年代pan itemprop="inputvalue">“地板”
|<年代pan itemprop="inputvalue">“最近的”
|<年代pan itemprop="inputvalue">“圆”
|<年代pan itemprop="inputvalue">“简单”
OverflowAction
- - - - - -<年代pan itemprop="purpose">定点操作的溢出动作
“包装”
(默认)|<年代pan itemprop="inputvalue">“饱和”
CoefficientsDataType
- - - - - -<年代pan itemprop="purpose">系数的数据类型
'与输入字长度相同'
(默认)|<年代pan itemprop="inputvalue">“自定义”
此对象中系数的数据类型,指定为以下之一:
'与输入字长度相同'
——对象指定系数的字长与输入的字长相同。计算分数长度以获得最佳的精度。“自定义”
参数将系数数据类型指定为自定义数字类型CustomCoefficientsDataType财产。
有关此对象使用的系数数据类型的更多信息,请参见不动点部分。
CustomCoefficientsDataType
- - - - - -<年代pan itemprop="purpose">系数字和分数长度
numerictype ([], 32)
(默认)
ProductPolynomialValueDataType
- - - - - -<年代pan itemprop="purpose">乘积多项式值的数据类型
“与第一次输入相同”
(默认)|<年代pan itemprop="inputvalue">“自定义”
乘积多项式值的数据类型,指定为以下之一:
“与第一次输入相同”
——对象指定乘积多项式值的数据类型与数据输入的数据类型相同。“自定义”
函数将乘积多项式值数据类型指定为自定义数值类型CustomProductPolynomialValueDataType财产。
有关此对象使用的乘积多项式值数据类型的更多信息,请参见不动点部分。
依赖关系
设置时应用此属性InterpolationMethod来“法罗”
.
CustomProductPolynomialValueDataType
- - - - - -<年代pan itemprop="purpose">乘积多项式值的字和分数长度
numerictype([], 32岁,10)
(默认)
乘积多项式值的字长度和分数长度,指定为自签名数字类型,字长度为32,分数长度为10。
例子:numerictype([], 30岁,5)
依赖关系
此属性仅在设置时应用InterpolationMethod来“法罗”
而且ProductPolynomialValueDataType来“自定义”
.
AccumulatorPolynomialValueDataType
- - - - - -<年代pan itemprop="purpose">累加器多项式值的数据类型
“与第一次输入相同”
(默认)|<年代pan itemprop="inputvalue">“自定义”
累加器多项式值的数据类型,指定为以下之一:
“与第一次输入相同”
——对象指定累加器多项式值数据类型与数据输入的数据类型相同。“自定义”
函数将累加器多项式值数据类型指定为自定义数值类型CustomAccumulatorPolynomialValueDataType财产。
有关此对象使用的累加器多项式值数据类型的更多信息,请参见不动点部分。
依赖关系
设置时应用此属性InterpolationMethod来“法罗”
.
CustomAccumulatorPolynomialValueDataType
- - - - - -<年代pan itemprop="purpose">累加器多项式值的字和分数长度
numerictype([], 32岁,10)
(默认)
累加器多项式值的字长度和分数长度,指定为自签名数字类型,字长度为32,分数长度为10。
例子:numerictype([], 30岁,5)
依赖关系
此属性仅在设置时应用InterpolationMethod来“法罗”
而且AccumulatorPolynomialValueDataType来“自定义”
.
MultiplicandPolynomialValueDataType
- - - - - -<年代pan itemprop="purpose">乘法和多项式值的数据类型
“与第一次输入相同”
(默认)|<年代pan itemprop="inputvalue">“自定义”
乘和多项式值的数据类型,指定为以下之一:
“与第一次输入相同”
——对象指定乘法和多项式值数据类型与数据输入的数据类型相同。“自定义”
函数将乘法和多项式值数据类型指定为自定义数字类型CustomMultiplicandPolynomialValueDataType财产。
有关此对象使用的乘法和多项式值数据类型的更多信息,请参见不动点部分。
依赖关系
设置时应用此属性InterpolationMethod来“法罗”
.
CustomMultiplicandPolynomialValueDataType
- - - - - -<年代pan itemprop="purpose">乘法和多项式值的字和分数长度
numerictype([], 32岁,10)
(默认)
乘法和多项式值的字和分数长度,指定为自签名数字类型,字长度为32,分数长度为10。
例子:numerictype([], 30岁,5)
依赖关系
此属性仅在设置时应用InterpolationMethod来“法罗”
而且MultiplicandPolynomialValueDataType来“自定义”
.
ProductDataType
- - - - - -<年代pan itemprop="purpose">产品输出的数据类型
“与第一次输入相同”
(默认)|<年代pan itemprop="inputvalue">“自定义”
此对象中产品输出的数据类型,指定为以下之一:
“与第一次输入相同”
——对象指定产品输出数据类型与数据输入数据类型相同。“自定义”
方法将产品输出数据类型指定为自定义数字类型CustomProductDataType财产。
CustomProductDataType
- - - - - -<年代pan itemprop="purpose">产品数据类型的字和分数长度
numerictype([], 32岁,10)(默认)
产品数据类型的字和分数长度,指定为自签名数字类型,字长度为32,分数长度为10。
例子:numerictype([], 30岁,5)
依赖关系
此属性仅在设置时应用ProductDataType来“自定义”
.
AccumulatorDataType
- - - - - -<年代pan itemprop="purpose">累积操作的数据类型
“与产品相同”
(默认)|<年代pan itemprop="inputvalue">“与第一次输入相同”
|<年代pan itemprop="inputvalue">“自定义”
此对象中累加操作的数据类型,指定为以下之一:
“与产品相同”
——对象指定累加器数据类型与产品输出数据类型相同。“与第一次输入相同”
——对象指定累加器数据类型与数据输入的数据类型相同。“自定义”
方法将累加器数据类型指定为自定义数字类型CustomAccumulatorDataType财产。
有关此对象使用的累加器数据类型的更多信息,请参见不动点.
CustomAccumulatorDataType
- - - - - -<年代pan itemprop="purpose">累加器数据类型的字和分数长度
numerictype([], 32岁,10)(默认)
累加器数据类型的字和分数长度,指定为自签名数字类型,字长度为32,分数长度为10。
例子:numerictype([], 30岁,5)
依赖关系
此属性仅在设置时应用AccumulatorDataType来“自定义”
.
OutputDataType
- - - - - -<年代pan itemprop="purpose">对象输出的数据类型
“与累加器相同”
(默认)|<年代pan itemprop="inputvalue">“与第一次输入相同”
|<年代pan itemprop="inputvalue">“自定义”
对象输出的数据类型,指定为以下之一:
“与累加器相同”
——对象指定输出数据类型与累加器输出数据类型相同。“与第一次输入相同”
——对象指定输出数据类型与输入数据类型相同。“自定义”
方法将输出数据类型指定为自定义数字类型CustomOutputDataType财产。
有关此对象使用的输出数据类型的更多信息,请参见不动点部分。
CustomOutputDataType
- - - - - -<年代pan itemprop="purpose">输出数据类型的字和分数长度
numerictype([], 32岁,10)(默认)
输出数据类型的字和分数长度,指定为自签名数字类型,字长度为32,分数长度为10。
例子:numerictype([], 30岁,5)
依赖关系
此属性仅在设置时应用OutputDataType来“自定义”
.
使用
描述
将输入延迟到变量分数延迟系统对象vfdOut
=(变频输入
,d
)d
样本。d
必须小于或等于您在MaximumDelay属性。
大于指定的最大延迟的延迟值被适当地裁剪。输入的每一列都被视为一个独立的通道。
输入参数
输入
- - - - - -<年代pan itemprop="purpose">数据输入
向量|<年代pan itemprop="inputvalue">矩阵
数据输入,指定为向量或矩阵。数据输入必须与延迟输入具有相同的数据类型。
该对象支持可变大小的输入金宝app信号。也就是说,即使在调用算法之后,您也可以更改输入帧的大小(行数)。然而,通道的数量必须保持不变。示例请参见支持输入和延迟信号的可变大小信号金宝app.
例子:[1 2 3 4;5 1 4 2;2 6 2 3;1 2 3 2;3 4 5 6;1 2 3 1]
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|fi
复数支持:金宝app是的
d
- - - - - -<年代pan itemprop="purpose">延迟输入
标量|<年代pan itemprop="inputvalue">向量|<年代pan itemprop="inputvalue">矩阵|<年代pan itemprop="inputvalue">N- d数组
延迟输入,指定为标量、向量、矩阵或N- d数组。延迟可以是整数或小数值。当延迟输入为分数值时,该对象以非整数采样间隔插值信号以获得新的采样。延迟输入必须与数据输入具有相同的数据类型。
该对象支持可变大小的延迟金宝app信号。也就是说,你可以在调用算法后改变延迟信号的一个或两个维度。然而,该对象必须确保输出通道的结果数量保持不变。示例请参见支持输入和延迟信号的可变大小信号金宝app.
下表显示了延迟输入的尺寸对数据输入的影响。
数据输入 | 延迟输入 | 输出 | 延迟输入对数据输入的影响 |
---|---|---|---|
N-by-1(一个通道的帧大小等于N) | 标量 | N1 | 一个延迟值应用于输入通道 |
N-by-1(一个通道的帧大小等于N) | N1 | N1 | 延迟值在不同样本的帧内是不同的 |
N-by-1(一个通道的帧大小等于N) | 1 -P | N——- - - - - -P | P点击每个频道。输出中的每一列都是输入的延迟版本。延迟值由延迟输入向量中的相应元素指定。 |
N-by-1(一个通道的帧大小等于N) | N——- - - - - -P | N——- - - - - -P | P点击每个频道。此外,在不同的样本中,延迟在每一帧中都是不同的。 |
N——- - - - - -l(l通道的帧大小等于N) | 标量 | N——- - - - - -l | 一个延迟值应用于所有输入通道 |
N——- - - - - -l(l通道的帧大小等于N) | 1 -l | N——- - - - - -l | 每个输入通道的唯一延迟值 |
N——- - - - - -l(l通道的帧大小等于N) | N1 | N——- - - - - -l | 延迟值在不同样本的帧内是不同的。为所有通道设置相同的延迟值。 |
N——- - - - - -l(l通道的帧大小等于N) | N——- - - - - -l | N——- - - - - -l | 延迟值在不同样本的帧内是不同的。每个输入通道的不同延迟值。 |
N——- - - - - -l(l通道的帧大小等于N) | 1-by-1-by -P | N——- - - - - -l——- - - - - -P | l频道。P点击每个频道。所有频道都有相同的延迟。 |
N——- - - - - -l(l通道的帧大小等于N) | 1 -l——- - - - - -P | N——- - - - - -l——- - - - - -P | l频道。P点击每个频道。延迟因渠道而异。 |
N——- - - - - -l(l通道的帧大小等于N) | N-by-1-by -P | N——- - - - - -l——- - - - - -P | l频道。P点击每个频道。延迟在不同样本的帧内是不同的。为每个通道设置相同的延迟值。 |
N——- - - - - -l(l通道的帧大小等于N) | N——- - - - - -l——- - - - - -P | N——- - - - - -l——- - - - - -P | l频道。P点击每个频道。延迟在不同样本的帧内是不同的。为每个通道设置不同的延迟值。 |
例子:[2 3 4 5]
例子:[2.5]
例子:[5.6]
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|fi
输出参数
vfdOut
-延迟输出
向量|矩阵
延迟输出,作为向量或矩阵返回。输出的大小、数据类型和复杂性与数据输入的大小、数据类型和复杂性相匹配。
下表显示了数据输入和延迟输入维度如何影响输出维度:
数据输入 | 延迟输入 | 输出 | 延迟输入对数据输入的影响 |
---|---|---|---|
N-by-1(一个通道的帧大小等于N) | 标量 | N1 | 一个延迟值应用于输入通道 |
N-by-1(一个通道的帧大小等于N) | N1 | N1 | 延迟值在不同样本的帧内是不同的 |
N-by-1(一个通道的帧大小等于N) | 1 -P | N——- - - - - -P | P点击每个频道。输出中的每一列都是输入的延迟版本。延迟值由延迟输入向量中的相应元素指定。 |
N-by-1(一个通道的帧大小等于N) | N——- - - - - -P | N——- - - - - -P | P点击每个频道。此外,在不同的样本中,延迟在每一帧中都是不同的。 |
N——- - - - - -l(l通道的帧大小等于N) | 标量 | N——- - - - - -l | 一个延迟值应用于所有输入通道 |
N——- - - - - -l(l通道的帧大小等于N) | 1 -l | N——- - - - - -l | 每个输入通道的唯一延迟值 |
N——- - - - - -l(l通道的帧大小等于N) | N1 | N——- - - - - -l | 延迟值在不同样本的帧内是不同的。为所有通道设置相同的延迟值。 |
N——- - - - - -l(l通道的帧大小等于N) | N——- - - - - -l | N——- - - - - -l | 延迟值在不同样本的帧内是不同的。每个输入通道的不同延迟值。 |
N——- - - - - -l(l通道的帧大小等于N) | 1-by-1-by -P | N——- - - - - -l——- - - - - -P | l频道。P点击每个频道。所有频道都一样。 |
N——- - - - - -l(l通道的帧大小等于N) | 1 -l——- - - - - -P | N——- - - - - -l——- - - - - -P | l频道。P点击每个频道。不同频道的点击不同。 |
N——- - - - - -l(l通道的帧大小等于N) | N-by-1-by -P | N——- - - - - -l——- - - - - -P | l频道。P点击每个频道。延迟在不同样本的帧内是不同的。为每个通道设置相同的延迟值。 |
N——- - - - - -l(l通道的帧大小等于N) | N——- - - - - -l——- - - - - -P | N——- - - - - -l——- - - - - -P | l频道。P点击每个频道。延迟在不同样本的帧内是不同的。为每个通道设置不同的延迟值。 |
例子:[0 0 0 0;0 0 0;1 0 0 0;5 2 0 0;2 1 3 0;
例子:[0 0 0 0;0 0 0 0;0.5 1.0 1.5 2.0;3 1.5 3.5 3.0;3.5 3.5 3.0 2.5;
例子:[0 0 0 0;0 0 0 0;0 0 0;0 0 0;0 0 0;
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|fi
复数支持:金宝app是的
对象的功能
要使用对象函数,请将System对象指定为第一个输入参数。例如,释放名为obj
,使用以下语法:
发行版(obj)
例子
信号延迟使用可变分数延迟
请注意:如果您使用的是R2016a或更早的版本,请将对对象的每次调用替换为等效的一步
语法。例如,obj (x)
就变成了步骤(obj, x)
.
通过不同的采样周期分数来延迟信号。
sr = dsp.SignalSource;vfd = dsp.VariableFractionalDelay;sink = dsp.SignalSink;<年代pan style="color:#0000FF">为Ii = 1:10 delayedsig = vfd(sr(), Ii /10);水槽(delayedsig);<年代pan style="color:#0000FF">结束sigd = sink.Buffer;
输出sigd
对应于按固定时间间隔采样的延迟信号的值。为了绘制信号样本振幅恒定的时间瞬间,将信号视为采样瞬间。
阀杆(sr。信号,1:10,<年代pan style="color:#A020F0">“b”)举行<年代pan style="color:#A020F0">在;茎(sigd。“1:10,<年代pan style="color:#A020F0">“r”);传奇(<年代pan style="color:#A020F0">原始信号的,<年代pan style="color:#0000FF">...“可变分数延迟信号”,<年代pan style="color:#0000FF">...“位置”,<年代pan style="color:#A020F0">“最佳”)
使用多抽头分数延迟的信号延迟
请注意:如果您使用的是R2016a或更早的版本,请用等效的步骤语法替换对对象的每次调用。例如,obj(x)变成step(obj,x)。
方法延迟输入信号dsp。VariableFractionalDelay
对象。每个延迟值都是唯一的,可以在同一帧内的不同样本之间变化,也可以在不同通道之间变化。通过传递具有适当维度的延迟输入,可以同时计算同一输入信号的多个延迟版本。
假设输入是一个具有一个通道和10帧大小的随机信号。同时应用4.8和8.2个样本的延迟。
VFD = dsp。VariableFractionalDelay
VFD = dsp。InterpolationMethod: 'Linear' InitialConditions: 0 MaximumDelay: 100显示所有属性
In = randn(10,1)
在=<年代pan class="emphasis">10×10.5377 1.8339 -2.2588 0.8622 0.3188 -1.3077 -0.4336 0.3426 3.5784 2.7694
delayVec = [4.8 8.2];outcase1 = vfd(in,delayVec)
outcase1 =<年代pan class="emphasis">10×200 00 00 00 0.1075 0 0.7969 0 1.0153 0 -1.6346 0 0.7535 0.4301 -0.0065 1.5746
输出中的每个通道分别延迟4.8和8.2个样本。该对象使用“线性”插值方法来计算延迟值。有关详细信息,请参阅dsp。变量fractionaldelay对象页面
.
对于相同的延迟向量,如果输入有2个通道,则将延迟向量的每个元素应用到输入中相应的通道上。
释放(vfd);In = randn(10,2)
在=<年代pan class="emphasis">10×2-1.3499 0.6715 3.0349 -1.2075 0.7254 0.7172 -0.0631 1.6302 0.7147 0.4889 -0.2050 1.0347 -0.1241 0.7269 1.4897 -0.3034 1.4090 0.2939 1.4172 -0.7873
outcase2 = vfd(in,delayVec)
outcase2 =<年代pan class="emphasis">10×200 00 00 00 -0.2700 0 -0.4729 0 2.5730 0 0.5677 0 0.0925 0.5372 0.5308 -0.8317
要计算二维输入信号的多个延迟版本,将延迟向量作为三维数组传递。第三维度包含对信号的轻拍或延迟。如果传递一个非单例的三维(1 × 1 × -<年代pan class="emphasis">P),<年代pan class="emphasis">P表示点击的次数,相同的点击应用于所有通道。在第三维度中通过延迟[4.8 8.2]。
清晰的<年代pan style="color:#A020F0">delayVec;delayVec(1,1,1) = 4.8;delayVec(1,1,2) = 8.2;谁<年代pan style="color:#A020F0">delayVec
名称大小字节类属性delayVec 1x1x2 16 double
delayVec
是一个1 × 1 × 2的数组。将二维输入传递给dsp。VariableFractionalDelay
对象的延迟向量。
释放(vfd);outcase3 = vfd(in,delayVec)
Outcase3 = Outcase3 (:,:,1) = 00 00 00 0 -0.2700 0.1343 -0.4729 0.2957 2.5730 -0.8225 0.5677 0.8998 0.0925 1.4020 0.5308 0.5981 Outcase3 (:,:, 25) = 00 00 00 00 00 00 0 -1.0799 0.5372 2.1580 -0.8317
谁<年代pan style="color:#A020F0">outcase3
名称大小字节类属性outcase3 10x2x2 320 double
outcase3 (:,: 1)
表示经过4.8个样本延迟的输入信号。outcase3 (:: 2)
表示被8.2个样本延迟的输入信号。在所有通道上应用相同的延迟。
此外,如果传递一个非单例二次元(1 × -)<年代pan class="emphasis">l——- - - - - -<年代pan class="emphasis">P),<年代pan class="emphasis">l是输入通道的数量,不同通道的点击不同。应用延迟向量[2.3 3.5]和[4.4 5.6]来计算输入信号的两个延迟版本。
清晰的<年代pan style="color:#A020F0">delayVec;delayVec(1,1,1) = 2.3;delayVec(1,2,1) = 3.5;delayVec(1,1,2) = 4.4;delayVec(1,2,2) = 5.6;谁<年代pan style="color:#A020F0">delayVec
名称大小字节类属性delayVec 1x2x2 32 double
释放(vfd);outcase4 = vfd(in,delayVec)
Outcase4 = Outcase4 (:,:,1) = 00 00 -0.9449 0 1.7195 0.3357 1.4183 -0.2680 0.1735 -0.2451 0.4814 1.1737 0.0709 1.0596 -0.1484 0.7618 1.0055 0.8808 Outcase4 (:,:,2) = 00 00 00 00 0 -0.8099 0 1.2810 0.2686 1.6492 -0.0801 0.2523 -0.4376 0.4036 1.0824 0.1629 1.1737
谁<年代pan style="color:#A020F0">outcase4
名称大小字节类属性outcase4 10x2x2 320 double
outcase4 (:,: 1)
包含被向量[2.3 3.5]延迟的输入信号。outcase4 (:: 2)
包含被向量[4.4 5.6]延迟的输入信号。
为了在不同样本之间改变帧内的延迟,延迟向量的第一个维度(<年代pan class="emphasis">N-by-1-by -<年代pan class="emphasis">P或N——- - - - - -<年代pan class="emphasis">l——- - - - - -<年代pan class="emphasis">P)必须等于输入帧的大小(<年代pan class="emphasis">N——- - - - - -<年代pan class="emphasis">L)。传递一个大小为10 × 1 × 2的延迟向量。
清晰的<年代pan style="color:#A020F0">delayVec;delayVec(:,1,1) = 3.1:0.1:4;delayVec(:,1,2) = 0.1:0.1:1;谁<年代pan style="color:#A020F0">delayVec
名称大小字节类属性delayVec 10x1x2 160 double
释放(vfd);outcase5 = vfd(in,delayVec)
Outcase5 = Outcase5 (:,:,1) = 0 0 0 0 0 -0.8099 0.4029 0.8425 -0.2680 2.1111 -0.4376 0.4889 0.9911 0.0925 1.4020 0.6228 0.5435 -0.2050 1.0347 Outcase5 (:,:,2) = -1.2149 0.6043 2.1580 -0.8317 1.4183 0.1398 0.2523 1.2650 0.3258 1.0596 0.3469 0.7072 -0.1807 0.9424 0.1986 0.5208 1.4816 -0.2437 1.4090 0.2939
延迟因通道中的每个元素而异。相同的延迟值集适用于所有通道。delayVec (:, - 1, - 1)
适用于第一个延迟信号和delayVec (:, 1, 2)
适用于第二延迟信号。
支持输入和延迟信号的可变大小信号金宝app
dsp。VariableFractionalDelay
系统对象支持可变大小的输入和金宝app延迟信号。也就是说,即使在调用算法之后,也可以改变输入信号和延迟信号的维数。你可以同时改变一个或两个信号的尺寸。同时,它们必须确保输出通道的数量(列的数量)保持不变。
输入信号的可变尺寸支持金宝app
输入信号的每一帧中的样本数量可以改变。然而,输入通道的数量必须保持不变。
创建一个dsp。VariableFractionalDelay
对象。向对象算法传递一个大小为[2561]的输入信号,延迟为1.4。在对算法的后续调用中,将输入帧大小分别更改为128、512和64
vfd = dsp.VariableFractionalDelay;(变频randn (256 1), 1.4);(变频randn (128 1), 1.4);(变频randn (512 1), 1.4);(变频randn (64 1), 1.4);
输出帧大小(行数)根据输入帧大小而变化。每种情况下输出通道的数量都是1。
若要更改输入通道的数量,请释放对象。
释放(vfd);
使用双通道输入调用算法,并在后续调用中改变输入帧大小。
(变频randn (256 2), 1.4);(变频randn (128 2), 1.4);
对延迟信号的可变尺寸支持金宝app
除了输入外,延迟信号也可以变化。也就是说,你可以在调用算法后改变延迟信号的一个或两个维度。然而,该对象必须确保输出通道的结果数量保持不变。延迟信号可以是标量、向量、矩阵或N-D数组。
释放(vfd);2)变频(randn(512年,randn (512 2));2)变频(randn(128年,[1.4 - 1.7]);2)变频(randn(256年,randn (256,1));(变频randn (128 2), 1.4);
在每种情况下,输出通道的数量都是2。若要对输入信号施加不同的延迟,请释放对象。
释放(vfd);(变频randn (256 1), randn (256 7));(变频randn (512 1), randn (512 7));(变频randn (100 1), randn (100 7));(变频randn (100 1), randn (7));
每种情况下的输出分别是[256 7]、[512 7]、[100 7]和[100 7]。
算法
当指定一个分数延迟值时,算法使用线性、FIR或法罗插值方法在非整数采样间隔内插值信号值。
线性插值方式
对于非整数延迟,在每个采样时间,线性插值方法使用内存中最接近指定延迟的两个样本来计算该时间的样本值。
对于一个矢量数据输入,输出矢量,y,使用以下关系式计算:
vi =第5和6楼(v) vf = y (i) = U (i-vi-1) * vf + U (i-vi) * (1-vf)
在那里,
我——当前样本的索引
v——分数延迟
6——延迟的整数部分
vf——部分延迟
U——输入数据向量
y——输出数据向量
U (i-vi),U (i-vi-1)—内存中最接近指定延迟的两个样本
i-vi——在样本中,当前指标与插补线上最近点之间的距离。
变量分数延迟存储距离每个通道在输入处接收到的最新样本+1,其中距离指定的最大延迟。U表示存储的样本。
FIR插值方式
在FIR插补模式下,可变分数延迟存储距离+P每个通道在输入处接收到的最新样本+1,其中P指定的内插滤波器半长。
在这种模式下,对象提供了一组离散的分数延迟:
如果v小于P- 1、行为取决于FIR小延时值的动作设定。当输入延迟值太小而不能使内核居中时,可以指定对象的行为<年代pan class="emphasis">P-1),通过设置FIR小延时值动作设置:
剪辑到居中内核所需的最小值
——FIR插值方法仍在使用。小的输入延迟值被裁剪为内核居中所需的最小值。如果内核不能居中,切换到线性插值
—当输入延迟值小于时,使用线性插值计算分数延迟P1。
在FIR插补模式下,算法实现多相结构,在指定的时延下为每个样本计算一个值。结构的每个臂对应不同的延迟值。每个样本的计算输出与臂的输出相对应,其延迟值最接近指定的输入延迟。因此,实际上只有离散的延迟集是可能的。每个的系数的个数l多相结构的过滤臂为2P.在大多数情况下,使用的值P4到6之间提供了相当精确的插值值。
的designMultirateFIR
函数设计FIR插值滤波器。
例如,设置以下值:
插值滤波器半长(P)为4
每个输入样本插补点到10
标准化输入带宽为1
阻带衰减到80分贝
滤波器系数由:
b = designMultirateFIR(10,1,4,80);
增加过滤器的半长(P)增加了插值的精度,但也增加了每个输入样本执行的计算次数。存储过滤器系数所需的内存数量也增加了。增加每个样本的插补点(l)增加了可表示的离散延迟点的数量,但也增加了模拟的内存需求。每个样本的计算负载不受影响。
从0到1的标准化输入带宽允许您利用输入的带宽限制的频率内容。例如,如果你知道输入信号的频率内容不超过F<年代ub>年代/4,可以指定0.5
归一化带宽,将输出的频率内容限制在该范围内。
请注意
你可以考虑每一个l插值滤波器对应于上采样by的一个输出相位l冷杉过滤器。因此,归一化输入值改善了临界区域的阻带,放松了无信号能量频率区域的阻带要求。
法罗插补方式
在法罗插值模式下,算法采用拉格朗日方法插值值。
用于插值的多项式的顺序是基于在拉格朗日插值中使用的数据点的数量。该值在FilterLength财产。
指定当输入延迟值太小而无法使内核居中(小于<年代pan class="inlinemediaobject">- 1)、使用法罗小延时动作设定。
剪辑到居中内核所需的最小值
—算法将小的输入延迟值剪辑到必要的最小值,以保持内核居中。这个选项会产生更精确的插值值。使用偏心核
—分数延迟是使用一个偏心核法罗滤波器计算的。输入延迟值小于的结果<年代pan class="inlinemediaobject">- 1比保持核居中得到的结果更不准确。
当farrow滤波器的长度为2时,滤波器进行线性插值。
兼容性的考虑
删除DirectFeedthrough属性
R2018a开始出现错误
的DirectFeedthrough
属性已在R2018a中删除。试图修改此属性会导致错误。确保从MATLAB代码中删除了对该属性的所有引用。的dsp。VariableFractionalDelay
对象现在在默认情况下以直接馈通模式操作。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
看到MATLAB代码生成中的系统对象(MATLAB编码器)。
定点转换
使用定点设计器设计和模拟定点系统。
中使用的数据类型dsp。VariableFractionalDelay
对象用于定点信号。
尽管可以指定这些数据类型中的大多数,但以下数据类型是由对象内部计算的,不能在对象接口上直接指定。
数据类型 | 字长 | 部分长度 |
---|---|---|
Vf数据类型 | 与系数相同的字长 | 和单词的长度一样 |
HoldInteger数据类型 | 与输入延迟值相同的字长 | 0 位 |
整型数据类型 | 32 位 |
0 位 |
请注意
当输入是定点时,所有内部数据类型都是有符号定点。
线性插值方式
下图显示了可变分数延迟算法的线性插值模式所使用的不动点数据类型。
FIR插值方式
下图说明了可变分数延迟对象如何选择与分数延迟值最接近的多相滤波器结构臂(v<年代ub>f).
下图显示了可变分数延迟算法在FIR插值模式下使用的定点数据类型。
可以在对象中设置系数、乘积输出、累加器和输出数据类型。此图显示输入数据存储在与输入具有相同数据类型和伸缩的输入缓冲区中。该对象使用您设置的输出数据类型和伸缩,将过滤后的数据和任何初始条件存储在输出缓冲区中。
当乘数的至少一个输入是实数时,乘数的输出在乘积输出数据类型中。当乘数的两个输入都是复数时,乘法的结果在累加器数据类型中。有关复数乘法的详细信息,请参见乘法数据类型.
法罗插补方式
下图显示了当Farrow插值模式使用的定点数据类型:
法罗过滤器长度设置为
4
法罗小延时动作设置为
“剪辑到居中内核所需的最小值”
下图显示了当Farrow插值模式使用的定点数据类型:
法罗过滤器长度设置为
4
法罗小延时动作设置为
“使用偏心核”
Diff
从延迟值的整数部分计算(v<年代ub>我)和法罗过滤器长度(N)根据下式:
下图显示了FIR直接表单过滤器使用的定点数据类型。
另请参阅
功能
generatehdl
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">信息
系统对象
dsp。Delay
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">dsp。DelayLine
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">dsp。VariableIntegerDelay
块
在R2012a中介绍
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。