文档

dsp.cicinterpolator.

用级联积分器梳状滤波器插值信号

描述

dsp.cicinterpolator.System对象™使用级联集成电路(CIC)插值滤波器插入输入信号。CIC插值滤波器结构包括N段级联梳状滤波器,随后速率变化为R,紧随其后的是N级联集成商的部分。有关详细信息,请参阅算法.的NumSections属性指定N, CIC过滤器中的节数。的InterpolationFactor属性指定R,即插值因子。的getFixedPointInfo函数返回定点段的单词长度和分数长度,以及dsp.cicinterpolator.系统对象。属性也可以为这个System对象生成HDL代码generatehdl.函数。

请注意

此对象需要定点设计器™许可证。

使用CIC滤波器插入信号:

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

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

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?(matlab)。

创建

描述

例子

cicInterp= dsp.cicinterpolator.创建CIC插值System对象,该对象对输入信号应用CIC插值滤波器。

例子

cicInterp= dsp.cicinterpolator.(RN创建一个CIC插值对象InterpolationFactor属性设置为R,DifferentialDelay属性设置为,NumSections属性设置为N

cicInterp= dsp.cicinterpolator.(名称,价值创建CIC插值对象,将每个指定的属性设置为指定的值。将每个属性名用单引号括起来。您可以将此语法与之前的任何输入参数组合一起使用。

属性

全部展开

除非另有说明,属性是nontunable,这意味着您不能在调用对象之后更改它们的值。对象在调用时锁定,而释放函数打开它们。

如果一个属性是可调,您可以随时更改它的值。

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象进行系统设计(matlab)。

输入信号被插值的因子,指定为一个正整数。

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

在滤波器的每个梳状段中使用的微分延迟值,指定为正整数。有关详细信息,请参阅算法.如果微分延迟是内置整数类数据类型,则插值因子必须是相同的整数数据类型或.例如,如果微分延迟是int8,然后插值因子必须是一个int8

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

CIC滤波器的积分器和梳状部分的数量,指定为正整数。此数字表示梳状部分或滤波器的积分器部分中的部分的数量。CIC滤波器中的部分的总数是此属性给出的部分的两倍。

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

定点物业名称,指定为下列之一:

固定点字长度用于每个过滤器部分,指定为标量或整数的行向量。字长度必须大于或等于2.如果指定标量,则该值适用于过滤器的所有部分。如果指定矢量,则向量必须长2×NumSections

例子:32

例子:[32 32 32 32 32]

依赖关系

属性设置时将应用此属性fixedpointdattype.财产“指定单词长度”指定单词和分数长度

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

用于每个过滤器部分的定点分数长度,指定为标量或整数的行向量。分数长度可以是负的,0或正的。如果指定标量,则该值适用于过滤器的所有部分。如果指定矢量,则向量必须长2×NumSections

例子:-2

例子:[-2 0 5 8]

依赖关系

属性设置时将应用此属性fixedpointdattype.财产指定单词和分数长度

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

用于筛选器输出的定点字长,指定为大于或等于2的标量整数。

依赖关系

属性设置时将应用此属性fixedpointdattype.财产属于“最小节字长”“指定单词长度”,或指定单词和分数长度

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

用于滤波器输出的定点分数长度,指定为标量整数。

依赖关系

属性设置时将应用此属性fixedpointdattype.财产指定单词和分数长度

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

用法

描述

例子

cicInterpOut= cicInterp(输入)使用CIC插值器内插输入输入。

输入参数

全部展开

数据输入,指定为向量或矩阵。如果输入是单个或双数据类型,则忽略与固定点数据类型相关的属性设置。

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

输出参数

全部展开

插值输出,作为向量或矩阵返回。输出帧大小等于(InterpolationFactor)×输入框大小。输出数据的复杂性与输入数据的复杂性匹配。如果输入是,则输出数据类型与输入数据类型匹配。

如果输入是内置整数数据类型或定点数据类型,则输出字长和分数长度取决于通过fixedpointdattype.财产。

完整的精度

fixedpointdattype.财产设置为“充分精确”,以下关系适用:

W l 输出 W l 输入 + N u 年代 e c t F l 输出 F l 输入

在那里,

  • 输出——输出数据的字长。

  • FL输出——输出数据的分数长度。

  • 输入——输入数据的字长。

  • FL输入——输入数据的分数长度。

  • numsect.中指定的CIC过滤器中的节数NumSections财产。

输入FL输入从您传递到对象算法的数据输入继承。对于内置整数输入,分数长度为0。

最小节字长

fixedpointdattype.财产设置为“最小节字长”中指定的输出字长OutputWordLength财产。输出分数长度,FL输出为下式:

F l 输出 W l 输出 W l 输入 F l 输入 + N u 年代 e c t

指定单词和分数长度

fixedpointdattype.被设置为指定单词和分数长度,输出的字长和分数长度是您在OutputWordLengthOutputFractionLength属性。

指定字的长度

fixedpointdattype.被设置为“指定单词长度”,输出字长度是您在中指定的值OutputWordLength财产。输出分数长度,FL输出为下式:

F l 输出 W l 输出 W l 输入 F l 输入 + N u 年代 e c t

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

对象的功能

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj,使用下面的语法:

释放(obj)

全部展开

generatehdl. 为量化DSP滤波器生成HDL代码(需要过滤器设计HDL编码器)
impz 离散时间过滤系统对象的脉冲响应
freqz 滤波器频率响应
phasez 过滤器未包装的阶段响应
fvtool 可视化DSP滤波器的频率响应
获得 CIC滤波器增益
getFixedPointInfo 获得定点字和分数长度
信息 关于过滤器系统对象的信息
一步 运行系统对象算法
释放 释放资源并允许更改System对象属性值和输入特征
重置 重置系统对象的内部状态

要查看此对象支持的筛选器分析方法列表,请键入金宝appdsp.CICInterpolator.helpFilterAnalysis在MATLAB®命令提示符。相应的函数参考页面请参见过滤系统对象的分析方法

例子

全部展开

请注意:如果您使用的是使用R2016A或早期版本,请使用等效的步骤语法替换对对象的每个调用。例如,obj (x)成为步骤(obj, x)

创建一个dsp.cicinterpolator.系统对象™InterpolationFactor设置为2。插入信号的一个因子2从22.05 kHz到44.1 kHz。

cicint = dsp.CICInterpolator (2);

创建512个样本的固定点正弦输入信号,采样频率22.05 kHz。

Fs = 22.05 e3;n =(0:511)”;% 0.0113秒信号X = FI(SIN(2 * PI * 1E3 / FS * N),TRUE,16,15);

创建dsp。年代ignalSource系统对象。

src = dsp.SignalSource (x, 32);

将输出插入每帧64个样本。

y = 0 (64);Ii = 1:16 y(Ii,:) = cicint(src());结束

绘制原始和内插信号的第一帧。输出延迟为2个样本。

gainCIC =...(cicint.InterpolationFactor * cicint.DifferentialDelay)...^ cicint.NumSections / cicint.InterpolationFactor;茎(n一句子)/ Fs,双(x一句子)“r”“填充”) 抓住;茎(n (1:61) / (Fs * cicint.InterpolationFactor),...双(y(1, 4:结束))/ gainCIC,“b”)包含(的时间(秒)) ylabel (信号幅度的)传说(原始信号的“插值信号”...'地点'“北”) 抓住离开

使用信息方法“长”格式,获取定点过滤器部分的单词长度和分数长度以及过滤器输出。

信息(cicint“长”
ans = '离散冷杉多重速率的过滤器(真实 ) ----------------------------------------- 滤波器结构:级联Integrator-Comb插入器插值系数:2微分延迟:1的部分:2稳定:是的线性相位:是的(1型)实施成本数量的乘数:0条数量:4的状态数:每个输入样本的4乘:0每个输入样本的添加:6固定点信息Section单词长度:17 17 17 17 Section fraction长度:15 15 15 15 Output word length: 17 Output fraction length: 15 '

使用getFixedPointInfo函数,可以确定定点段的单词长度和分数长度以及dsp。C我CDecimatordsp.cicinterpolator.系统对象。过滤器部分和输出的数据类型取决于fixedpointdattype.过滤系统对象™的属性。

完整的精度

创建一个dsp。C我CDecimator对象。的默认值NumSections房地产是2。这个值表明有两个积分器和梳状节。返回的WLs和FLs载体getFixedPointInfo函数各包含5个元素。前两个元素表示两个积分器部分。第三和第四元素代表两个梳节。最后一个元素表示过滤器输出。

蔡先生= dsp。C我CDecimator
蔡先生= dsp。C我CDecimator with properties: DecimationFactor: 2 DifferentialDelay: 1 NumSections: 2 FixedPointDataType: 'Full precision'

默认情况下,fixedpointdattype.对象的属性设置为“充分精确”.调用getFixedPointInfo函数在此输入数值类型的对象上执行,nt,生成以下单词长度和分数长度向量。

nt = numerictype(1,16,15)
nt = dataTypeMode:固定点:二进制点缩放签名:签名WordLength:16 FractionLength:15
(WLs FLs的]= getFixedPointInfo(蔡先生,nt)% #好吧
WLs =1×518 18 18 18
FLs的=1×515 15 15 15 15

有关如何计算单词长度和分数长度的详细信息,请参阅输出参数。

如果你锁定蔡先生对象通过向其算法传递输入,则不需要传递nt参数getFixedPointInfo函数。

1)输入= int64 (randn(8日)
输入=8x1 int64列向量1 2 -2 1 0 -1 0 0
=蔡先生输出(输入)
输出=4×1对象0 1 3 0 DataTypeMode:定点:二进制点缩放Signedness: Signed WordLength: 66 FractionLength: 0
[WLS,FLS] = GetFixedPointInfo(CICD)% #好吧
WLs =1×566 66 66 66 66
FLs的=1×50 0 0 0 0

输出字长和节字长是输入字长(本例中为64)和节数(2)的总和。由于输入是内置整数,所以输出和分段分数长度为0。

最小节字长

释放对象并更改fixedpointdattype.财产“最小节字长”.当输入是定点数据时,确定分段和输出定点信息,fi (randn(2), 1, 24日15)

释放(蔡先生);蔡先生。FixedPointDataType =“最小节字长”
蔡先生= dsp。C我CDecimator with properties: DecimationFactor: 2 DifferentialDelay: 1 NumSections: 2 FixedPointDataType: 'Minimum section word lengths' OutputWordLength: 32
inputF = fi (randn(8, 2), 1, 24日15)
inputF =8×2对象3.5784 -0.1241 2.7694 1.4897 - 1.4090 3.0349 1.4172 0.7254 0.6715 -0.0630 -1.2075 0.7148 0.7172 -0.2050 1.6302 DataTypeMode:定点:二进制点缩放符号:Signed WordLength: 24 FractionLength: 15
[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF)); / /输入% #好吧
WLs =1×526 26 26 26 32
FLs的=1×515 15 15 21

指定单词和分数长度

改变fixedpointdattype.财产指定单词和分数长度.确定定点信息使用getFixedPointInfo函数。

蔡先生。FixedPointDataType =指定单词和分数长度
蔡先生= dsp。C我CDecimator with properties: DecimationFactor: 2 DifferentialDelay: 1 NumSections: 2 FixedPointDataType: 'Specify word and fraction lengths' SectionWordLengths: [16 16 16 16] SectionFractionLengths: 0 OutputWordLength: 32 OutputFractionLength: 0
[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF)); / /输入% #好吧
WLs =1×516 16 16 16 32
FLs的=1×50 0 0 0 0

