主要内容

dsp.cicinterpolator.

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

描述

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

笔记

该对象需要的固定点设计™许可证。

使用CIC滤波器插入信号:

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

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

要了解更多有关系统对象的方式工作,请参阅什么是系统对象?

创造

描述

例子

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

例子

cicInterp= dsp.cicinterpolator.(R.mN使用该对象创建一个CIC插值对象InterpolationFactor物业设为R., 这微分延迟物业设为m,NumSections物业设为N

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

属性

全部展开

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

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

有关更改特性值的详细信息,请参见使用系统对象的系统设计在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]

依赖关系

属性设置时将应用此属性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

用法

描述

例子

插口=ciinterp(输入)使用CIC内插器插入输入。

输入参数

全部展开

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

数据类型:仅有一个的||int8|int16|int32|int64|uint8|uint16|uint32|uint64|FI.
复数支持:金宝app是的

输出参数

全部展开

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

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

完整的精度

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

W. L. 输出 = W. L. 输入 + N m S. 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 m S. E. C T.

指定单词和分数长度

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

指定字长

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

F L. 输出 = W. L. 输出 W. L. 输入 F L. 输入 + N m S. E. C T.

数据类型:仅有一个的||int8|int16|int32|int64|uint8|uint16|uint32|uint64|FI.
复数支持:金宝app是的

对象函数

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

释放(obj)

全部展开

