主要内容

dsp。C一世CDecimator

使用级联积分器 - 梳子(CIC)滤波器的大致信号

描述

dsp。C一世CDecimator系统对象™使用级联积分器梳(CIC)抽取滤波器抽取输入信号。CIC抽取滤波器结构包括N.级联积分器的各部分,随后速率变化系数为R., 其次是N.级联梳状滤波器部分。有关详细信息,请参阅算法.这NumSections属性指定N., CIC过滤器中的节数。这DecimationFactor属性指定R.,抽取因子。这getFixedPointInfo函数返回定点段的单词长度和分数长度,以及dsp。C一世CDecimator系统对象。属性也可以为这个System对象生成HDL代码生成hdl功能。

笔记

此对象需要固定点设计器™许可证。

使用CIC滤波器抽取信号:

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

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

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

创建

描述

例子

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

例子

cicDecim= dsp.cicdecimator(R.mN.创建CIC抽取对象DecimationFactor物业设为R., 这DifferentialDelay物业设为m,NumSections物业设为N.

cicDecim= dsp.cicdecimator(名称、值创建CIC抽取对象,将每个指定的属性设置为指定的值。将每个属性名用单引号括起来。您可以将此语法与之前的任何输入参数组合一起使用。

属性

全部展开

除非另有说明,属性是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]

依赖关系

属性设置时将应用此属性固定点数据类型财产'指定单词长度'指定单词和分数长度

数据类型:||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

用法

描述

例子

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

输入参数

全部展开

数据输入,指定为向量或矩阵。属性的行数必须是DecimationFactor.如果输入是数据类型,则忽略与定点数据类型相关的特性设置。

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

输出参数

全部展开

被抽取的输出,作为向量或矩阵返回。输出帧大小等于(1 /DecimationFactor)×输入帧大小。输出数据的复杂性与输入数据的复杂性相匹配。如果输入是,则输出数据类型与输入数据类型匹配。

如果输入是内置整数数据类型或固定点数据类型,则输出字长度和分数长度依赖于您选择的固定点数据类型设置固定点数据类型财产。

完整的精度

固定点数据类型被设置为“充分精确”,以下关系适用:

W. L. 输出 = W. L. 输入 + N. m S. E. C T. F L. 输出 = F L. 输入

在哪里,

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

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

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

  • fl输入- 输入数据的分数长度。

  • 纽西特中指定的CIC过滤器中的节数NumSections财产。

输入fl输入从传递给对象算法的数据输入中继承。对于内置整数输入,分数长度为0。

最小部分字长度

固定点数据类型属性设置为“最小节字长”,输出字长是您在OutputWordLength所有物输出分数长度,fl输出,由:

F L. 输出 = W. L. 输出 W. L. 输入 F L. 输入 + N. m S. E. C T.

指定单词和分数长度

固定点数据类型属性设置为指定单词和分数长度,输出的字长和分数长度是您在OutputWordLength输出折叠长长属性。

指定字的长度

固定点数据类型属性设置为'指定单词长度',输出字长是您在OutputWordLength所有物输出分数长度,fl输出,由:

F L. 输出 = W. L. 输出 W. L. 输入 F L. 输入 + N. m S. E. C T.

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

对象功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,要发布命名的系统对象的系统资源obj.,使用下面的语法:

释放(obj)

全部展开

生成hdl 为量化DSP滤波器生成HDL代码(需要滤波器设计HDL编码器
impz 离散时间滤波器的脉冲响应系统对象
弗里克 离散时间滤波器的频率响应系统对象
phasez 离散时间滤波器的相位响应系统对象(打开)
fvtool DSP滤波器的频率响应可视化
获得 CIC滤波器增益系统对象
getFixedPointInfo 获得定点字和分数长度
信息 有关过滤器的信息系统对象
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特性
重置 使内部状态复位系统对象

要查看此对象支持的筛选器分析方法列表,请键入金宝appdsp.CICDecimator.helpFilterAnalysis在MATLAB®命令提示符。对于相应的函数参考页面,请参阅过滤系统对象的分析方法

例子

全部崩溃

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

创建一个dsp。C一世CDecimator系统对象™DecimationFactor设置为4.减少44.1 kHz至11.025 kHz的信号。

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

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

Fs = 44.1 e3;% 0.0232秒信号n =(0:1023)';X = FI(SIN(2 * PI * 1E3 / FS * N),TRUE,16,15);

创建一个dsp。S.ignalSource对象。

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

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

y = 0(16日16);为了II = 1:16 Y(II,:) = CICDEC(SRC());结尾

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

D = cicdec.DecimationFactor;diffDelay = cicdec.DifferentialDelay;NumSect = cicdec.NumSections;gainCIC =...(d * diffdelay)^ numsect;茎(n(1:56)/ fs,double(x(4:59)))在…上;茎(n(一14)/ (Fs / D),双(y(1, 3:结束))/ gainCIC,...'r''填充')包含('时间(秒)')伊拉贝尔('信号幅度')传说(原始信号的...“摧毁信号”...“位置”“北”)持有

图中包含一个轴对象。“轴”对象包含2个stem类型的对象。这些对象表示原始信号、抽取信号。

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

信息(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一世CDecimator数字信号处理器系统对象。过滤器部分和输出的数据类型取决于固定点数据类型筛选器系统对象的属性™.

完整的精度

创建一个dsp。C一世CDecimator对象。的默认值NumSections房地产是2。这个值表明有两个积分器和梳状节。返回的WLs和FLs载体getFixedPointInfo函数每个包含五个元素。前两个元素表示两个积分器部分。第三和第四个元素表示两个梳状部分。最后一个元素表示滤波器输出。

蔡先生= dsp。C一世CDecimator
蔡先生= dsp。C一世CDecimator with properties: DecimationFactor: 2 DifferentialDelay: 1 NumSections: 2 FixedPointDataType: 'Full precision'

默认情况下,固定点数据类型对象的属性设置为“充分精确”.调用getFixedPointInfo使用输入数字类型的此对象函数,新界,产生以下字距和分数长度向量。

nt=数字类型(1,16,15)
nt=DataTypeMode:定点:二进制点缩放符号性:有符号字长:16分位数长度:15
(WLs FLs的]= getFixedPointInfo(蔡先生,nt)% #好吧
WLS =1×518 18 18 18 18
FLs的=1×515 15 15 15 15

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

如果你锁定蔡先生对象通过向其算法传递输入,则不需要传递新界参数getFixedPointInfo功能。

INPUT = INT64(RANDN(8,1))
输入=8x1 int64列向量1 2 -2 1 0 -1 0 0
输出= CICD(输入)
输出= 0 1 3 0 DataTypeMode:定点:二进制点缩放Signedness: Signed WordLength: 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.cicDecimator具有属性:decimationFactor:2 SciteIlyDelay:1 NUMPERIONS:2 FINCESTPOINTDATTYPE:'最小部分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:固定点:二进制点缩放符号:Signed WordLength: 24 FractionLength: 15
[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF)); / /输入% #好吧
WLS =1×526 26 26 26 32
FLs的=1×515 15 15 21

指定单词和分数长度

改变固定点数据类型财产指定单词和分数长度.确定定点信息使用getFixedPointInfo功能。

cicd.fixedPointDataType =指定单词和分数长度
蔡先生= dsp。C一世CDecimator with 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(cicD,numerictype(inputF)); / /输入% #好吧
WLS =1×516 16 16 16 32
FLs的=1×50 0 0 0 0

根据相应的固定点属性分配部分和输出字长度和分数长度蔡先生对象。这些值不是由输入的数字类型决定的。要确认,请打电话给getFixedPointInfo函数,而不传递numerictype输入参数。

[WLS,FLS] = GetFixedPointInfo(CICD)% #好吧
WLS =1×516 16 16 16 32
FLs的=1×50 0 0 0 0

指定字的长度

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

cicd.fixedPointDataType ='指定单词长度'
蔡先生= dsp。C一世CDecimator with properties: DecimationFactor: 2 DifferentialDelay: 1 NumSections: 2 FixedPointDataType: 'Specify word lengths' SectionWordLengths: [16 16 16 16] OutputWordLength: 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] Meyer-Baese U。用现场可编程门阵列进行数字信号处理. 纽约:斯普林格,2001年。

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

扩展功能

2012年推出