dsp.CICDecimator
使用级联integrator-comb毁掉信号(CIC)过滤器
描述
的dsp.CICDecimator
系统对象™会毁坏一个输入信号使用级联integrator-comb (CIC)大量毁灭过滤器。包括中投大批杀害滤波器结构N段级联集成商,其次是速度变化的一个因素R,紧随其后的是N段级联梳过滤器。有关详细信息,请参见算法。的NumSections属性指定NCIC滤波器的部分。的DecimationFactor属性指定R,大量毁灭的因素。的getFixedPointInfo
函数返回的单词长度和部分长度定点部分和输出dsp.CICDecimator
系统对象。你也可以生成HDL代码系统对象使用generatehdl
函数。
请注意
该对象需要一个定点设计师™许可证。
毁掉一个信号使用CIC滤波器:
创建
dsp.CICDecimator
对象并设置其属性。调用对象的参数,就好像它是一个函数。
了解更多关于系统对象是如何工作的,看到的系统对象是什么?
创建
语法
属性
属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放
函数打开它们。
如果一个属性可调在任何时候,你可以改变它的值。
改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象。
DecimationFactor
- - - - - -大量毁灭的因素
2
(默认)|正整数
因子的输入信号是摧毁,指定为一个正整数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
DifferentialDelay
- - - - - -微分延迟滤波器梳部分
1
(默认)|正整数
延迟微分值用于每个梳的过滤器,指定为一个正整数。有关详细信息,请参见算法。如果差压延迟是一个内置的整数数据类型,大量毁灭因素必须相同或整数数据类型双
。例如,如果微分延迟是一个int8
,然后才必须是一个因素int8
或双
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
NumSections
- - - - - -积分器和梳部分
2
(默认)|正整数
积分器和梳子CIC滤波器的部分,指定为一个正整数。这个数字显示的部分梳部分或积分器过滤器的一部分。部分的总数在CIC滤波器部分由这个属性数量的两倍。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
FixedPointDataType
- - - - - -定点属性名称
完整的精度
(默认)|最低部分单词长度
|指定字的长度
|指定词和部分的长度
定点属性名称,指定为以下之一:
完整的精度
字长和分数CIC滤波器长度部分和对象输出操作精度。最低部分单词长度
——指定输出单词长度通过OutputWordLength财产。对象决定了滤波器部分数据类型和输出部分长度给最好的精度。有关详细信息,请参见getFixedPointInfo
和cicDecimOut
论点。指定字的长度
——指定的单词长度CIC滤波器部分和对象输出SectionWordLengths和OutputWordLength属性。对象决定了相应部分的长度给最好的精度。有关详细信息,请参见getFixedPointInfo
和cicDecimOut
论点。指定词和部分的长度
——指定字长和分数CIC滤波器长度部分和对象输出SectionWordLengths,SectionFractionLengths,OutputWordLength,OutputFractionLength属性。
SectionWordLengths
- - - - - -每个过滤器部分定点单词长度
(16 16 16)
(默认)|标量|向量
定点单词长度为每个过滤器使用部分,指定为一个标量或行向量的整数。单词长度必须大于或等于2。如果您指定一个标量,适用于所有过滤器的部分。如果你指定一个向量,向量的长度必须在2×NumSections
。
例子:32
例子:(32 32 32 32)
依赖关系
这个属性设置时适用FixedPointDataType
财产“指定单词长度”
或“指定词和部分长度”
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
SectionFractionLengths
- - - - - -定点部分长度为每个过滤部分
0
(默认)|标量|向量
定点部分长度为每个过滤器使用部分,指定为一个标量或行向量的整数。部分的长度可以是负的,0,或积极的。如果您指定一个标量,适用于所有过滤器的部分。如果你指定一个向量,向量的长度必须在2×NumSections
。
例子:2
例子:(2 0 5 8)
依赖关系
这个属性设置时适用FixedPointDataType
财产“指定词和部分长度”
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
OutputWordLength
- - - - - -定点滤波器输出单词长度
32
(默认)|标量整数
定点字长对滤波器输出,使用指定为一个标量整数大于或等于2。
依赖关系
这个属性设置时适用FixedPointDataType
财产“最低部分单词长度”
,“指定单词长度”
,或“指定词和部分长度”
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
OutputFractionLength
- - - - - -定点滤波器输出部分长度
0
(默认)|标量整数
定点部分长度对滤波器输出,使用指定为一个标量整数。
依赖关系
适用于当您设置这个属性FixedPointDataType
财产“指定词和部分长度”
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
使用
描述
使用一个中投杀害多人者会毁坏输入。cicDecimOut
= cicDecim (输入
)
输入参数
输入
- - - - - -数据输入
向量|矩阵
数据输入,指定为一个向量或矩阵。在输入的行数必须是多重的DecimationFactor。如果输入的单
或双
相关数据类型、属性设置定点数据类型将被忽略。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|fi
复数的支持:金宝app是的
输出参数
cicDecimOut
——中投杀害多人者输出
向量|矩阵
摧毁输出,作为一个向量或矩阵返回。输出帧尺寸= (1∕DecimationFactor
)×输入帧大小。输出数据的复杂性相匹配的输入数据。如果输入是单
或双
输入,输出数据类型匹配的数据类型。
如果输入的是内置的定点整数数据类型或数据类型,输出字长和分数的长度取决于你选择通过定点数据类型设置FixedPointDataType财产。
完整的精度
当FixedPointDataType
被设置为“充分精确”
适用以下关系:
在那里,
王输出——单词长度的输出数据。
FL输出——分数输出数据的长度。
王输入——单词长度的输入数据。
FL输入——分数输入数据的长度。
NumSect——通过指定的CIC滤波器的部分NumSections财产。
的王输入和FL输入是继承了数据输入传递给对象的算法。内置整数输入的长度比例是0。
最低部分单词长度
当FixedPointDataType
属性设置为“最低部分单词长度”
,输出字长是你指定的值OutputWordLength财产。输出部分的长度,FL输出是由:
指定词和部分的长度
当FixedPointDataType
属性设置为“指定词和部分长度”
,输出单词长度和部分中指定的值OutputWordLength和OutputFractionLength属性。
指定字的长度
当FixedPointDataType
属性设置为“指定单词长度”
,输出字长是你指定的值OutputWordLength
财产。输出部分的长度,FL输出是由:
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|fi
复数的支持:金宝app是的
对象的功能
使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj
使用这个语法:
发行版(obj)
过滤的列表分析方法这一对象支持,类型金宝appdsp.CICDecimator.helpFilterAnalysis
在MATLAB®命令提示符。相应的函数引用页面,看到过滤系统对象的分析方法。
例子
毁掉一个信号使用CICDecimator对象
创建一个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;% 0.0232秒信号n = (0:1023)”;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个样品。
D = cicdec.DecimationFactor;diffDelay = cicdec.DifferentialDelay;NumSect = cicdec.NumSections;gainCIC =…(D * diffDelay) ^ NumSect;茎(n (56) / Fs、双(x (4:59)))在;茎(n(一14)/ (Fs / D),双(y(1, 3:结束))/ gainCIC,…“r”,“填充”)包含(的时间(秒))ylabel (信号幅度的)传说(原始信号的,…“摧毁信号”,…“位置”,“北”)举行从;
使用信息
方法“长”
格式,获得单词长度和长度的一部分定点滤波器部分和滤波器的输出。
信息(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.CICDecimator
和dsp.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
=蔡先生输出(输入)
输出= 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 = 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
更多细节关于这个函数计算词和部分长度,看描述输出参数。
更多关于
CIC滤波器
中投过滤器是一个优化的线性相位FIR滤波器组成的一把梳子和一个积分器组成部分。
中投大批杀害过滤器是概念上的单一税率CIC滤波器,H (z)这是一个低通滤波器anti-imaging过滤器,一个downsampler紧随其后。中投大批杀害滤波器降低了输入信号的采样率一个整数因子使用级联integrator-comb (CIC)过滤器。
更高效的实现,单一税率中投过滤器H (z)这种方式是映像:
在那里,
H我传递函数的积分器过滤器包含的一部分吗N阶段的集成商。
HC的传递函数是N的级联梳状滤波器,每一个都有宽度RM。
N是部分的数量。部分数量的CIC滤波器被定义为部分在梳理部分的数量或积分器的过滤器。这个值并不代表总数的部分在整个过滤器。
R是大量毁灭的因素。
米是微分延迟。
在整个多重速率的实现,该算法适用于大量毁灭的高贵身份和移动速度变化因素,R,后跟随N级联集成商的部分。导致滤波器的传递函数是由以下方程:
显示多重速率的实现框图,明白了算法。
不动点
定点信号图显示的数据类型dsp.CICDecimator
对象使用定点信号。
在那里,
secNT = numerictype (1 secWL secFL)
outNT = numertictype (1 outWL outFL)
secWL您所指定的部分单词长度通过吗SectionWordLengths财产。
secFL部分分数长度是你指定的吗SectionFractionLengths财产。
outWL是输出字长你指定的吗OutputWordLength财产。
outFL是输出部分长度你指定的吗OutputFractionLength财产。
的价值NumSections
在这个图中是2。
算法
引用
[1]Hogenauer, E.B.“一个经济类的数字滤波器大量毁灭和插值。”IEEE声学,演讲和信号处理。2号卷29日,1981年,155 - 162。
[2]Meyer-Baese U。数字信号处理和现场可编程门阵列。纽约:施普林格,2001年。
[3]哈里斯弗雷德里克·J。多重速率的通信系统的信号处理。在印第安纳波利斯:Prentice Hall PTR, 2004年。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
看到系统在MATLAB代码生成对象(MATLAB编码器)。
HDL代码生成
生成FPGA和ASIC设计的Verilog和VHDL代码使用HDL编码器™。
这个对象支持与过滤器设计金宝app高密度脂蛋白HDL代码生成编码器™产品。工作流和限制,请参阅为过滤系统对象生成HDL代码(过滤器设计高密度脂蛋白编码器)。
版本历史
介绍了R2012a
Apri esempio
如果dispone di una versione modificata di questo esempio。Desideri aprire questo esempio con le modifiche星期二吗?
第一MATLAB
海脂肪clic苏联合国collegamento切corrisponde questo第一MATLAB:
Esegui il第一inserendolo所以nella隙缝di第一MATLAB。我浏览器web非supportano金宝app comandi MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。