主要内容

dsp.IIRhalfBand内插器

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

描述

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

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

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

你也可以使用dsp.IIRhalfBand内插器目的实现双带滤波器组的合成部分,以合成来自低通和高通子带的信号。

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

  1. 创建dsp.IIRhalfBand内插器对象并设置其属性。

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

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

创造

描述

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

实例

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

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

性质

全部展开

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

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

有关更改特性值的详细信息,请参见基于系统对象的MATLAB系统设计

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

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

依赖关系

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

数据类型:仅有一个的||int8|int16|int32|int64|uint8|uint16|uint32|uint64

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

依赖关系

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

数据类型:仅有一个的|

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

依赖关系

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

数据类型:仅有一个的|

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

依赖关系

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

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

依赖关系

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

数据类型:仅有一个的|

将对象用作合成筛选器组的选项,指定为逻辑值。如果此属性为错误的,dsp.IIRhalfBand内插器充当插值器。如果此属性为符合事实的然后dsp.IIRhalfBand内插器充当合成滤波器组,该算法接受两个输入:低通和高通子带。

依赖关系

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

内部全通滤波器实现结构,指定为“最小乘数”波数字滤波器的.每个结构使用不同的系数集,分别存储在相应的对象属性中。

此属性不可调。

依赖关系

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

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

可调:

依赖关系

此属性仅在设置规格“系数”结构“最小乘数”

数据类型:仅有一个的||int8|int16|int32|int64|uint8|uint16|uint32|uint64

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

可调:

依赖关系

此属性仅在设置规格“系数”结构“最小乘数”

数据类型:仅有一个的||int8|int16|int32|int64|uint8|uint16|uint32|uint64

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

此属性不可调。

依赖关系

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

数据类型:仅有一个的||int8|int16|int32|int64|uint8|uint16|uint32|uint64

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

此属性不可调。

依赖关系

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

数据类型:仅有一个的||int8|int16|int32|int64|uint8|uint16|uint32|uint64

标志,使第一个allpass分支为延迟,指定为逻辑标量。当这个属性为真时,第一个分支被视为纯延迟和属性所有通行系数1WDFCoefficients1不适用。

此属性不可调。

依赖关系

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

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

此属性不可调。

依赖关系

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

数据类型:仅有一个的|

选项将第二个分支的最后一部分视为一阶,指定为逻辑标量。当此属性为1且第二个分支的系数为N-通过-2矩阵,对象忽略矩阵最后一行的第二个元素。然后,第二个分支的最后一部分成为一阶部分。当此属性设置为0,第二个分支的最后一个部分是二阶部分。当第二个分支的系数处于N-通过-1矩阵,此属性将被忽略。

此属性不可调。

依赖关系

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

用法

描述

实例

Y= iirhalfbandinterp (x1)将采样值增加2,并对输入信号进行插值x1使用IIR半带内插器,iirhalfbandinterp

实例

Y= iirhalfbandinterp (x1,x2)为输入实现半带合成滤波器组x1x2x1是半带分析滤波器组的低通输出和x2为半带分析滤波器组的高通输出。dsp.IIRhalfBand内插器仅当FilterBankInputPort属性是符合事实的

输入参数

全部展开

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

数据类型:仅有一个的|
复数支持:金宝app

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

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

数据类型:仅有一个的|
复数支持:金宝app

输出参数

全部展开

内插器的输出,作为列向量或矩阵返回。内插器输出的行数是输入信号行数的两倍。

数据类型:仅有一个的|
复数支持:金宝app

目标函数

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

释放(obj)

全部展开

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

例子

全部崩溃

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

IIRHalfbandInterp=dsp.IIRHalfbandInterpolator(...“设计方法”,“准线性相位”);

获得滤波器系数

c=系数(IIRHalfbandInterp);

绘制幅值和相位响应

fvtool (IIRHalfbandInterp“分析”,“频率”)

Figure Filter Visualization Tool-幅值响应(dB)和相位响应包含轴对象和uitoolbar、uimenu类型的其他对象。具有标题幅值响应(dB)和相位响应的轴对象包含线型对象。

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

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

注:这个音频设备编写器系统对象™ 中不支持金宝appMATLAB在线

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

afr=dsp.AudioFileReader('speech_dft.mp3',“样品性能框架”, 1024);filterspec ='过滤器顺序和过渡宽度';订单= 21;TW = 2000;IIRHalfbandDecim = dsp。IIRHalfbandDecimator (...“规范”,过滤器规格,“过滤器订单”顺序...“过渡宽度”,TW,“采样器”afr取样器);IIRHalfbandInterp=dsp.IIRHalfbandInterpolator(...“规范”,过滤器规格,“过滤器订单”顺序...“过渡宽度”,TW,“采样器”,afr.SampleRate/2);ap=音频设备编写器(“采样器”afr取样器);

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

fvtool(IIRHalfbandDecim)

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

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

虽然~isDone(afr)audioframe=afr();xlo=IIRHalfbandDecim(音频帧);ylow=IIRHalfbandInterp(xlo);ap(ylow);终止

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

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

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

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

笔记字体音频设备编写器在MATLAB联机中不支持系统对象™。金宝app

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

AF=dsp.AudioFileReader('speech_dft.mp3',“样品性能框架”,1024); AP=音频设备编写器(“采样器”,AF.SampleRate);过滤器规格='过滤器顺序和过渡宽度'; 订单=51;TW=2000;IIRHalfbandDecim=dsp.IIRHalfbandDecimator(...“规范”,过滤器规格,“过滤器订单”顺序...“过渡宽度”,TW,“采样器”,AF.SampleRate);IIRHalfbandInterp=dsp.IIRHalfbandInterpolator(...“规范”,过滤器规格,“过滤器订单”顺序...“过渡宽度”,TW,“采样器”房颤。SampleRate / 2,...“FilterBankInputPort”,true);SpecAna=dsp.SpectrumAnalyzer(“采样器”,AF.SampleRate,...“PlotAsTwoSidedSpectrum”错误的“还原倍率”错误的...“ShowLegend”符合事实的...“ChannelNames”,{“输入信号”,“滤波输出信号”});

一次读取1024个音频样本。对输入进行滤波,以获得按2倍抽取的低通和高通子带信号。这是分析过滤器组。使用半带内插器作为合成滤波器组。显示音频输入和合成滤波器组输出的运行功率谱。播放输出。

虽然~isDone(AF)audioInput=AF();[xlo,xhigh]=IIRHalfbandDecim(audioInput);audioOutput=IIRHalfbandInterp(xlo,xhigh);SpecAna(spectrumInput);AP(audioOutput);终止释放(AF);释放(AP);释放(SpecAna);

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

为以44.1 kHz采样的数据创建一个半带内插滤波器。滤波器阶数为51,过渡宽度为4.1 kHz。使用该滤波器对多通道输入进行上采样和内插。

Fs=44.1e3;过滤器规格='过滤器顺序和过渡宽度';阶数=51;TW=4.1e3;iirhalfbandinterp=dsp.IIRHalfbandInterpolator(...“规范”,过滤器规格,...“过滤器订单”顺序...“过渡宽度”,TW,...“采样器”,Fs);x=randn(1024,4);y=iirhalfbandinterp(x);

算法

全部展开

参考文献

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

[2]哈里斯F.J.通信系统的多速率信号处理. 普伦蒂斯大厅。2004年,第208-209页。

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

扩展能力

R2015b中引入