主要内容

octaveFilterBank

八度和分数八度滤波器组

描述

octaveFilterBank将信号分解为八度或分数八度子带。八度频带是一个频带,其中最高频率是最低频率的两倍。八度带和分数八度带滤波器通常用于模拟人类如何感知响度。

应用一组倍频带或分数倍频带滤波器:

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

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

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

创建

描述

octFiltBank= octaveFilterBank返回一个八度滤波器组。随着时间的推移,对象在每个输入通道中独立地过滤数据。

octFiltBank= octaveFilterBank (带宽设置带宽财产带宽

octFiltBank= octaveFilterBank (带宽fs设置SampleRate财产fs

octFiltBank= octaveFilterBank (___名称,值设置每个属性名字到指定的价值.未指定的属性有默认值。

例子:octFiltBank = octaveFilterBank('1/2 octave','FrequencyRange',[62.5,12000])创建一个½倍频带滤波器组,octFiltBank,带通滤波器的频率在62.5 Hz到12000 Hz之间。

属性

全部展开

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

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

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

以八度为单位的过滤带宽,指定为1倍频程的“2/3倍频程”的1/2倍频程1/3倍频程的“1/6倍频程”“1/12倍频程”“1/24倍频程”,或“1/48倍频程”

可调:没有

数据类型:字符|字符串

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

可调:是的

数据类型:|

滤波器组的频率范围,以Hz为单位,指定为单调递增正值的两元素行向量。滤波器组的中心频率根据带宽RefererenceFrequency,OctaveRatioBase属性。外部有一个中心频率的滤波器FrequencyRange将被忽略。

可调:没有

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

滤波器组的参考频率,以Hz为单位,指定为正整数标量。参考频率定义了一个中心频率。所有其他中心频率都是相对于参考频率设置的。

可调:没有

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

倍频滤波器的顺序,指定为偶数。过滤器顺序适用于过滤器组中的每个单独的过滤器。

可调:没有

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

八度比基础,指定为102.倍频比基数决定了倍频滤波器中心频率的分布。ANSI S1.11标准推荐以10为基数。基数2在音乐应用程序中很流行。以2为基数定义一个八度为一个因子2,以10为基数定义一个八度为一个因子100.3

可调:没有

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

使用

描述

例子

audioOut= octFiltBank (audioIn对输入应用八度滤波器组并返回过滤后的输出。

输入参数

全部展开

八度滤波器组的音频输入,指定为标量、矢量或矩阵。如果指定为矩阵,列将被视为独立的音频通道。

数据类型:|

输出参数

全部展开

音频输出从八度滤波器组,返回为标量,矢量,矩阵,或3-D数组。的形状audioOut取决于形状audioIn以及滤波器组中滤波器的数量。如果是过滤器的数量,和audioIn是一个l——- - - - - -N矩阵,然后audioOut返回为l——- - - - - -——- - - - - -N数组中。如果N那么是1audioOut是一个矩阵。

数据类型:|

对象的功能

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

发行版(obj)

全部展开

多项式系数 获取滤波器系数
freqz 计算频率响应
fvtool 可视化滤波器组
getBandedgeFrequencies 准备过滤带
getCenterFrequencies 滤波器中心频率
getGroupDelays 获得团队延迟
信息 获取筛选器信息
isStandardCompliant 验证倍频滤波器组符合ANSI S1.11-2004标准
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

为48khz采样的信号创建1/3-八度滤波器组。设置频率范围为(22000年18)赫兹。

octFilBank = octaveFilterBank(“1/3倍频程”, 48000,...FrequencyRange =[22000] 18日);

使用fvtool为了可视化滤波器组的响应。要获得低频的高分辨率视图,请设置x设在来日志而且NFFT2 ^ 16

fvt = fvtool(octFilBank,“NFFT”、2 ^ 16);设置(fvt FrequencyScale =“日志”)变焦(fvt(。01 24 -20 1])

显示滤波器组中心频率。

fc = getCenterFrequencies(octFilBank);Cf = string(size(fc));Ii = find(fc<1000) cf(Ii) = sprintf(“%。0 f赫兹”而圆(fc (ii) 2“重大”));结束Ii = find(fc>=1000) cf(Ii) = sprintf(“%。1 f kHz”、fc (ii) / 1000);结束disp (cf)
列1到7“20赫兹”“25赫兹”“32赫兹”“40赫兹”“50赫兹”“63赫兹”“79赫兹”列8到13“100赫兹”“130赫兹”“160赫兹”“200赫兹”“250赫兹”“320赫兹”列14到19日“400赫兹”“500赫兹”“630赫兹”“790赫兹”“1.0 kHz”“1.3 kHz”列20到25“1.6 kHz”“2.0 kHz”“2.5 kHz”“3.2 kHz”“4.0 kHz”“5.0 kHz”列26到30“6.3 kHz”“7.9 kHz”“10.0 kHz”“12.6 kHz”“15.8 kHz”专栏31“20.0 kHz”

通过滤波器组处理高斯白噪声。使用频谱分析仪查看滤波器输出的频谱。

sa =光谱分析仪(SampleRate=16e3,...PlotAsTwoSidedSpectrum = false,...FrequencyScale =“日志”);指数= 1:500 x = randn(256,1);y = octFilBank(x);sa (y);结束

octaveFilterBank在分析或修改其子带后,可以很好地重建信号。

读入音频文件并听其内容。

[audioIn,fs] = audioread(“randomoscthree - 24 - 96立体声- 13 - secs.aif”);声音(audioIn fs)

创建默认值octaveFilterBank.滤波器组的默认频率范围为22 ~ 22,050 Hz。超出这个范围的频率在重建信号中被衰减。

octFiltBank = octaveFilterBank(“SampleRate”fs);

将音频信号通过八度滤波器组。输出的数量取决于FrequencyRangeReferenceFrequencyOctaveRatioBase,带宽八度滤波器组的属性。输入的每个通道都独立地通过一个过滤器组,并在输出中作为单独的页面返回。

audioOut = octFiltBank(audioIn);[N,numFilters,numChannels] = size(audioOut)
N = 1265935
numFilters = 10
numChannels = 2

八度滤波器组引入了各种组延迟。为了补偿组延迟,从各个滤波器输出中去除开始延迟,并对信号的末端进行零垫,使它们都具有相同的大小。使用getGroupDelays来得到组延迟。听群时延补偿重构。

groupDelay = round(getgroupdelayed (octFiltBank));简单起见audioPadded = [audioOut;zero (max(groupDelay),numFilters,numChannels)];i = 1:numFilters audioOut(:,i,:) = audioPadded(groupDelay(i)+1:N+groupDelay(i),i,:);结束

为了重建原始信号,将每个通道的滤波器组的输出相加。使用挤压将重建信号中的第二通道从第三维度移动到第二维度。

reconstructedSignal = squeeze(sum(audioOut,2));声音(reconstructedSignal fs)

算法

octaveFilterBank实现为一个并行结构的八度滤波器。个别八度滤波器的设计如所述octaveFilter.默认情况下,倍频滤波器组中心频率按照ANSI S1.11-2004标准指定。属性可以修改筛选器的位置带宽FrequencyRangeReferenceFrequency,OctaveRatioBase属性。

参考文献

[1]奥法尼迪斯,索福克勒斯J。信号处理导论.恩格尔伍德悬崖,新泽西州:普伦蒂斯大厅,2010年。

美国声学学会。八度带和分数八度带模拟和数字滤波器的美国国家标准规范.ANSI s1.11 - 2004。梅尔维尔,纽约州:美国声学学会,2009年。

扩展功能

版本历史

在R2019a中引入