AnyMath 文档

EngeeDSP.CICInterpolator

使用级联积分器-梳状滤波器进行信号插值。

库::`工程师` 座:: CIC 内插法

资料描述

系统对象*EngeeDSP。CICInterpolator*使用级联梳状积分器(Cic)滤波器内插输入信号。 插值CIC滤波器的结构是级联的 梳状滤波器的部分,然后是采样率的一个因子的变化 ,然后级联 积分器部分。 有关详细信息,请参阅算法。 Property*NumSections*设置节数 在CIC过滤器中。 Property*InterpolationFactor*设置插值系数 .

要插入输入信号,请按照以下步骤操作:

  1. 创建*EngeeDSP。CICInterpolator*对象并设置其属性。

  2. 用参数调用对象,就好像它是一个函数一样。

若要了解有关如何使用系统对象的详细信息,请参阅 AnyMath系统对象.

语法

创造

  • cicInterp=EngeeDSP。CICInterpolator缧 -创建将CIC插值滤波器应用于输入信号的CIC插值系统对象。

  • cicInterp=EngeeDSP。CICInterpolator(R,M,N) -创建插值CIC系统对象,该对象具有*InterpolationFactor*值集 R,对于*DifferentialDelay*-值 M,而对于属性*NumSections*—值 N.

  • cicInterp=EngeeDSP。CICInterpolator(___,名称=值) -创建CIC插值对象 cicInterp 将指定的属性作为一对 名称=值,在哪里 姓名 -物业的名称,以及 价值 -适当的值。 您可以指定多个对 «名称-值» 对的顺序并不重要。 未指定的属性保留其默认值。

    例子::

    # создание системного объекта CIC интерполяции c количеством секций 4
    cicInterp = EngeeDSP.CICInterpolator(NumSections = 4)

使用

争论

输入参数

# 输入 — 输入数据

+ 向量资料 | 矩阵

Details

指定为向量或矩阵的输入数据。

数据类型

Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, 定点</无翻译> 支持复数::是

输出参数

# cicInterpOut — CIC内插器的输出

+ 向量资料 | 矩阵

Details

作为矢量或矩阵返回的插值输出数据。 输出帧的大小为 (1/InterpolationFactor)×输入帧大小. 输出数据的复杂度对应于输入数据的复杂度。

如果输入数据具有嵌入式整数或定点数据类型,则输出字的长度和分数的长度取决于使用*FixedPointDataType*指定的定点数据类型。

完全准确

如果对于属性*FixedPointDataType*值集 "全精度",应用以下关系式:



哪里

  • -输出数据字的长度;

  • -输出数据的小数部分的长度;

  • -输入数据字的长度;

  • -输入数据的小数部分的长度;

  • -cic过滤器中的节数,由属性*NumSections*设置。

价值 和 它们继承自传递给对象算法的输入数据。 对于嵌入式整数输入数据,小数部分的长度为 0.

设置单词的长度和小数部分

如果对于属性*FixedPointDataType*值集 "指定单词和分数长度",则输出中单词的长度和小数部分的长度将对应于属性*OutputWordLength*和*OutputFractionLength*中指定的值。

数据类型

Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, 定点</无翻译> 支持复数::是

特征

# NumSections — 积分器和梳状滤波器部分数
Int64 integer

Details

积分器部分和梳状cic滤波器的数目,设置为正整数。 该数字表示滤波器的梳状和积分器部分中的部分的数目。 CIC筛选器中的部分总数是此属性指定的部分数的两倍。

# FixedPointDataType — 定点属性的设置方法
Symbol

Details

用于设置定点属性的方法,由以下值之一指定:

  • "全精度" -字的长度和定点数的小数部分的长度对于cic滤波器的部分和对象的输出数据进行充分的精度处理。

# DifferentialDelay — 梳状信号部分的差分延迟
Int64 integer

Details

在梳状滤波器部分的每一个中使用的差分延迟值被设置为正整数。 有关详细信息,请参阅算法。

# SectionFractionLengths — 每个滤波器段的定点数小数部分的长度

