数字信号处理器

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

描述

这个数字信号处理器系统对象™ 使用级联积分器梳状(CIC)内插滤波器对输入信号进行内插。CIC内插滤波器结构包括N级联梳状滤波器的部分,然后速率变化系数为R,然后是N级联积分器的部分。有关详细信息,请参阅算法这个NumSections属性指定N,CIC筛选器中的节数插值因子属性指定R,插值因子getFixedPointInfo函数返回定点部分的字长和分数长度以及数字信号处理器系统对象。您还可以使用生成hdl作用

笔记

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

要使用CIC滤波器对信号进行插值:

  1. 创建数字信号处理器对象并设置其属性。

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

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

创造

描述

实例

cicInterp=dsp.cic插值器创建对输入信号应用CIC插值滤波器的CIC插值系统对象。

实例

cicInterp=dsp.cic插值器(R,M,N)使用创建CIC插值对象插值因子属性设置为R这个微分延迟属性设置为M,以及NumSections属性设置为N.

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

性质

全部展开

除非另有说明,否则属性为不能,这意味着您不能在调用对象后更改其值。对象在调用时锁定,并且释放函数将解锁它们。

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

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

依赖关系

此属性在设置固定点数据类型财产'指定字长''指定单词和分数长度'.

数据类型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64

用于每个筛选器节的定点分数长度,指定为标量或整数行向量。分数长度可以为负、0或正。如果指定标量,该值将应用于筛选器的所有节。如果指定向量,该向量的长度必须为2倍NumSections.

例子:-2

例子:[-2 0 5 8]

依赖关系

此属性在设置固定点数据类型财产'指定单词和分数长度'.

数据类型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64

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

依赖关系

此属性在设置固定点数据类型财产转让给其中一方“最小节字长”,'指定字长''指定单词和分数长度'.

数据类型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64

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

依赖关系

此属性在设置固定点数据类型财产'指定单词和分数长度'.

数据类型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64

用法

描述

实例

插口=ciinterp(输入)使用CIC插值器对输入进行插值。

输入参数

全部展开

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

数据类型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64|fi
复数支持:万博1manbetx

输出参数

全部展开

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

如果输入为内置整数数据类型或定点数据类型,则输出字长和分数长度取决于通过选择的定点数据类型设置固定点数据类型所有物

全精度

固定点数据类型属性设置为“全精度”,以下关系适用:

W L 输出 = W L 输入 + N U M s E C T F L 输出 = F L 输入

哪里

  • WL输出–输出数据的字长。

  • 佛罗里达州输出–输出数据的分数长度。

  • WL输入–输入数据的字长。

  • 佛罗里达州输入–输入数据的分数长度。

  • 纽西特–通过指定的CIC过滤器中的段数NumSections所有物

WL输入佛罗里达州输入从传递给对象算法的数据输入中继承。对于内置整数输入,分数长度为0。

最小节字长

固定点数据类型属性设置为“最小节字长”,输出字长是在中指定的值输出字长所有物输出分数长度,佛罗里达州输出由以下方程式得出:

F L 输出 = W L 输出 ( W L 输入 F L 输入 + N U M s E C T )

指定单词和分数长度

固定点数据类型设置为'指定单词和分数长度',输出字长和分数长度是您在输出字长输出分形长度财产。

指定字长

固定点数据类型设置为'指定字长',输出字长是您在输出字长所有物输出分数长度,佛罗里达州输出由以下方程式得出:

F L 输出 = W L 输出 ( W L 输入 F L 输入 + N U M s E C T )

数据类型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64|fi
复数支持:万博1manbetx

目标函数

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

释放(obj)

全部展开

生成hdl 为量化DSP滤波器生成HDL代码(需要滤波器设计HDL编码器)
英普兹 离散时间滤波器的脉冲响应系统对象
数字滤波器频率响应 滤波器的频率响应
phasez 滤波器的非包裹相位响应
fvtool DSP滤波器的频率响应可视化
获得 滤波器增益
getFixedPointInfo 获取定点单词和分数长度
信息 有关筛选器的信息系统对象
系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象

有关此对象支持的过滤器分析方法的列表,请键入万博1manbetxdsp.CIC插值器.HelpFilter分析在MATLAB中®命令提示符。有关相应的函数参考页,请参见过滤系统对象的分析方法.

例子

全部崩溃

笔记:如果您使用的是R2016a或早期版本,请使用等效的step语法替换对对象的每个调用。例如obj(x)变成步骤(obj,x).

创建一个数字信号处理器系统对象™ 具有插值因子设置为2。从22.05 kHz到44.1 kHz,将信号内插2倍。

cicint=dsp.ciciinterpolator(2);

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

Fs=22.05e3;n=(0:511)';%0.0113秒信号x=fi(sin(2*pi*1e3/Fs*n),真,16,15);