generatehdl. 为量化DSP滤波器生成HDL代码(需要滤波器设计HDL编码器
英普兹 离散时间过滤器的脉冲响应系统对象
freqz 离散时间滤波器的频率响应系统对象
phasez 离散时间滤波器的相位响应系统对象(打开)
fvtool 可视化DSP滤波器的频率响应
获得 CIC滤波器增益系统对象
getFixedPointInfo 获取定点单词和分数长度
信息 关于过滤器的信息系统对象
一步 系统对象算法
释放 释放资源,并允许更改系统对象属性值和输入特性
重置 使内部状态复位系统对象

有关此对象支持的过滤器分析方法的列表,请键入金宝appdsp.CIC插值器.HelpFilter分析在MATLAB®命令提示符。对于相应的函数引用页面,请参阅过滤系统对象的分析方法

例子

全部收缩

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

创建一个dsp.cicinterpolator.系统对象™InterpolationFactor设置为2.将固定点信号插值为22.05 kHz至44.1 kHz。

cicint = dsp.CICInterpolator (2)
cicint = dsp.CICInterpolator与属性:InterpolationFactor:2 DifferentialDelay:1个NumSections:2个FixedPointDataType: '全精度'

创建一个正弦波对象取样频率设置为22.05 kHz,SamplesPerFrame设置为32,并且OutputDataType设置'风俗'.要生成定点信号,请设置CustomOutputDataType属性添加到numerictype对象。对于本例,将值设置为numerictype([],16).分数长度是根据生成的正弦信号的值来计算的,以给出可能的最佳精度。

要生成定点信号,请设置方法财产的正弦波反对“查表”.这种产生正弦信号的方法要求输出中每个正弦信号的周期都能被采样周期平均整除。即, 1 / F 一世 T. S. = K. 一世 每个通道必须为整数值一世= 1,2,......,N。的价值 T. S. 等于 1 / F S. ,变量 F 一世 是正弦信号的频率,并 F S. 是信号的采样率。换句话说,比率 F S. / F 一世 必须是整数。有关详细信息,请参见算法上一节正弦波对象页面。

在这个例子中, F S. 设置为22050 Hz,并且 F 一世 设置为1050hz。

Fs = 22.05 e3;正弦= dsp。SineWave ('频率',1050,...“SampleRate”,fs,...'SamplesPerFrame',32,...“方法”“查表”...'outputdatatype''风俗'
正弦= dsp。S.一世neWave with properties: Amplitude: 1 Frequency: 1050 PhaseOffset: 0 ComplexOutput: false Method: 'Table lookup' TableOptimization: 'Speed' SampleRate: 22050 SamplesPerFrame: 32 OutputDataType: 'Custom' Show all properties

在迭代的每个循环中,在以22.05 kHz采样的定点正弦信号的一帧中进行流。将流信号内插2倍。内插输出每帧有64个采样。

为了i=1:16 x=sine();y=cicint(x);结尾

CIC插值滤波器的输出被特定的增益值放大。您可以使用获得函数。这个增益等于 2 N th 该CIC内插滤波器和equals的阶段 一世 × D. N / 一世 ,在那里 一世 为内插因子, D. 是差分延迟,和 N 是CIC内插器的部分数。

GainCIC = GAIN(CICINT)
Gaincic = 2

要调整此放大输出并使其与原始信号的振幅匹配,请将CIC插值信号与计算的增益值分开。

比较原始信号和插值信号的最后一帧。绘制时,考虑2个样本的输出延迟。

N =(0:63)';干(N(1:31)/ Fs的,双(X(1:31)),'r''填充') 抓住在…上;I = cicint.InterpolationFactor;干(N(1:61)/(FS * I)...双(y(4:end))/gainCIC,“b”)xlabel('时间(秒)')伊拉贝尔(“信号幅度”)传奇(原始信号的...“插值信号”...'地点'“北”) 抓住离开;

图中包含一个轴对象。axis对象包含2个类型为stem的对象。这些对象代表原始信号,插值信号。

使用信息功能“长”格式化,获取定点过滤器段的字长和分数长度以及过滤器输出。

信息(cicint“长”
ans='离散时间FIR多速率滤波器(实数)------------------------------------------滤波器结构:级联积分器梳状插值器插值因子:2微分延迟:1段数:2稳定:是线性相位:是(类型1)实现成本乘法器数量:0加法器数量:4状态数量:每个输入样本4乘法:每个输入样本0加法:6固定点信息节字长:17节分数长度:14输出字长:17输出分数长度:14'

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

完整的精度

创建一个数字信号处理器对象的默认值NumSections房地产是2。这个值表明有两个积分器和梳状节。返回的WLs和FLs载体getFixedPointInfo函数每个包含五个元素。前两个元素表示两个积分器部分。第三和第四个元素表示两个梳状部分。最后一个元素表示过滤器输出。

cicD=dsp.cicD抽取器
cicD=dsp.cicD抽取器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(cicD,nt)% #好吧
的WL =1×518 18 18 18 18
FLs=1×515 15 15 15 15

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

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

输入= int64类型(randn(8,1))
输入=8X1的int64列向量1 2 -2 1 0 -1 0 0
输出= CICD(输入)
输出=0 1 3 0 DataTypeMode:定点:二进制点缩放符号性:有符号字长:66 FractionLength:0
[WLS,FLS] = GetFixedPointInfo(CICD)% #好吧
的WL =1×566 66 66 66 66
FLs=1×50 0 0 0 0

输出和部分字长被输入字长,64在这种情况下,和部分的数量的总和,2.输出和部分长度是0,因为输入是一个内置的整数。

最小截面字长

释放对象并更改fixedpointdattype.属性“最小节字长”.确定部和输出的定点信息当输入定点数据,网络连接(randn(8,2),1,24,15)

释放(CICD);cicD.FixedPointDataType =“最小节字长”
CICD = dsp.CICDecimator与属性:DecimationFactor:2 DifferentialDelay:1个NumSections:2 FixedPointDataType: '最小部分字长' OutputWordLength:32
inputF=fi(randn(8,2),1,24,15)
inputF = 3.5784 -0.1241 2.7694 1.4897 -1.3499 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))% #好吧
的WL =1×526 26 26 26 32
FLs=1×515 15 15 15 21

指定单词和分数长度

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

cicD.FixedPointDataType =指定单词和分数长度
cicD=dsp.cicD抽取器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))% #好吧
的WL =1×516 16 16 16 32
FLs=1×50 0 0 0 0

的部分和输出字长和分数长度被指定为每的相应的固定点属性蔡先生对象。这些值不是由输入的数字类型决定的。要确认,请打电话给getFixedPointInfo函数,而不传递numerictype输入参数。

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

指定字长

要指定筛选器部分和输出的字长,请设置fixedpointdattype.属性“指定字长”

cicD.FixedPointDataType =“指定字长”
cicD=dsp.cicD抽取器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))
的WL =1×516 16 16 16 32
FLs=1×55 5 5 5 21

有关功能如何计算这个词和部分长度的更多详细信息,请参阅描述输出参数

更多关于

全部展开

算法

全部展开

参考文献

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

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

[3] Harris,Fredric J.多速率信号处理通讯系统印第安纳波利斯:普伦蒂斯大厅PTR,2004年。

扩展能力

在R2012A介绍