子带分解。

例如语音信号是宽带信号,根据奈奎斯特采样定理,采样率为16kHz的语音信号的有效带宽是8KHz,不论是对于降噪,aec,vad,波束形成亦或是logfbank特征提取,我们都期望更精细的处理以提高准确性,因为有时噪声就是带限信号,而回声消除要能处理的时间比较长,就需要滤波器抽头数比较多,这样积累的数据长度和计算量就比较大,同理波束形成技术也是空时域滤波技术,也可以划分成子带进行更为精细的处理。
首先划分成多个子带,用到的必然是傅里叶变换,这里通常被称为STFT,也就是截取一段时长然后滑窗做FFT变换,由于语音在10ms~30ms内可以看成是稳态的,所以通常就是这段时长内做FFT,需要提醒的是不同算法在选择语音时长做STFT时并不一定一样,如果在做降噪时选择10ms,而在aec选择了4ms亦或是logfbank选择了25ms,当然上述的时间根据不同的实现也会有所区别。

【子带编码】子带编码技术,是将原始信号由时间域转变为频率域,然后将其分割为若干个子频带,并对其分别进行数字编码的技术。它是利用带通滤波器(BPF)组把原始信号分割为若干(例如m个)子频带(简称子带)。

【子带编码特点】子带编码技术具有突出的优点。首先,声音频谱各频率分量的幅度值各不相同,若对不同子带分配以合适的比例系数,可以更合理地分别控制各子带的量化电平数目和相应的重建误差,使码率更精确地与各子带的信号源特性相匹配。通常,在低频基音附近,采用较大的比特数目来表示取样值,而在高频段则可分配以较小的编码比特。其次,通过合理分配不同子带的比特数,可控制总的重建误差频谱形状,通过与声学心理模型相结合,可将噪声频谱按人耳主观噪声感知特性来形成。于是,利用人耳听觉掩蔽效应可节省大量比特数。 在采用子带编码时,利用了听觉的掩蔽效应进行处理。它对一些子带信号予以删除或大量减少比特数目,可明显压缩传输数据总量。比如,不存在信号频率分量的子带,被噪声掩蔽的信号频率的子带,被邻近强信号掩蔽的信号频率分量子带等,都可进行删除处理。另外,全系统的传输信息量与信号的频带范围、动态范围等均有关系,而动态范围则决定于量化比特数,若对信号引入合理的比特数,可使不同子带内按需要给以不同的比特数,也可压缩其信息量。

【存在问题】滤波器的具体实现不可能是理想的带通,其幅度影响不可避免地带有有限的滚降。因此在划分子带时,只能使子带间有交叠或者使子带间有一定的间隙。前者若按奈氏频率取样将会产生混叠失真,而后者使原有的部分频带经滤波而损失掉,重建的信号会有失真。针对这个问题的解决方法有正交镜像滤波法和时域混叠消除法。

【关键概念】比如对麦克风阵列信号的采样频率是Fs=64000,傅立叶变换点数是1024,那么对每个子间隔进行J点的离散傅立叶变换,就得到了宽带内J个不相重叠的子带。所以我们得到了宽带内1024个不重叠的子带。每个窄带的频带宽度是64000/1024=62.5Hz;因为语音信号频率主要集中在300~3000Hz之间,而且某点n所表示的频率为:Fn=(n-1)*Fs/N,所以我们选取的测试数据主要集中在5~49个频点之间,超过或者小于这个范围测试的话一般会出现测试偏差,或者出现旁瓣,影响主瓣峰值位置的判断。

参考

https://blog.csdn.net/shichaog/article/details/77379998

https://blog.csdn.net/liusandian/article/details/51966740