创造信号源系统对象。

src=dsp.信号源(x,32);

使用每帧64个采样对输出进行插值。

y=零(16,64);对于ii=1:16 y(ii,:)=ciint(src());终止

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

盖恩西奇=...(cicint.插值因子*cicint.微分延迟)...^cicint.NumSections/cicint.InterpolationFactor;茎(n(1:31)/Fs,双(x(1:31)),“r”,“填充”)持有在…上;阀杆(n(1:61)/(Fs*ciint.插值因子),...双(y(1,4:end))/gainCIC,“b”)xlabel('时间(秒)')伊拉贝尔(“信号幅度”)传奇(“原始信号”,“插值信号”,...“位置”,“北方”)持有;

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

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

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

全精度

创建一个数字信号处理器对象的默认值NumSections属性为2。该值表示有两个积分器和梳状部分。所返回的WLs和FLs向量getFixedPointInfo函数每个包含五个元素。前两个元素表示两个积分器部分。第三和第四个元素表示两个梳状部分。最后一个元素表示过滤器输出。

cicD=dsp.cicD抽取器
cicD=dsp.CIC具有以下属性的抽取器:抽取因子:2微分延迟:1个分段:2固定点数据类型:“全精度”

默认情况下固定点数据类型对象的属性设置为“全精度”. 呼叫getFixedPointInfo此对象上具有输入数字类型的函数,新界,生成以下字长和分数长度向量。

nt=数字类型(1,16,15)
nt=DataTypeMode:定点:二进制点缩放符号性:有符号字长:16分位数长度:15
[WLs,FLs]=getFixedPointInfo(cicD,nt)%#嗯
WLs=1×518 18 18 18 18
FLs=1×515 15 15 15 15

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

如果你把门锁上cicD对象通过向其算法传递输入,您不需要传递新界辩论getFixedPointInfo作用

输入=int64(随机数(8,1))
输入=8x1 int64列向量1 2 -2 1 0 -1 0 0
输出=cicD(输入)
输出=4×1对象0 1 3 0 DataTypeMode:定点:二进制点缩放符号性:有符号字长:66 FractionLength:0
[WLs,FLs]=getFixedPointInfo(cicD)%#嗯
WLs=1×566 66 66 66 66
FLs=1×50 0 0 0 0

输出和部分字长是输入字长(本例中为64)和部分数(2)之和。由于输入为内置整数,因此输出和部分分数长度为0。

最小节字长

释放对象并更改固定点数据类型财产“最小节字长”. 当输入为定点数据时,确定区段并输出定点信息,fi(randn(8,2),1,24,15).

发布(cicD);cicD.FixedPointDataType=“最小节字长”
cicD=dsp.CIC具有以下属性的抽取器:抽取因子:2微分延迟:1个分段:2固定点数据类型:“最小分段字长”输出字长:32
inputF=fi(randn(8,2),1,24,15)
输入=8×2物体3.5784-0.12412.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数据类型模式:固定点:二进制点缩放符号:符号字长:24分位数:15
[WLs,FLs]=getFixedPointInfo(cicD,numerictype(inputF))%#嗯
WLs=1×526 26 26 26 32
FLs=1×515 15 15 15 21

指定单词和分数长度

改变固定点数据类型财产'指定单词和分数长度'. 使用getFixedPointInfo作用

cicD.FixedPointDataType='指定单词和分数长度'
cicD=dsp.CICDecimator,属性为:DecimationFactor:2 DifferenticationDelay:1 NumSections:2 FixedPointDataType:“指定字和分数长度”SectionWordLength:[16]SectionFractionLength: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

节和输出字长以及分数长度是根据相应的固定点属性指定的cicD对象这些值不是由输入数字类型决定的。要确认,请致电getFixedPointInfo函数而不通过数字类型输入参数。

[WLs,FLs]=getFixedPointInfo(cicD)%#嗯
WLs=1×516 16 16 16 32
FLs=1×50 0 0 0 0

指定字长

要指定筛选器部分和输出的字长,请设置固定点数据类型财产'指定字长'.

cicD.FixedPointDataType='指定字长'
cicD=dsp.CICDecimator,具有以下属性:DecimationFactor:2微分延迟:1个分段:2 FixedPointDataType:“指定字长”分段字长:[16]输出字长:32

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

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

有关函数如何计算单词和分数长度的更多详细信息,请参见输出参数.

更多关于

全部展开

算法

全部展开

工具书类

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

[2] 梅耶·贝斯,美国。用现场可编程门阵列进行数字信号处理. 纽约:斯普林格,2001年。

[3] 哈里斯,弗雷德里克J。通信系统的多速率信号处理印第安纳波利斯:普伦蒂斯大厅PTR,2004年。

扩展能力

2012年推出