dsp。CICCompensationDecimator

用FIR抽取器补偿CIC抽取滤波器

描述

您可以通过使用补偿decimator来弥补CIC decimator的缺点,即它的通带下垂和宽过渡区域。这个System对象™允许您设计和使用这样的过滤器。

为了弥补CIC滤波器使用FIR decimator的缺点:

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

  2. 调用带有参数的对象,就像调用函数一样。

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

创建

描述

ciccompdec= dsp。CICCompensationDecimator返回一个System对象,ciccompdec,它对输入信号的每个通道应用FIR抽取器。利用对象的属性,可以设计抽取滤波器来补偿前面的CIC滤波器。

ciccompdec= dsp。CICCompensationDecimator (decim返回一个CIC补偿十进制系统对象DecimationFactor属性设置为decim

ciccompdec= dsp。CICCompensationDecimator (中投公司返回一个CIC补偿十进制系统对象CICRateChangeFactorCICNumSections,CICDifferentialDelaydsp。CICDecimator系统对象,中投公司

ciccompdec= dsp。CICCompensationDecimator (中投公司decim返回一个CIC补偿decimator系统对象,ciccompdec,CICRateChangeFactorCICNumSections,CICDifferentialDelaydsp。CICDecimator系统对象中投公司,DecimationFactor属性设置为decim

例子

ciccompdec= dsp。CICCompensationDecimator (<年代pan class="argument_placeholder">___名称,值返回一个CIC补偿decimator对象,其中每个指定属性设置为指定值。将每个属性名用引号括起来。可以将此语法用于以前的任何输入参数组合。

属性

全部展开

除非另有说明,属性为<年代pan class="emphasis">nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放函数打开它们。

如果属性是<年代pan class="emphasis">可调,您可以随时更改其值。

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象设计系统(MATLAB)。

指定被补偿的CIC过滤器的差分延迟为一个正整数标量。

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

指定作为正整数标量进行补偿的CIC过滤器的节数。

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

指定被补偿的CIC过滤器的变化率因子为正整数标量。

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

将补偿器System对象的抽取因子指定为正整数标量。

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

指定是将最小顺序的过滤器设计为逻辑标量还是将指定顺序的过滤器设计为逻辑标量。默认值是真正的,对应最小阶滤波器。

将抽取补偿器过滤器的顺序指定为正整数标量。

依赖关系

此属性仅在设置DesignForMinimumOrder财产

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

指定通带边缘频率为以赫兹表示的正实标量。PassbandFrequency必须小于<年代pan class="inlineequation">F<年代ub>年代/ 2,在那里<年代pan class="inlineequation">F<年代ub>年代为输入采样率。

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

指定滤波器通带波纹为以分贝表示的正实标量。

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

指定输入采样速率为正实标量,单位为赫兹。

数据类型:|

指定滤波器阻带衰减为正实标量,以分贝表示。

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

指定阻带边缘频率为正实标量,以赫兹表示。StopbandFrequency必须小于<年代pan class="inlineequation">F<年代ub>年代/ 2,在那里<年代pan class="inlineequation">F<年代ub>年代为输入采样率。

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

定点属性

系数的字和分数长度,指定为有符号或无符号numerictype对象。默认的,numerictype (16)对应于具有16位系数和基于系数值确定的分数长度的带符号数值类型对象,以提供最佳精度。

此属性不可调。

输出的字长与输入的字长相同。计算输出的部分长度,这样输出的整个动态范围可以表示而不溢出。有关如何计算输出的分数长度的详细信息,请参见FIR滤波器中避免溢出的定点精度规则

输出定点操作的舍入方法,指定为字符向量。有关舍入模式的更多信息,请参见精度和范围

使用

描述

例子

y= ciccompdecim (x返回经过过滤和下采样的值,y输入信号的,x

输入参数

全部展开

数据输入,指定为向量或矩阵。System对象处理K<年代ub>我×N输入矩阵N独立的通道,在第一个维度上抽取每个通道。

此对象不支持复杂无符号定点数据。金宝app

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

输出参数

全部展开

经过过滤和下采样的信号,作为向量或矩阵返回。对于一个K<年代ub>我×N输入矩阵,结果是aK<年代ub>o×N输出矩阵,K<年代ub>oK<年代ub>我/而且是抽取因子。

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

对象的功能

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

发行版(obj)

全部展开

freqz 滤波器的频率响应
fvtool 可视化DSP滤波器的频率响应
信息 filter系统对象信息
成本 估计实现过滤器系统对象的成本
多项式系数 滤波器系数
多相 多速率滤波器的多相分解
generatehdl 生成量化DSP滤波器的HDL代码(需要filter Design HDL Coder)
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置系统对象的内部状态

例子

全部展开

设计一个CIC补偿decimator。指定抽取因子为2,通带频率为4 kHz,阻带频率为4.5 kHz,输入采样率为16 kHz。

fs = 16 e3;成就= 4 e3;fStop = 4.5 e3;CICCompDecim = dsp。CICCompensationDecimator (<年代pan style="color:#A020F0">“DecimationFactor”2,<年代pan style="color:#A020F0">“PassbandFrequency”成就,<年代pan style="color:#0000FF">...“StopbandFrequency”fStop,<年代pan style="color:#A020F0">“SampleRate”fs);

画出脉冲响应。该滤波器的组时延为45.5。

fvtool (CICCompDecim<年代pan style="color:#A020F0">“分析”,<年代pan style="color:#A020F0">“冲动”

绘制幅值和相位响应。

fvtool (CICCompDecim<年代pan style="color:#A020F0">“分析”,<年代pan style="color:#A020F0">“频率”

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

为现有的六段抽取系数为6的CIC抽取器设计一个补偿抽取器。

CICDecim = dsp。CICDecimator (<年代pan style="color:#A020F0">“DecimationFactor”6<年代pan style="color:#0000FF">...“NumSections”6);

构造补偿decimator。指定抽取因子为2,输入采样率为16 kHz,通带频率为4 kHz,阻带频率为4.5 kHz。

fs = 16 e3;成就= 4 e3;fStop = 4.5 e3;CICCompDecim = dsp。CICCompensationDecimator (CICDecim<年代pan style="color:#0000FF">...“DecimationFactor”2,<年代pan style="color:#A020F0">“PassbandFrequency”成就,<年代pan style="color:#0000FF">...“StopbandFrequency”fStop,<年代pan style="color:#A020F0">“SampleRate”fs);

想象级联的频率响应。将所有震级响应归一化为0分贝。

filtCasc = dsp.FilterCascade (CICDecim CICCompDecim);f = fvtool(CICDecim, CICCompDecim, filtCasc,<年代pan style="color:#0000FF">...“Fs”, [fs*6 fs*6]);f.NormalizeMagnitudeto1 =<年代pan style="color:#A020F0">“上”;传奇(f,<年代pan style="color:#A020F0">“中投杀害多人者”,<年代pan style="color:#A020F0">“中投公司补偿杀害多人者”,<年代pan style="color:#0000FF">...“总体响应”);

将该设计应用于一个1200样本的随机输入信号。类的第一个维度存储抽取后的输出<年代pan class="emphasis">y数组中。

x = dsp.SignalSource (fi (rand(1200 1), 1, 16日15),<年代pan style="color:#A020F0">“SamplesPerFrame”, 120);y = fi(0(100 1), 1, 32岁,20);<年代pan style="color:#0000FF">为ind = 1:10 x2 = CICDecim(x());y (((ind-1) * 10) + 1:印第安纳州* 10,1)= CICCompDecim (x2);<年代pan style="color:#0000FF">结束

算法

CIC滤波器的响应为:

H c c ω R D ω 2 ω 2 N

RD,N分别为变化率因子、差分时延和CIC滤波器的节数。

在抽取之后,cic响应的形式是:好的

H c c ω D ω 2 ω 2 R N

CIC补偿器需要补偿的是最后一个响应的规范化版本。因此,CIC补偿器的通带响应应为:

H c c c o p ω R D ω 2 R D ω 2 N ω ω p < π

在哪里ωp为CIC补偿滤波器的通带频率。

注意,当ω/ 2Rπ,即前面的方程式Hciccompω)可以用sin(x)≅x

H c c c o p ω D ω 2 D ω 2 N 年代 n c D ω 2 N ω ω p < π

前面的方程是CIC滤波器真实逆通带响应的逆sinc近似。

扩展功能

另请参阅

功能

  • |<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">

系统对象

介绍了R2014b