dsp。C我CDecimator

使用级联积分器梳状(CIC)滤波器抽取信号

描述

这个dsp。C我CDecimator系统对象™ 使用级联积分器梳状(CIC)抽取滤波器抽取输入信号N级联积分器的部分,随后是速率变化的一个因子R,然后是N级联梳状滤波器部分。有关详细信息,请参见算法这个NumSections属性指定N, CIC过滤器中的节数。这个决定因素属性指定R,抽取因子。这个getFixedPointInfo函数返回定点段的单词长度和分数长度,以及dsp。C我CDecimator系统对象。您还可以使用generatehdl作用

笔记

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

要使用CIC滤波器抽取信号:

  1. 创建dsp。C我CDecimator对象,并设置其属性。

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

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

创建

描述

实例

cicDecim=dsp.CIC抽取器创建CIC抽取系统对象,该对象对输入信号应用CIC抽取滤波器。

实例

cicDecim=dsp.CIC抽取器(R,M,N)创建CIC抽取对象决定因素属性设置为R这个DifferentialDelay属性设置为M,NumSections属性设置为N

cicDecim=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 32]

依赖关系

此属性在设置FixedPointDataType财产'指定字长'指定单词和分数长度

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

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

例子:-2

例子:[-2 0 5 8]

依赖关系

此属性在设置FixedPointDataType财产指定单词和分数长度

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

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

依赖关系

此属性在设置FixedPointDataType财产“最小节字长”,'指定字长',或指定单词和分数长度

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

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

依赖关系

此属性在设置时应用FixedPointDataType财产指定单词和分数长度

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

使用

描述

实例

cicDecimOut=cicDecim(输入)使用CIC抽取器抽取输入。

输入参数

全部展开

数据输入,指定为向量或矩阵。属性的行数必须是决定因素。如果输入为双重的与定点数据类型相关的数据类型、属性设置将被忽略。

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

输出参数

全部展开

抽取输出,作为向量或矩阵返回。输出帧大小等于(1∕决定因素)×输入帧大小。输出数据的复杂度与输入数据的复杂度匹配。如果输入为双重的,则输出数据类型与输入数据类型匹配。

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

全精度

FixedPointDataType设置为“全精度”,以下关系适用:

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

哪里

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

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

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

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

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

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

最小节字长

FixedPointDataType属性设置为“最小节字长”,则输出字长为您在输出字长财产。输出分数长度,佛罗里达州输出,由:

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

指定单词和分数长度

FixedPointDataType属性设置为指定单词和分数长度,输出字长和分数长度是您在输出字长输出分形长度属性。

指定字的长度

FixedPointDataType属性设置为'指定字长',则输出字长为您在输出字长财产。输出分数长度,佛罗里达州输出,由:

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)

全部展开

generatehdl 生成量化DSP滤波器的HDL代码(需要)滤波器设计HDL编码器)
impz 离散时间滤波器的脉冲响应系统对象
数字滤波器频率响应 滤波器的频率响应
phasez 滤波器的未缠绕相位响应
fvtool 显示DSP滤波器的频率响应
获得 CIC滤波器增益
getFixedPointInfo 获得定点字和分数长度
信息 有关筛选器的信息系统对象
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象

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

例子

全部折叠

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

创建一个dsp。C我CDecimator系统对象™ 具有决定因素设置为4。从44.1 kHz到11.025 kHz抽取信号。

cicdec = dsp.CICDecimator (4);cicdec。FixedPointDataType =“最小节字长”;cicdec.OutputWordLength=16;

创建1024个采样点的定点正弦输入信号,采样频率为44.1e3 Hz。

Fs = 44.1 e3;n =(0:1023)”;%0.0232秒信号x = fi(罪(2 * pi * 1 e3 / Fs * n),真的,16日15);

创建一个信号源对象。

src = dsp.SignalSource (x, 64);

每帧用16个样本抽取输出。

y = 0(16日16);对于ii=1:16y(ii,:)=cicdec(src());终止

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

盖恩西奇=...(cicdec.DecimationFactor * cicdec.DifferentialDelay) ^ cicdec.NumSections;茎(n (56) / Fs、双(x (4:59))); 茎(n(1:14)/(Fs/cicdec.决定因子),双(y(1,3:end))/gainCIC,“r”,“填充”)包含(的时间(秒)) ylabel (“信号幅度”)传说(原始信号的,“抽取信号”,“位置”,“北方”)举行;

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

信息(cicdec“长”)
ans = '离散冷杉多重速率的过滤器(真实 ) ----------------------------------------- 滤波器结构:级联Integrator-Comb杀害多人者大量毁灭因素:4微分延迟:1的部分:2稳定:是的线性相位:是的(1型)实施成本数量的乘数:0条数量:4的状态数:每个输入样本的4乘数:0每个输入样本的加法:2.5固点信息Section单词长度:20 19 19 18 Section fraction长度:15 14 14 13 Output word length: 16 Output fraction length: 11 '

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

全精度

创建一个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'

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

元= numerictype(15) 1日16日
nt = DataTypeMode:定点:二进制点缩放Signedness: Signed WordLength: 16 FractionLength: 15
(WLs FLs的]= getFixedPointInfo(蔡先生,nt)% #好吧
WLs=1×518 18 18 18 18
FLs的=1×515 15 15 15 15

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

如果你把门锁上蔡先生对象通过向其算法传递输入,则不需要传递nt参数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蔡先生)% #好吧
WLs=1×566 66 66 66 66
FLs的=1×50 0 0 0 0

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

最小节字长

释放对象并更改FixedPointDataType财产“最小节字长”. 当输入为定点数据时,确定区段并输出定点信息,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)
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

指定单词和分数长度

改变FixedPointDataType财产指定单词和分数长度.使用getFixedPointInfo作用

蔡先生。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

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

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

指定字的长度

要指定筛选器部分和输出的字长,请设置FixedPointDataType财产'指定字长'

蔡先生。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 21

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

更多关于

全部展开

算法

全部展开

工具书类

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

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

哈里斯,弗雷德里克J。通信系统的多速率信号处理.印第安纳波利斯:Prentice Hall PTR, 2004。

扩展功能

介绍了R2012a