主要内容

dsp。IIRHalfbandInterpolator

用多相IIR通过两个因子进行插值

描述

dsp。IIRHalfbandInterpolator系统对象™ 对输入信号执行有效的多相插值,插值倍数为2。要设计半带滤波器,可以指定对象使用椭圆设计或准线性相位设计。对象使用这些设计方法计算滤波器系数。要过滤输入,对象使用多相结构。全通滤波器多相结构中的ER为最小乘法器形式。

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

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

你也可以用dsp。IIRHalfbandInterpolator目的实现一个由低通和高通子带合成信号的双带滤波器组的合成部分。

要增加采样并插值数据,请执行以下操作:

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

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

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

创建

描述

iirhalfbandinterp = dsp。IIRHalfbandInterpolator返回IIR半带插值滤波器,iirhalfbandinterp,使用默认设置。在默认设置下,System对象使用半频带频率对输入数据进行上采样和插值22050的过渡宽度4100赫兹,且阻带衰减为80dB。

例子

iirhalfbandinterp=dsp.iirhalfBand内插器(名称,值返回IIR半带插值器,带有由一个或多个指定的附加属性名称,值对参数。

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

属性

全部展开

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

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

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

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

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

依赖关系

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

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

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

依赖关系

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

数据类型:|

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

依赖关系

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

数据类型:|

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

依赖关系

此属性仅在设置规格任何可接受的价值,除非“系数”

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

依赖关系

此属性仅在设置规格任何可接受的价值,除非“系数”

数据类型:|

选择使用对象作为综合过滤器组,指定为逻辑值。如果这个属性是dsp。IIRHalfbandInterpolator充当插值器。如果此属性为符合事实的,然后dsp。IIRHalfbandInterpolator作为一个综合滤波器组和算法接受两个输入:低通和高通子带。

依赖关系

此属性仅在设置规格任何可接受的价值,除非“系数”

内部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

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

此属性是不可调优的。

依赖关系

此属性仅在设置规格“系数”结构波数字滤波器的

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

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

此属性是不可调优的。

依赖关系

此属性仅在设置规格“系数”

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

此属性是不可调优的。

依赖关系

此属性仅在设置时适用“规范”“系数”哈斯普林分行为1。

数据类型:|

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

此属性是不可调优的。

依赖关系

此属性仅在设置规格“系数”

用法

描述

例子

y= iirhalfbandinterp (x1上采样2并插值输入信号x1使用IIR半带内插器,iirhalfbandinterp

例子

y= iirhalfbandinterp (x1x2为输入实现半带合成滤波器组x1x2x1是半带分析滤波器组的低通输出和x2为半带分析滤波器组的高通输出。dsp。IIRHalfbandInterpolator实现一个合成滤波器组仅当FilterBankInputPort属性是符合事实的

输入参数

全部展开

IIR半带插值器的数据输入,指定为列向量或矩阵。这个信号是半带分析滤波器组的低通输出。如果输入信号是一个矩阵,则矩阵的每一列都被视为一个独立的信道。

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

第二个数据输入到综合滤波器组,指定为列向量或矩阵。这个信号是半带分析滤波器组的高通输出。如果输入信号是一个矩阵,则矩阵的每一列都被视为一个独立的信道。

两个输入的大小、数据类型和复杂性必须相同。

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

输出参数

全部展开

插值器的输出,以列向量或矩阵的形式返回。内插器输出中的行数是输入信号中的行数的两倍。

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

对象的功能

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

释放(obj)

全部展开

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

例子

全部崩溃

为以44.1 kHz采样的数据创建最低阶低通IIR半带内插滤波器。该滤波器的过渡宽度为4.1 kHz,阻带衰减为80 dB。

IIRHalfbandInterp = dsp。IIRHalfbandInterpolator (...“DesignMethod”“准线性阶段”);

获得滤波器系数

c =多项式系数(IIRHalfbandInterp);

绘制幅值和相位响应

fvtool (IIRHalfbandInterp“分析”“频率”

图过滤器可视化工具-幅度响应(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 (...“规范”,过滤器规格,“FilterOrder”顺序...“过渡宽度”TW,“SampleRate”, afr.SampleRate);IIRHalfbandInterp = dsp。IIRHalfbandInterpolator (...“规范”,过滤器规格,“FilterOrder”顺序...“过渡宽度”TW,“SampleRate”,afr.SampleRate/2);ap=音频设备编写器(“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或早期版本,请使用等效的step语法替换对对象的每个调用。例如,obj(x)变为step(obj,x)。

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

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

房颤= dsp。一个udioFileReader('speech_dft.mp3'“SamplesPerFrame”,1024); AP=音频设备编写器(“SampleRate”,AF.SampleRate);过滤器规格=“滤镜顺序和过渡宽度”;订单= 51;TW = 2000;IIRHalfbandDecim = dsp。IIRHalfbandDecimator (...“规范”,过滤器规格,“FilterOrder”顺序...“过渡宽度”TW,“SampleRate”, AF.SampleRate);IIRHalfbandInterp = dsp。IIRHalfbandInterpolator (...“规范”,过滤器规格,“FilterOrder”顺序...“过渡宽度”TW,“SampleRate”房颤。SampleRate / 2,...“FilterBankInputPort”,true);SpecAna=dsp.SpectrumAnalyzer(“SampleRate”房颤。SampleRate,...“PlotAsTwoSidedSpectrum”错误的“还原倍率”错误的...“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采样的数据创建一个半带内插滤波器。滤波器阶数为51,过渡宽度为4.1 kHz。使用该滤波器对多通道输入进行上采样和内插。

Fs=44.1e3;过滤器规格=“滤镜顺序和过渡宽度”;阶数=51;TW=4.1e3;iirhalfbandinterp=dsp.IIRHalfbandInterpolator(...“规范”,过滤器规格,...“FilterOrder”顺序...“过渡宽度”TW,...“SampleRate”Fs);x = randn (1024 4);y = iirhalfbandinterp (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中引入