Details

用于每个滤波器部分的定点数的小数部分的长度,指定为整数的标量或向量。 分数长度可以是负数或等于 0 或者肯定的。 如果指定标量,则该值将应用于筛选器的所有部分。 如果指定向量,则其长度应等于 2×[属性:NumSections].

依赖关系

若要使用此属性,请设置*FixedPointDataType*值 "指定单词和分数长度".

# OutputWordLength — 滤波器输出的定点字的长度
Int64 integer

Details

用于滤波器输出的定点字的长度,设置为大于或等于的整数 2.

依赖关系

若要使用此属性,请设置*FixedPointDataType*值 "指定单词和分数长度".

# OutputFractionLength — 滤波器输出的定点分数的长度
Int64 integer

Details

用于滤波器输出的定点分数的长度被设置为整数。

依赖关系

若要使用此属性,请设置*FixedPointDataType*值 "指定单词和分数长度".

# SectionWordLengths — 每个过滤区段的定点词的长度

Details

每个滤波器部分的定点词的长度,设置为标量。 单词的长度必须大于或等于 2. 此值适用于所有筛选器部分。

依赖关系

若要使用此属性,请设置*FixedPointDataType*值 "指定单词和分数长度".

# InterpolationFactor — 的插值系数
Int64 integer

Details

输入信号进行插值的系数,设为正整数。

方法

所有系统对象通用

步!::运行系统对象运算算法 释放!::允许更改系统对象属性的值 重置!::重置系统对象的内部状态

此外

CIC过滤器

Details

CIC滤波器是一类优化的线性相位FIR滤波器,由梳状滤波器和串联的积分器组成。

概念上,内插CIC滤波器是增加采样频率的元件,其后是单频cic滤波器。 ,其是用于失真抑制的低通滤波器。 CIC插值滤波器使用级联梳状积分器(Cic)滤波器将输入信号的采样率提高整数倍。

cic interpolator cn

在更有效的实现中,CIC过滤器 ,其在不改变采样率的情况下运行,以这种方式分解为因子:

哪里

  • -传递函数 梳状滤波器级联的部分,每个部分的宽度为 ;

  • -的级联的传递函数 集成商;

  • -节数。 CIC滤波器中的节数定义为滤波器梳状部分或积分部分中的节数。 此值不反映整个筛选器中的部分总数。;

  • -插值系数;

  • -差分延迟。

提供全多速率滤波的算法考虑到插值的显着身份,这允许您移动改变采样频率的操作。 对于级联 梳状滤波器而不扭曲运算结果。

所得滤波器的传递函数由下式给出:

有关显示多速实现的流程图,请参阅算法。

定点信号

Details

定点信号图显示了*EngeeDSP的数据类型。CICInterpolator*对象用于定点信号。

cic interpolator 1 cn

这里

此图中的*NumSections*属性的值为 2.

算法

CIC插值滤波器

Details

[More-about]一节中描述的cic插值滤波器实现为级联 梳状滤波器,然后是将信号的采样率增加一个因子的元素 ,然后级联 集成商。

cic interpolator 2

该图显示了具有两个部分的梳状滤波器级联和也由两个部分组成的积分器级联。 Cic滤波器积分器中的单个延迟可以位于正向电路和反馈电路中。 这两种配置产生相同的滤波器频率特性。 但是,由于延迟的影响,这两个配置选项的输出中的实际数字序列会有所不同。 在该算法中,单个延迟被放置在积分器的直接线路的路径中,因为这种配置对于HDL实现是优选的。

文学作品

  1. Hogenauer,E.B。 «用于抽取和插值的经济型数字滤波器» ieee关于声学,语音和信号处理的交易。 卷。 29,编号2,1981,第155-162页,1981。

  2. Meyer-Baese,U. Digital Signal Processing with Field Programmable Gate Arrays. 繝シ繝ォ縺ァ縺呐

  3. Harris,Fredric J. Multirate Signal Processing for Communication Systems. 印第安纳波利斯,IN:Prentice Hall PTR,2004。