dsp。VariableFractionalDelay
通过时变采样周期的分数来延迟输入
描述
的dsp。VariableFractionalDelay
系统对象™沿输入的每个通道延迟输入信号指定数量的分数样例。该对象还可以并发地计算同一信号的多个延迟版本。有关示例,请参见使用多点式分数延迟的信号延迟.
该对象对输入信号进行插值以获得非整数采样间隔的新采样。您可以设置InterpolationMethod财产“线性”
,“杉”
,或“法罗”
.该对象支持时变延迟值。金宝app也就是说,延迟值可以在一个帧内从一个样本到另一个样本。属性指定延迟的最大值MaximumDelay财产。大于最大值的延迟值将被剪切到最大值。
用时变的采样周期分数来延迟输入:
创建
dsp。VariableFractionalDelay
对象并设置其属性。使用参数调用对象,就像调用函数一样。
有关系统对象如何工作的详细信息,请参见什么是系统对象?
创建
描述
创建可变分数延迟系统对象,该对象将离散时间输入延迟一个时变的采样周期分数,如第二个输入所指定的。变频
= dsp。VariableFractionalDelay
创建一个可变的分数延迟系统对象,每个指定的属性设置为指定的值。将每个属性名用单引号括起来。变频
= dsp。VariableFractionalDelay (名称,值
)
例子:dsp.VariableFractionalDelay (MaximumDelay, 50);
属性
除非另有说明,属性为<年代pan class="emphasis">nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放
功能解锁它们。
如果属性为<年代pan class="emphasis">可调,您可以随时更改其值。
有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计.
InterpolationMethod
- - - - - -<年代pan itemprop="purpose">插值方法
“线性”
(默认)|<年代pan itemprop="inputvalue">“杉”
|<年代pan itemprop="inputvalue">“法罗”
插补方法,指定为下列之一。使用这种方法,对象插值信号以获得非整数采样间隔的新样本。
“线性”
——对象使用线性插值。“杉”
该对象实现了一个多相FIR插值滤波器来插值值。“法罗”
对象使用拉格朗日方法插入值。
有关这些方法的详细信息,请参见算法.
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信号,即可以改变输入帧的大小(行数)。N即使在调用算法之后。然而,通道的数量l必须保持不变。有关示例,请参见对输入和延迟信号的可变大小信号支持金宝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信号,即即使在调用算法后也可以改变延迟信号的第一个维度。然而,通道的数量l以及每个频道的点击次数P必须保持不变。有关示例,请参见对输入和延迟信号的可变大小信号支持金宝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 0;1 0 0 0;5 2 0 0;2 1 3 0;1 6 4 4]
例子:[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 0 0 0;0.4 0.8 1.2 1.6]
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|fi
复数支持:金宝app是的
对象的功能
要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj
,使用这种语法:
发行版(obj)
例子
使用可变分数延迟的信号延迟
用不同的采样周期分数来延迟信号。
sr = dsp.SignalSource;vfd = dsp.VariableFractionalDelay;信号接收器= 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">在;1:10,干(sigd。”<年代pan style="color:#A020F0">“r”);传奇(<年代pan style="color:#A020F0">原始信号的,<年代pan style="color:#0000FF">...“可变分数延迟信号”,<年代pan style="color:#0000FF">...“位置”,<年代pan style="color:#A020F0">“最佳”)
使用多点式分数延迟的信号延迟
延迟输入信号使用dsp。VariableFractionalDelay
对象。每个延迟值都是唯一的,并且可以在一个帧内的不同样本之间变化,并且可以在不同通道之间变化。通过传递具有适当维度的延迟输入,可以并发计算同一输入信号的多个延迟版本。
假设输入是一个随机信号,有一个通道,帧大小为10。同时应用4.8和8.2个样本的延迟。
VFD = dsp。VariableFractionalDelay
VFD = dsp。VariableFractionalDelay with properties: 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-by-1-by-<年代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 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 (:,:,2) = 00 00 00 00 00 00 00 00 -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 -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 00 00 00 00 00 00 -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 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
对象。向目标算法传递一个大小为[256 1]的输入信号和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]。
更多关于
不动点
的数据类型中使用的数据类型dsp。VariableFractionalDelay
对象用于定点信号。
虽然您可以指定这些数据类型中的大多数,但以下数据类型是由对象内部计算的,不能直接在对象接口上指定。
数据类型 | 字长 | 部分长度 |
---|---|---|
Vf数据类型 | 与系数相同的字长 | 和单词长度一样 |
HoldInteger数据类型 | 与输入延迟值相同的字长 | 0 位 |
整数数据类型 | 32 位 |
0 位 |
请注意
当输入为定点时,所有内部数据类型都是定点符号。
下图显示了变量分数延迟算法的线性插值模式所使用的定点数据类型。
下图说明可变分数延迟对象如何选择与分数延迟值(v<年代ub>f).
下图显示了可变分数延迟算法在FIR插值模式中使用的定点数据类型。
可以在对象中设置系数、乘积输出、累加器和输出数据类型。该图显示输入数据存储在输入缓冲区中,具有与输入相同的数据类型和伸缩性。该对象使用所设置的输出数据类型和缩放比例将过滤后的数据和任何初始条件存储在输出缓冲区中。
当乘数的输入中至少有一个是实数时,乘数的输出是乘积输出数据类型。当乘数的两个输入都是复数时,乘法的结果是累加器数据类型。有关复杂乘法的详细信息,请参见乘法数据类型.
下图显示了当以下情况时Farrow插值模式使用的定点数据类型:
Farrow过滤器长度设置为
4
法罗小延时动作设置为
“剪辑到内核居中所需的最小值”
下图显示了当以下情况时Farrow插值模式使用的定点数据类型:
Farrow过滤器长度设置为
4
法罗小延时动作设置为
使用偏离中心的内核
Diff
从延迟值(v<年代ub>我)和法罗滤波器长度(N)按下式计算:
下图显示了FIR直接表单过滤器使用的定点数据类型。
算法
当指定分数延迟值时,算法使用线性、FIR或Farrow插值方法在非整数采样间隔内插值信号值。
线性插值方式
对于非整数延迟,在每个采样时间,线性插值方法使用内存中最接近指定延迟的两个样本来计算当时样本的值。
对于向量数据输入,输出向量,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多相结构的过滤臂为2支P.在大多数情况下,使用值P4和6之间提供了相当精确的插值值。
的designMultirateFIR
函数设计FIR插值滤波器。
以设置以下值为例:
插值滤波器半长(P)到4
每个输入样本的插值点为10个
归一化输入带宽为1
阻带衰减到80 dB
滤波器系数为:
b = designMultirateFIR(10,1,4,80);
增加过滤器半长(P)增加了插值的精度,但也增加了每个输入样本执行的计算次数。存储过滤器系数所需的内存也增加了。增加每个样本的插补点(l)增加了可表示的离散延迟点的数量,但也增加了模拟的内存需求。每个样本的计算负荷不受影响。
从0到1的标准化输入带宽允许您利用输入的带宽限制频率内容。例如,如果你知道输入信号的频率含量不高于F<年代ub>年代/4,你可以指定0.5
标准化带宽,将输出的频率内容限制在该范围内。
请注意
你可以考虑每一个l插值滤波器对应于上采样的一个输出相位l冷杉过滤器。因此,归一化输入值改善了关键区域的阻带,放宽了无信号能量频率区域的阻带要求。
法罗插值方式
在Farrow插值模式中,算法采用LaGrange方法进行插值。
用于插值的多项式的顺序是基于拉格朗日插值中使用的数据点的数量。属性中指定此值FilterLength财产。
指定当输入延迟值太小而无法将内核居中时的行为(小于<年代pan class="inlineequation"> - 1)、使用法罗小延时动作设置。
剪辑到内核居中所需的最小值
——该算法将小的输入延迟值剪辑到保持内核居中所需的最小值。这个选项会产生更精确的插值值。使用偏离中心的内核
—分数延迟是使用Farrow滤波器和偏离中心的内核来计算的。结果为输入延迟值小于<年代pan class="inlineequation"> - 1的精度低于保持内核居中所获得的结果。当farrow滤波器长度为2时,滤波器进行线性插值。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
看到系统对象在MATLAB代码生成(MATLAB编码器).
HDL代码生成
使用HDL Coder™为FPGA和ASIC设计生成Verilog和VHDL代码。
该对象支持使用Filte金宝appr Design HDL Coder™产品生成HDL代码。有关工作流和限制,请参见生成过滤系统对象的HDL代码(Filter Design HDL Coder).
版本历史
在R2012a中引入
另请参阅
功能
信息
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">generatehdl
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">designFracDelayFIR
对象
dsp。VariableIntegerDelay
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">dsp。Delay
块
Matlabコマンド
次のmatlabコマンドに対応するリンクがクリックされました。
コマンドをmatlabコマンドウィンドウに入力して実行してください。Webブラウザ,はMATLABコマンドをサポ,トしていません。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。