的节和输出字长度和分数长度是根据各自的定点属性分配的蔡先生对象。这些值不是由输入的数字类型决定的。要确认,请打电话给getFixedPointInfo函数,而不传递numerictype输入参数。

[WLs, FLs] = getFixedPointInfo(ccid)% #好吧
WLs =1×516 16 16 16 32
FLs的=1×50 0 0 0 0

指定字的长度

要指定筛选器部分和输出的字长,请设置fixedpointdattype.财产“指定单词长度”

蔡先生。FixedPointDataType =“指定单词长度”
蔡先生= dsp。C我CDecimator with properties: DecimationFactor: 2 DifferentialDelay: 1 NumSections: 2 FixedPointDataType: 'Specify word lengths' SectionWordLengths: [16 16 16 16] OutputWordLength: 32

getFixedPointInfo函数需要输入数字类型,因为该信息用于计算节和字分式长度。

[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF)); / /输入
WLs =1×516 16 16 16 32
FLs的=1×55 5 5 21

有关该函数如何计算单词和分数长度的更多细节,请参阅有关的说明输出参数

更多关于

全部展开

算法

全部展开

参考文献

[1] Hogenauer, E.B.用于抽取和插值的经济型数字滤波器。IEEE声学、语音和信号处理汇刊.第29卷,第2期,1981年,155-162。

[2] Meyer-Baese U。具有现场可编程门阵列的数字信号处理.纽约:斯普林斯,2001年。

[3] Harris,Fredric J.通信系统的多速率信号处理.印第安纳波利斯:Prentice Hall PTR, 2004。

扩展功能

在R2012A介绍