Subband Decomposition的更多相关文章

  1. Matrix QR Decomposition using OpenCV

    Matrix QR decomposition is very useful in least square fitting model. But there is no function avail ...

  2. A.Kaw矩阵代数初步学习笔记 7. LU Decomposition

    “矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...

  3. URAL 1320 Graph Decomposition(并查集)

    1320. Graph Decomposition Time limit: 0.5 secondMemory limit: 64 MB There is a simple graph with an ...

  4. 奇异值分解(We Recommend a Singular Value Decomposition)

    奇异值分解(We Recommend a Singular Value Decomposition) 原文作者:David Austin原文链接: http://www.ams.org/samplin ...

  5. We Recommend a Singular Value Decomposition

    We Recommend a Singular Value Decomposition Introduction The topic of this article, the singular val ...

  6. 【转】奇异值分解(We Recommend a Singular Value Decomposition)

    文章转自:奇异值分解(We Recommend a Singular Value Decomposition) 文章写的浅显易懂,很有意思.但是没找到转载方式,所以复制了过来.一个是备忘,一个是分享给 ...

  7. 矩阵分解(rank decomposition)文章代码汇总

    矩阵分解(rank decomposition)文章代码汇总 矩阵分解(rank decomposition) 本文收集了现有矩阵分解的几乎所有算法和应用,原文链接:https://sites.goo ...

  8. 关于SVD(Singular Value Decomposition)的那些事儿

    SVD简介 SVD不仅是一个数学问题,在机器学习领域,有相当多的应用与奇异值都可以扯上关系,比如做feature reduction的PCA,做数据压缩(以图像压缩为代表)的算法,还有做搜索引擎语义层 ...

  9. [转]奇异值分解(We Recommend a Singular Value Decomposition)

    原文作者:David Austin原文链接: http://www.ams.org/samplings/feature-column/fcarc-svd译者:richardsun(孙振龙) 在这篇文章 ...

随机推荐

  1. windows版mysql安装

    https://blog.csdn.net/ycxzuoxin/article/details/80908447

  2. Golang 调用 C/C++,例子式教程

    大部分人学习或者使用某样东西,喜欢在直观上看到动手后的结果,才会有继续下去的兴趣. 前言: Golang 调用 C/C++ 的教程网上很多,就我目前所看到的,个人见解就是比较乱,坑也很多.希望本文能在 ...

  3. 「雅礼集训 2018 Day5」Convex 凸包、莫队

    LOJ 看到离线区间操作仍然考虑莫队,然后可以发现:我们对于原来的凸包集合按照极角序维护一个链表,那么删除一个位置可以\(O(1)\),撤回删除操作也可以\(O(1)\)(因为原来的链表结构中当前节点 ...

  4. opencv常用数据结构

    2019/10/29 1.Mat 成员函数:cols.rows.channels.ptr获取任意行的首地址.at处理像素 2.InputArray/OutArray相当于Mat 2019/11/4 1 ...

  5. HTML转换特效相关插件

    Arctext.js Arctext.js 是基于 Lettering.js 的文字旋转插件,根据设置的旋转半径准确计算每个字母的旋转弧度并均匀分布. 虽然 CSS3 也能够实现字符旋转效果,但是要让 ...

  6. 异常详细信息: System.Security.SecurityException: 未找到源,不过,未能搜索部分或所有事件日志。 若要创建源,您需要用于读取所有事件日志的权限以确保新的源名称是唯一的。 不可访问的日志: Security。

    “/”应用程序中的服务器错误. 安全性异常 说明: 应用程序尝试执行安全策略不允许的操作.要授予此应用程序所需的权限,请与系统管理员联系,或在配置文件中更改该应用程序的信任级别. 异常详细信息: Sy ...

  7. Socket心跳机制-JS+PHP实现

    本文是我在实际工作中用到的Socket通信,关于心跳机制的维护方式,特意总结了一下,希望对朋友们有所帮助. Socket应用:首先Socket 封装了tcp协议的,通过长连接的方式来与服务器通信,是由 ...

  8. Java自学-接口与继承 重写

    Java 重写方法 子类可以继承父类的对象方法 在继承后,重复提供该方法,就叫做方法的重写 又叫覆盖 Override 步骤 1 : 父类Item 父类Item有一个方法,叫做effect packa ...

  9. [ROR] 如何在mixin模块中定义类方法(Howto define class methods in a mixin module)

    方法一: 修改模块的include方法 module Bbq def self.included(base) base.send :include, InstanceMethods base.exte ...

  10. TCP协议的常见面试题

    1. 为什么连接的时候是三次握手,关闭的时候却是四次握手? 因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文.其中ACK报文是用来应答的,SYN报文是用来同 ...