主要内容

dsp.CICDecimator

使用级联integrator-comb毁掉信号(CIC)过滤器

描述

dsp.CICDecimator系统对象™会毁坏一个输入信号使用级联integrator-comb (CIC)大量毁灭过滤器。包括中投大批杀害滤波器结构N段级联集成商,其次是速度变化的一个因素R,紧随其后的是N段级联梳过滤器。有关详细信息,请参见算法。的NumSections属性指定NCIC滤波器的部分。的DecimationFactor属性指定R,大量毁灭的因素。的getFixedPointInfo函数返回的单词长度和部分长度定点部分和输出dsp.CICDecimator系统对象。你也可以生成HDL代码系统对象使用generatehdl函数。

请注意

该对象需要一个定点设计师™许可证。

毁掉一个信号使用CIC滤波器:

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

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

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

创建

描述

例子

cicDecim= dsp.CICDecimator创建一个中投大量毁灭系统对象,中投大批杀害过滤器适用于输入信号。

例子

cicDecim= dsp.CICDecimator (R,,N)创建一个对象与中投公司大批杀害DecimationFactor属性设置为R,DifferentialDelay属性设置为,NumSections属性设置为N

cicDecim= dsp.CICDecimator (名称,值)创建一个中投大批杀害对象与每个指定的属性设置为指定的值。在单引号附上每个属性的名字。您可以使用该语法与以往任何输入参数组合。

属性

全部展开

属性,除非另有注明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)

依赖关系

这个属性设置时适用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 (输入)使用一个中投杀害多人者会毁坏输入。

输入参数

全部展开

数据输入,指定为一个向量或矩阵。在输入的行数必须是多重的DecimationFactor。如果输入的相关数据类型、属性设置定点数据类型将被忽略。

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

输出参数

全部展开

摧毁输出,作为一个向量或矩阵返回。输出帧尺寸= (1∕DecimationFactor)×输入帧大小。输出数据的复杂性相匹配的输入数据。如果输入是输入,输出数据类型匹配的数据类型。

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

完整的精度

FixedPointDataType被设置为“充分精确”适用以下关系:

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

在那里,

  • 输出——单词长度的输出数据。

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

  • 输入——单词长度的输入数据。

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

  • NumSect——通过指定的CIC滤波器的部分NumSections财产。

输入FL输入是继承了数据输入传递给对象的算法。内置整数输入的长度比例是0。

最低部分单词长度

FixedPointDataType属性设置为“最低部分单词长度”,输出字长是你指定的值OutputWordLength财产。输出部分的长度,FL输出是由:

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

指定词和部分的长度

FixedPointDataType属性设置为“指定词和部分长度”,输出单词长度和部分中指定的值OutputWordLengthOutputFractionLength属性。

指定字的长度

FixedPointDataType属性设置为“指定单词长度”,输出字长是你指定的值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是的

对象的功能

使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

generatehdl 生成量化的HDL代码DSP滤波器(需要滤波器设计高密度脂蛋白编码器)
impz 离散滤波器的脉冲响应系统对象
freqz 离散滤波器的频率响应系统对象
phasez 离散滤波器的相位响应系统对象(打开)
fvtool 可视化DSP滤波器的频率响应
获得 CIC滤波器的增益系统对象
getFixedPointInfo 定点词和部分的长度
信息 信息过滤系统对象
一步 运行系统对象算法
释放 释放资源,并允许修改系统对象属性值和输入特征
重置 重置的内部状态系统对象

过滤的列表分析方法这一对象支持,类型金宝appdsp.CICDecimator.helpFilterAnalysis在MATLAB®命令提示符。相应的函数引用页面,看到过滤系统对象的分析方法

例子

全部折叠

请注意:如果您使用的是R2016a或更早的版本中,用相同的步骤替换每个调用对象的语法。例如,obj (x)就变成了步骤(obj, x)

创建一个dsp.CICDecimator系统对象™DecimationFactor设置为4。毁掉一个信号从44.1千赫至11.025千赫。

cicdec = dsp.CICDecimator (4);cicdec。FixedPointDataType =“最低部分单词长度”;cicdec。OutputWordLength = 16;

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

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

创建一个dsp.SignalSource对象。

src = dsp.SignalSource (x, 64);

毁掉16样品每帧的输出。

y = 0(16日16);2 = 1:16 y (ii):) = cicdec (src ());结束

情节第一帧的原始信号遭受灭顶之灾。输出延迟2个样品。

