主要内容

dsp。IIRHalfbandDecimator

使用多相IIR以两倍的倍数抽取

描述

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

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

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

你也可以使用dsp。IIRHalfbandDecimator对象实现双带滤波器组的分析部分,以将信号滤波为低通和高通子带。

要过滤和减少数据样本:

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

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

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

iirhalfbanddecim= dsp。IIRHalfbandDecimator返回半带小数,iirhalfbanddecim,使用默认设置。在默认设置下,System对象对输入数据进行过滤和低采样,其半带频率为22050Hz,过渡宽度为4100的阻带衰减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。

依赖关系

此属性仅在设置时应用规范到任何可接受的值,除了“系数”

数据类型:|

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

此属性不可调。

依赖关系

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

第一个分支的所有通多项式滤波器系数,指定为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分支成为延迟,指定为逻辑标量。当此属性为true时,第一个分支被视为纯延迟,而属性AllpassCoefficients1而且WDFCoefficients1不要申请。

此属性不可调。

依赖关系

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

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

此属性不可调。

依赖关系

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

数据类型:|

选项,将第二个分支的最后一部分视为一阶,并指定为逻辑标量。当这个性质是1而第二个分支的系数在an中N-by-2矩阵,对象忽略矩阵最后一行的第二个元素。第二分支的最后一部分就变成了一阶部分。当此属性设置为0,第二分支的最后一段为二阶段。当第二个分支的系数在an中N-by-1矩阵,此属性将被忽略。

此属性不可调。

依赖关系

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

使用

描述

例子

ylow= iirhalfbanddecim (x对输入信号进行滤波,x,使用IIR半带滤波器,iirhalfbanddecim,并将输出的样本降低2倍。

例子

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

输入参数

全部展开

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

数据类型:|
复数支持:是的

输出参数

全部展开

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

数据类型:|
复数支持:是的

十进制输出的高通子带,作为列向量或矩阵返回。输出,yhigh输入是经过高通半带滤波和下采样的吗x.由于滤波器的半带特性,下采样因子总是2。

数据类型:|
复数支持:是的

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

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

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

得到滤波器系数。

c = coeffs(IIRHalfbandDecim);

绘制幅值和相位响应。

fvtool (IIRHalfbandDecim“分析”“频率”

图1:幅度响应(dB)和相位响应包含一个轴对象。轴对象的标题为幅度响应(dB)和相位响应,xlabel频率(kHz), ylabel幅度(dB)包含一个类型为line的对象。

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

注意:audioDeviceWriter中不支持系统对象™MATLAB在线

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

Afr = 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);ap = audioDeviceWriter(“SampleRate”, afr.SampleRate);

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

fvtool (IIRHalfbandDecim)

图1:幅度响应(dB)包含一个轴对象。标题为Magnitude Response (dB), xlabel Frequency (kHz), ylabel Magnitude (dB)的axis对象包含2个类型为line的对象。

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

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

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

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

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

请注意:audioDeviceWriter在MATLAB在线中不支持系统对象™。

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

AF = dsp。一个udioFileReader(“speech_dft.mp3”“SamplesPerFrame”, 1024);AP = 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”,真正的);光谱分析仪(“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);

为44.1 kHz采样的数据创建一个半波段decimator。使用过渡宽度为2 kHz和阻带衰减为60 dB的最小阶设计。

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

将双通道输入滤波为低通和高通子带。

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

算法

全部展开

参考文献

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

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

Regalia, Phillip A, Sanjit K. Mitra, P. P. Vaidyanathan。数字全通滤波器:一种多功能信号处理构建模块IEEE论文集。第76卷第1期,1988年,第19-37页。

扩展功能

版本历史

在R2015b中引入

Baidu
map