主要内容

dsp。IIRHalfbandDecimator

用多相IIR按因子二抽取

描述

dsp。IIRHalfbandDecimator系统对象™执行高效的多相抽取输入信号的因子2。要设计半带滤波器,可以指定对象使用椭圆设计或准线性相位设计。对象使用这些设计方法来计算滤波系数。为了过滤输入,该对象使用多相结构。多相结构中的全通滤波器采用最小乘法器形式。

椭圆设计引入非线性相位,并使用比准线性设计更少的系数创建滤波器。准线性相位设计以附加系数为代价克服了相位非线性问题。

另外,您可以直接指定滤波器系数,而不是使用设计方法来设计半带滤波器。当您选择此选项时,多相实现的两个分支中的全通滤波器可以采用最小乘法器形式或波形数字形式。

你也可以用thedsp。IIRHalfbandDecimator目的实现双带滤波器组的分析部分,将信号滤波成低通和高通子带。

要过滤和取样您的数据:

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

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

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

创建

描述

iirhalfbanddecim= dsp。IIRHalfbandDecimator返回半带小数,iirhalfbanddecim,使用默认设置。在默认设置下,System对象以半频带频率对输入数据进行过滤和下采样22050的过渡宽度4100Hz,阻带衰减为80dB。

例子

iirhalfbanddecim= dsp。IIRHalfbandDecimator (名称,值返回IIR半带小数,带有由一个或多个指定的附加属性名称,值对参数。

例子:iirhalfbanddecim = dsp。IIRHalfbandDecimator (“规范”,'滤波器顺序和阻带衰减')创建一个IIR半带抽取器对象,其滤波顺序设置为9和阻带衰减设置为80dB。

属性

全部展开

除非另有说明,属性是nontunable,这意味着您不能在调用对象之后更改它们的值。对象在调用时锁定,而释放函数打开它们。

如果一个属性是可调,您可以随时更改它的值。

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

过滤器设计参数,指定为字符向量。当您设置规范对于其中一个滤波器设计选项,可以使用相应的参数指定滤波器设计参数FilterOrderStopbandAttenuation,TransitionWidth属性。此外,您还可以使用DesignMethod.当您设置规范“系数”,你可以直接指定系数。

IIR半带滤波器的阶数,指定为一个正标量整数。如果你设置DesignMethod“椭圆”,然后FilterOrder必须是一个大于1的奇数。如果你设置DesignMethod“准线性阶段”,然后FilterOrder一定是4的倍数。

依赖关系

此属性在设置时应用规范'滤波器顺序和阻带衰减'“滤镜顺序和过渡宽度”

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

IIR半带滤波器的阻带所需的最小衰减,指定为正实标量。单位是dB。

依赖关系

此属性仅在设置时应用规范'滤波器顺序和阻带衰减'“过渡宽度和阻带衰减”

数据类型:|

IIR半带滤波器的过渡宽度,指定为正实标量。单位为Hz。过渡宽度的值必须小于输入采样率的一半。

依赖关系

此属性仅在设置时应用规范“过渡宽度和阻带衰减”“滤镜顺序和过渡宽度”

数据类型:|

IIR半带滤波器的设计方法,规定为“椭圆”“准线性阶段”.当属性设置为时“准线性阶段”,多相结构的第一个分支是一个纯延迟,这导致一个近似线性的相位响应。

依赖关系

此属性仅在设置时应用规范为任何可接受的价值“系数”

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

依赖关系

此属性仅在设置时应用规范为任何可接受的价值“系数”

数据类型:|

内部allpass过滤器实现结构,指定为“最低乘数”波数字滤波器的

此属性是不可调优的。

依赖关系

此属性仅在设置时应用“规范”“系数”.每个结构使用不同的系数集,分别存储在相应的对象属性中。

第一支路的全通多项式滤波器系数,指定为N——- - - - - -1N——- - - - - -2矩阵。N为一阶或二阶全通段的个数。

可调:是的

依赖关系

此属性仅在设置时应用规范“系数”结构“最低乘数”

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

第二支路的全通多项式滤波器系数,指定为N——- - - - - -1N——- - - - - -2矩阵。N为一阶或二阶全通段的个数。

可调:是的

依赖关系

此属性仅在设置时应用规范“系数”结构“最低乘数”

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

波数字滤波器形式的第一个分支的全通滤波器系数,指定为N——- - - - - -1N——- - - - - -2矩阵。N为一阶或二阶全通段的个数。每个元素的绝对值必须小于或等于1

此属性是不可调优的。

依赖关系

此属性仅在设置时应用规范“系数”结构波数字滤波器的

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

第二支路的全通滤波器系数采用波数字滤波器形式,指定为逗号分隔对组成“WDFCoefficients2”和一个N——- - - - - -1N——- - - - - -2矩阵。N为一阶或二阶全通段的个数。每个元素的绝对值必须小于或等于1。

此属性是不可调优的。

依赖关系

此属性仅在设置时应用“规范”“系数”“结构”波数字滤波器的

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

标志,使第一个allpass分支为延迟,指定为逻辑标量。当这个属性为真时,第一个分支被视为纯延迟和属性AllpassCoefficients1WDFCoefficients1不适用。

此属性是不可调优的。

依赖关系

此属性仅在设置时应用规范“系数”

第一支路延迟的长度,指定为有限正标量。此属性的值指定可以延迟第一个分支的输入的样本数量。

此属性是不可调优的。

依赖关系

此属性仅在设置时应用规范“系数”HasPureDelayBranch为1。

数据类型:|

选项将第二个分支的最后一部分作为第一顺序处理,指定为逻辑标量。当这个性质是1并且第二支路的系数在aN-by-2矩阵,该对象忽略矩阵最后一行的第二个元素。第二个分支的最后一部分就变成了一阶部分。当此属性设置为时0,第二个分支的最后一部分是二级部分。当第二支路的系数在N-by-1矩阵,这个性质被忽略。

此属性是不可调优的。

依赖关系

此属性仅在设置时应用规范“系数”

使用

描述

例子

ylow= iirhalfbanddecim (x过滤输入信号,x,采用IIR半带滤波器,iirhalfbanddecim,并对输出进行因子2的向下采样。

例子

ylowyhigh) = iirhalfbanddecim (x计算ylowyhigh的分析滤波器组,iirhalfbanddecim输入x.一个Ki——- - - - - -N输入矩阵为N独立的通道。System对象通过对两个多相分支输出分别加和减产生两个功率互补输出信号。ylowyhigh大小相同(Ko——- - - - - -N)和数据类型。KoKi/ 2,2为抽取因子。

输入参数

全部展开

数据输入,指定为列向量或矩阵。输入信号的行数必须是偶数,因为这个对象的抽取因子总是2。如果输入是一个矩阵,则每一列都被视为一个独立的通道。

数据类型:|
复数的支持:金宝app是的

输出参数

全部展开

小数输出的低通子带,作为列向量或矩阵返回。输出,ylow输入是低通半带滤波和下采样版本吗x.由于滤波器的半带特性,下采样因子总是2。

数据类型:|
复数的支持:金宝app是的

小数输出的高通子带,作为列向量或矩阵返回。输出,yhigh是高通半带滤波和下采样版本的输入x.由于滤波器的半带特性,下采样因子总是2。

数据类型:|
复数的支持:金宝app是的

对象的功能

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj,使用下面的语法:

发行版(obj)

全部展开

freqz 离散时间滤波器的频率响应系统对象
fvtool 显示DSP滤波器的频率响应
信息 信息过滤系统对象
成本 估计实现过滤器的成本系统对象
多相 多速率滤波器的多相分解
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 使内部状态复位系统对象

例子

全部折叠

创建一个最小阶低通IIR半带抽取滤波器的数据采样在44.1 kHz。该滤波器的过渡宽度为4.1 kHz,阻带衰减为80 dB。

IIRHalfbandDecim = dsp。IIRHalfbandDecimator (...“DesignMethod”“准线性阶段”);

获取过滤系数。

c =多项式系数(IIRHalfbandDecim);

绘制幅值和相位响应。

fvtool (IIRHalfbandDecim“分析”“频率”

图过滤器可视化工具-幅度响应(dB)和相位响应包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“幅度响应(dB)”和“相位响应”的轴对象包含一个类型线对象。

利用半带分析滤波器组和插值滤波器从语音信号中提取低频子带。

请注意:如果你正在使用R2016a或更早的版本,将每个对对象的调用替换为等价的一步语法。例如,obj (x)就变成了步骤(obj, x)

注意:audioDeviceWriter中不支持系统对象™金宝appMATLAB在线

设置音频文件读取器、分析滤波器组、音频设备写入器和插值滤波器。音频数据采样率为22050 Hz。半带滤波器的阶数为21,过渡宽度为2 kHz。

误判率= dsp。一个udioFileReader(“speech_dft.mp3”“SamplesPerFrame”, 1024);filterspec =“滤镜顺序和过渡宽度”;订单= 21;TW = 2000;IIRHalfbandDecim = dsp。IIRHalfbandDecimator (...“规范”filterspec,“FilterOrder”订单,...“TransitionWidth”TW,“SampleRate”, afr.SampleRate);IIRHalfbandInterp = dsp。IIRHalfbandInterpolator (...“规范”filterspec,“FilterOrder”订单,...“TransitionWidth”TW,“SampleRate”, afr.SampleRate / 2);美联社= audioDeviceWriter (“SampleRate”, afr.SampleRate);

查看半带滤波器的幅值响应。

fvtool (IIRHalfbandDecim)

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为line的对象。

以1024个样本帧从音频文件中读取语音信号。将语音信号滤波成半频带频率为5512.5 Hz的低通和高通子频带。通过插值低通子带重构语音信号的低通近似。播放过滤后的输出。

~isDone(afr) audioframe = afr();xlo = IIRHalfbandDecim (audioframe);ylow = IIRHalfbandInterp (xlo);美联社(ylow);结束

等待音频文件结束后,关闭输入文件并释放音频输出资源。

释放(误判率);释放(美联社);

采用半带抽取器和内插器实现双通道滤波器组。这个示例使用音频文件输入,并显示滤波器组输出的功率谱与输入没有显著差异。

请注意如果你正在使用R2016a或更早的版本,用等价的步骤语法替换每个对象调用。例如,obj(x)变成step(obj,x)。

请注意:audioDeviceWriter在MATLAB联机中不支持系统对象™。金宝app

设置音频文件读取器和音频设备写入器。构造IIR半带抽取器和内插器。最后,搭建频谱分析仪,显示滤波器组输入输出的功率谱。

房颤= dsp。一个udioFileReader(“speech_dft.mp3”“SamplesPerFrame”, 1024);美联社= audioDeviceWriter (“SampleRate”, AF.SampleRate);filterspec =“滤镜顺序和过渡宽度”;订单= 51;TW = 2000;IIRHalfbandDecim = dsp。IIRHalfbandDecimator (...“规范”filterspec,“FilterOrder”订单,...“TransitionWidth”TW,“SampleRate”, AF.SampleRate);IIRHalfbandInterp = dsp。IIRHalfbandInterpolator (...“规范”filterspec,“FilterOrder”订单,...“TransitionWidth”TW,“SampleRate”房颤。SampleRate / 2,...“FilterBankInputPort”,真正的);SpecAna = dsp。简介(“SampleRate”房颤。SampleRate,...“PlotAsTwoSidedSpectrum”假的,“ReducePlotRate”假的,...“ShowLegend”,真的,...“ChannelNames”, {输入信号的过滤后的输出信号的});

一次读取1024个音频样本。滤波器的输入,以获得低通和高通子带信号抽取因子二。这是分析滤波器组。采用半带插值器作为综合滤波器组。显示音频输入和合成滤波器组输出的运行功率谱。输出。

~isDone(AF) audioInput = AF();(xlo xhigh] = IIRHalfbandDecim (audioInput);audioOutput = IIRHalfbandInterp (xlo xhigh);spectrumInput = [audioInput audioOutput];SpecAna (spectrumInput);美联社(audioOutput);结束释放(AF);释放(美联社);释放(SpecAna);

请注意:此示例仅在R2016b或更高版本中运行。如果您正在使用较早的版本,请将对该函数的每个调用替换为等价的一步语法。例如,myObject(x)变成step(myObject,x)。

为44.1 kHz采样的数据创建半频带抽取器。采用最小阶设计,过渡宽度为2 kHz,阻带衰减为60 dB。

IIRHalfbanddecim = dsp。IIRHalfbandDecimator (...“规范”“过渡宽度和阻带衰减”...“TransitionWidth”, 2000,“StopbandAttenuation”现年60岁的“SampleRate”44.1 e3);

滤波器双通道输入到低通和高通子带。

x = randn (1024 2);[ylow, yhigh] = IIRHalfbanddecim (x);

算法

全部展开

参考文献

[1]朗,M。全通滤波器的设计和应用。IEEE信号处理汇刊。第46卷第9期,1998年9月,2505-2514页。

[2]哈里斯F.J.通信系统的多速率信号处理.Prentice Hall, 2004, pp. 208-209。

Regalia, Phillip A., Sanjit K. Mitra和P. P. Vaidyanathan。数字全通滤波器:一种通用的信号处理组件。IEEE会议记录。第76卷,第1期,1988年,第19-37页。

扩展功能

介绍了R2015b