gainCIC =(cicdec.DecimationFactor * cicdec.DifferentialDelay) ^ cicdec.NumSections;茎(n (56) / Fs、双(x (4:59)));茎(n(一14)/ (Fs / cicdec.DecimationFactor)双(y(1, 3:结束))/ gainCIC,“r”,“填充”)包含(的时间(秒))ylabel (信号幅度的)传说(原始信号的,“摧毁信号”,“位置”,“北”)举行;

图包含一个轴。轴包含2杆类型的对象。这些对象代表原始信号,摧毁的信号。

使用信息方法“长”格式,获得单词长度和长度的一部分定点滤波器部分和滤波器的输出。

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

使用getFixedPointInfo功能,您可以确定定点的单词长度和部分长度部分的输出dsp.CICDecimatordsp.CICInterpolator系统对象。的数据类型和输出取决于过滤部分FixedPointDataType™的过滤系统对象的属性。

完整的精度

创建一个dsp.CICDecimator对象。默认值的NumSections房地产是2。这个值表明有两个积分器和梳部分。返回的WLs和FLs的向量getFixedPointInfo函数包含五个元素。前两个元素代表了两个积分器的部分。第三和第四个元素代表了两个梳部分。最后一个元素代表了滤波器的输出。

蔡先生= dsp.CICDecimator
蔡先生= dsp.CICDecimatorwith properties: DecimationFactor: 2 DifferentialDelay: 1 NumSections: 2 FixedPointDataType: 'Full precision'

默认情况下,FixedPointDataType设置对象的属性“充分精确”。调用getFixedPointInfo函数在这个对象与输入数字类型,nt,收益率以下单词长度和部分长度向量。

元= numerictype(15) 1日16日
元= DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 15
(WLs FLs的]= getFixedPointInfo(蔡先生,nt)% #好吧
WLs =1×518 18 18 18 18
FLs的=1×515个15个15个15个15个

单词长度的细节和部分长度计算,查看描述输出参数。

如果你锁蔡先生对象通过一个算法的输入,您不需要通过nt参数getFixedPointInfo函数。

1)输入= int64 (randn(8日)
输入=8 x1 int64列向量1 2 2 1 0 1 0 0
=蔡先生输出(输入)
输出=4×1对象0 1 3 0 DataTypeMode:定点:二进制扩展Signedness:签了字: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(2), 1, 24日15)

释放(蔡先生);蔡先生。FixedPointDataType =“最低部分单词长度”
蔡先生= dsp.CICDecimatorwith 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.3499 1.4090 3.0349 1.4172 0.7254 0.6715 -0.0630 -1.2075 0.7148 0.7172 -0.2050 1.6302 DataTypeMode:定点:二进制扩展Signedness:签了字:24 FractionLength: 15
(WLs FLs的]= getFixedPointInfo(蔡先生,numerictype (inputF))% #好吧
WLs =1×526日26日26日26日32
FLs的=1×515个15个15个15个21

指定词和部分的长度

改变FixedPointDataType财产“指定词和部分长度”。确定定点信息使用getFixedPointInfo函数。

蔡先生。FixedPointDataType =“指定词和部分长度”
蔡先生= dsp.CICDecimatorwith 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(蔡先生,numerictype (inputF))% #好吧
WLs =1×516 16 16个32
FLs的=1×50 0 0 0 0

部分和输出单词长度和部分长度分配按照各自的定点的属性蔡先生对象。这些值不是由输入数字类型。确认,调用getFixedPointInfo函数没有通过numerictype输入参数。

(WLs FLs的]= getFixedPointInfo蔡先生)% #好吧
WLs =1×516 16 16个32
FLs的=1×50 0 0 0 0

指定字的长度

指定过滤器的单词长度和输出部分,设置FixedPointDataType财产“指定单词长度”

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

getFixedPointInfo函数需要输入数字类型,因为这些信息是用来计算部分和文字部分的长度。

(WLs FLs的]= getFixedPointInfo(蔡先生,numerictype (inputF))
WLs =1×516 16 16个32
FLs的=1×55 5 5 5 21

更多细节关于这个函数计算词和部分长度,看描述输出参数

更多关于

全部展开

算法

全部展开

引用

[1]Hogenauer, E.B.“一个经济类的数字滤波器大量毁灭和插值。”IEEE声学,演讲和信号处理。2号卷29日,1981年,155 - 162。

[2]Meyer-Baese U。数字信号处理和现场可编程门阵列。纽约:施普林格,2001年。

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

扩展功能

介绍了R2012a