信号自适应噪声过滤器

文档序号:1617402 发布日期:2020-01-10 浏览:33次 >En<

阅读说明:本技术 信号自适应噪声过滤器 (Signal adaptive noise filter ) 是由 T·U·博格曼 于 2019-07-03 设计创作,主要内容包括:本公开涉及信号自适应噪声过滤器。提供了对传入信号的噪声过滤。噪声过滤方法包括通过将与传入信号的多个分量中的每个分量对应的能量分布为二维表示来对传入信号执行变换操作。噪声过滤方法还包括对多个分量执行过滤操作以确定实际对象并移除传入信号内的噪声。过滤操作利用基于时间、频率或方向的多个噪声检测矩阵中的至少一个噪声检测矩阵。(The present disclosure relates to signal adaptive noise filters. Noise filtering of the incoming signal is provided. The noise filtering method includes performing a transform operation on an incoming signal by distributing energy corresponding to each of a plurality of components of the incoming signal into a two-dimensional representation. The noise filtering method also includes performing a filtering operation on the plurality of components to determine an actual object and remove noise within the incoming signal. The filtering operation utilizes at least one of a plurality of noise detection matrices based on time, frequency, or direction.)

信号自适应噪声过滤器

技术领域

本公开一般地涉及信号自适应噪声过滤器。

背景技术

通常,音频噪声过滤器的现代实现方式通过指定的频带或通过根据仅具有噪声的样本音频学习噪声来进行过滤。不幸的是,利用这些现代实现方式,当每个频带同时包含信号和噪声时,潜在的信号质量与噪声一起也被移除。

发明内容

根据一个或多个实施例,提供了用于传入信号的噪声过滤方法。该噪声过滤方法包括由耦合到存储器的处理器通过将与传入信号的多个分量中的每个分量对应的能量分布为二维表示来对传入信号执行变换操作。该噪声过滤方法还包括由该处理器对多个分量执行过滤操作以确定实际对象并移除传入信号内的噪声,过滤操作利用基于时间、频率或方向的多个噪声检测矩阵中的至少一个噪声检测矩阵。

根据一个或多个实施例,该噪声过滤方法还可以实现为计算机程序产品和/或系统。

通过本公开的技术实现了附加的特征和优点。本文详细描述了本公开的其他实施例和方面。为了更好地理解具有优点和特征的本公开,参考说明书和附图。

附图说明

在权利要求中特别指出并清楚地声明要求保护的主题。通过以下结合附图的详细描述,本文实施例的前述和其他特征以及优点将变得明晰,其中:

图1描绘了根据一个或多个实施例的系统;

图2描绘了根据一个或多个实施例的系统的处理流程;

图3描绘了根据一个或多个实施例的系统所使用的噪声检测矩阵;和

图4描绘了根据一个或多个实施例的系统的示意流程。

具体实施方式

鉴于以上所述,本文公开的实施例可以包括从音频信号中移除傅里叶空间音频分量的系统、方法和/或计算机程序产品(这里是系统),傅里叶空间音频分量至少在频率和时间上与大量音频信号相关。此外,为了执行该移除,系统可以实现机器学习以分离信号和噪声系数集合。机器学习可以由系统通过根据基于相关的结果的监督学习(例如使用相同的输入)或通过根据无噪声信号的特征学习(例如使用先前的输入)来实现。

该系统的技术效果和益处包括改善音频信号,从而改善系统的存储容量,改善系统的音频信号处理能力,以及音频信号本身的质量。此外,技术效果和益处包括提供具有改进的计算设备的系统,其中这些改进的计算设备可以在离线过程中处理音频文件(包括有噪声的音频信号)以改善音频文件(即有噪声的音频信号)本身。此外,技术效果和益处包括提供具有改进的计算设备的系统,计算设备执行用于实时实现的优化解算器(例如记录设备过滤器,设备存储,以及回放设备可以合并并且利用系统特征来在信号被接收并回放时清洁信号,以提供更清晰的音频信号)。因此,这里描述的实施例有必要植根于系统的处理器和存储器中以执行主动操作以克服在音频噪声过滤器的现代实现领域中特别出现的问题(例如,这些问题包括与噪声一起移除潜在的信号质量,导致降级的音频信号)。

现在转到图1,一般地示出了根据实施例的系统100。系统100可以是电子计算机框架,其包括和/或采用任何数量和组合的计算设备和利用各种通信技术的网络,如本文所描述的。系统100可以容易地扩展、延伸和模块化,具有随不同服务改变或独立于其他特征来重新配置一些特征的能力。

系统100包括多个麦克风,例如第一麦克风111和第二麦克风112,以及计算系统120。多个麦克风中的每一个可以是用于将声波转换成电信号并用于将这些电信号提供到计算系统120的换能器。多个麦克风可以形成麦克风阵列,其中每个麦克风串联操作。多个麦克风包括但不限于全向麦克风、定向麦克风或者全向麦克风和定向麦克风的混合。

计算系统120包括一个或多个中央处理单元(CPU)(统称或一般地称为处理器121)。处理器121经由系统总线耦合到系统存储器122和各种其他组件。系统存储器122可以包括只读存储器(ROM)和随机存取存储器(RAM)。ROM耦合到系统总线并且可以包括基本输入/输出系统(BIOS),其控制系统100的某些基本功能。RAM是读写存储器,其耦合到系统总线以供处理器121使用。用于在系统100上执行的软件,诸如本文所描述的噪声过滤算法,可以存储在系统存储器122中。系统存储器122是处理器121可读的有形存储介质的示例,其中软件被存储为供处理器121执行以使得系统100进行操作的指令,诸如本文参考图2至图4所描述的。本文更详细地讨论计算机程序产品的示例和这种指令的执行。

计算系统120包括耦合到系统总线的输入/输出(I/O)适配器123。I/O适配器123可以是与系统存储器122和/或任何其他类似组件通信的小型计算机系统接口(SCSI)适配器。I/O适配器123可以将系统总线与网络互连,该网络可以是外部网络,使系统100能够与其他这样的系统通信。

现在转向图2,根据一个或多个实施例描绘了系统100的处理流程200。处理流程200是本文所描述的基于音频信号的接近度计算系统120的变换和过滤操作的示例。

例如,系统100使用方向数据实现噪声过滤算法(存储在系统存储器122上)以从由源191、192和193产生的音频信号中移除傅里叶空间音频分量,该傅里叶空间音频分量至少在频率和时间上与大量音频信号相关。在实践中,多个音乐家,诸如作为源191的鼓手、作为源192的歌手和作为源193的吉他手,可以在舞台上进行现场音乐会。每个音乐家提供相应的音频信号,同时放大器可以提供高音调噪声,并且舞台下的观众可以贡献人群噪声以及由第一麦克风111和第二麦克风112检测到的其他噪声。

接着,计算系统120接收到输入数据(例如,由第一麦克风111和第二麦克风112检测到的所有声音)。计算系统120根据与第一麦克风111和第二麦克风112中的每一个对应的每个音频信号的不同频率分布/贡献的相对响度来确定音频信号的方向。音频信号的方向被处理并以二维表示来表示,其中x轴是方向,y轴是频率,并且二维表示的每个值是能量。如处理流程200的框250所示,计算系统120通过在实值α(real alphas)上分布信号来执行变换操作。此外,计算系统120制定约束并以最小误差求解方程系统。

例如,变换操作可以根据以下代码计算:

/*由2通道FFT输入构造3D方向表示

输入:

8时间片×2通道×512入口FFT

36×5°方向幅度(从输入1导出)

目标:

方向一致性:最小化列/方向误差

频率一致性:优选简单行分解=>最大化零域数目/最小化非零域数目

时间一致性:优选系数分布随时间的缓慢变化(导出并最小化“变化域”)*/

param fft_in(0..7,0..1,0..511),real,default 0;

param alpha_in(0..35),real,default 0;

const weight:=1 0.95 0.9 0.85 0.8 0.75 0.7 0.65 0.6 0.55 0.5 0.450.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0;

const epsilon_t:=0.3;//随时间的显著系数变化

const epsilon_f:=1.4;//显著的系数值

const goal_weight_direction:=1;//方向一致性的相对权重

const goal_weight_frequency:=1;//频率一致性的相对权重

const goal_weight_time:=1;//时间一致性的相对权重

var coeff{f in 0..511,a in 0..35,t in 0..7},real,default 0;

var column_error{a in 0..35,t in 0..7},real,default 0;//跟踪方向一致性

var active_field{f in 0..511,a in 0..35,t in 0..7},real,default 0;//跟踪频率一致性

var change_field{f in 0..511,a in 0..35,t in 1..7},real,default 0;//跟踪时间一致性

/*行条件:所有系数的加权和=频率幅度*/

s.t.row_l{f in 0..511,t in 0..7}:sum{a in 0..35}coeff[f,a,t]*weight[a]=fft_in[t,0,f];

s.t.row_r{f in 0..511,t in 0..7}:sum{a in 0..35}coeff[f,a,t]*weight[35-a]=fft_in[t,1,f];

/*列条件:对于alpha_input中的每个方向:column sum+error_variable=alpha_input(direction)*/

s.t.col{t in 0..7,a in 0..35}:sum{f in 0..511}coeff[f,a,t]+column_error[a,t]=alpha_in[a];

/*频率一致性:每个非零系数一个点*/

s.t.coeff_population{f in 0..511,a in 0..35,t in 0..7}:

active_field[f,a,t]=(if abs(coeff[f,a,t])>epsilon_f then 1else 0);

/*时间一致性*/

s.t.changes{f in 0..511,a in 0..35,t in 1..7}:

change_field[f,a,t]=(if abs(coeff[f,a,t]-coeff[f,a,t-1])>epsilon_tthen 1else 0);

/*制定所有3个目标并对其相应加权*/

minimize error:goal_weight_direction*sum{a in 0..35,t in 0..7}abs(column_error[a,t])+goal_weight_frequency*sum{f in 0..511,a in 0..35,t in0..7}active_field[f,a,t]+goal_weight_time*sum{f in0..511,a in 0..35,t in1..7}change_field[f,a,t];

solve;

data;//从文件读取输入数据

end;

利用该表示,计算系统120基于音频信号的接近度执行过滤操作。在这方面,音频信号的接近度可以与信号的支持相关,其中如果在相同方向上发生更多声音,则特定信号更可能是来自实际对象的声音,实际对象例如源191、源192和源193之一。源191、源192和源193之一越可能是实际对象,计算系统120越有利地处理该特定信号。如框280所示,计算系统120执行包括过滤的过滤操作。过滤操作使用基于时间/频率/方向的噪声检测矩阵。也就是说,一旦在框250处产生二维表示,计算系统120就利用噪声检测矩阵来为每个频率分量确定支持(例如,以确定是否保持由时间/频率/方向中的相邻值支持的分量)。

转到图3,根据一个或多个实施例描绘了系统100所使用的示例噪声检测矩阵。这些噪声检测矩阵回答是否存在与来自源191、192和193的信号在相同频率范围、在相同方向以及接近相同时间的其他信号。噪声检测矩阵包括支持矩阵310、得分矩阵330和阈值矩阵350。支持矩阵310、得分矩阵330和阈值矩阵350中的每一个都包括在标题行和最左列中对频率“F”的值赋值;对角度“A”的值赋值;对时间“T”的值赋值。

支持矩阵310可以基于时间/频率/方向确定是否支持音频信号作为弱信号、强信号、弱噪声或强噪声。需注意,音频信号的支持也可以被定义为精确、清晰和/或不清晰。得分矩阵330可以就时间、频率和方向支持为音频信号评分。阈值矩阵350移除具有小于或等于阈值的分数的所有分量。例如,使用“-2”作为阈值,阈值矩阵350用于“1”标识要保持的音频信号并用“0”标识要丢弃的音频信号。在这方面,丢弃最后一列中的弱噪声和强噪声。

最后,计算系统120将过滤的音频信号折叠(collapse)成立体声信号(系统100从由所有音乐家产生的音频信号中移除高音噪声、人群噪声和其他噪声以产生清楚且清晰的立体声信号,包括每个音乐家的声音)。现在参考图2至图4描述系统100的操作。

图4描绘了根据一个或多个实施例的系统100的示意流程400。如示意流程400所示,至少两个通道(来自第一麦克风111和第二麦克风112)向计算系统120提供输入数据。计算系统120的处理器121访问存储在系统存储器122中的噪声过滤算法,以将来自时域410的输入数据(分别通过快速傅里叶变换(FFT)411和412)变换到频域420。另外,计算系统120的处理器121可以在时域到频域转换期间利用浮动窗口(floating window)以获得更高的精度。此外,为了提高质量或并行性:计算系统120的处理器121可以使用重叠FFT。极端情况每个样本一个完整FFT(例如,对计算工作与系数分辨率进行折中);可以对较低频率使用较大FFT窗口(例如,在整个频率范围内平衡相同的系数分辨率);可以独立使用音频通道以增加并行性,并且可以使用音频通道互相关以提高质量。

接着,计算系统120的处理器121可以执行聚类430。聚类430计算在时间片中哪些方向占优势,并且利用L/R比并找到具有主导方向(例如α)的最大值,例如(聚类)。

因此,计算系统120的处理器121从FFT 411和412接收频域中的输入数据以及来自聚类430的输入数据。该输入数据由处理器121变换440以构建二维表示。

接着,处理器121使用噪声过滤矩阵进行过滤。在这方面,处理器121计算输入数据的系数之间的相关矩阵,检测并移除表示噪声的那些系数。处理器121执行对剩余系数进行规格化的清除460,并通过逆FFT(iFFT)480从归格化系数中计算立体声输出499。

根据一个或多个实施例,本文的系统100可以利用机器学习来优化计算时间。例如,系统100可以使用监督机器学习,监督机器学习处理输入(即噪声音频输入加上相关矩阵和学习/监督的)以产生输出(即噪声过滤音频中的剩余系数)。此外,系统100可以利用脉冲编码调制而不是快速傅里叶变换。

根据一个或多个实施例,本文的系统100可以利用根据无噪声的音频样本的特征学习。当向受训练系统给出有噪声的音频信号时,受训练系统可以允许学习过的特征通过,从而滤除掉噪声。给到受训练系统的任何输入可以用这些学习过的特征来表示。并且,由于没有学习过对噪声建模的特征,因此无法在受训练系统的输出中表示噪声。

在任何可能的技术细节结合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本文使用的术语仅用于描述特定实施例的目的,并不旨在限制本发明。如本文所使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确说明。将进一步理解的是,当在本说明书中使用时,术语“包括”指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或多个其它特征、整数、步骤、操作、元素、组件和/或其组。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种发泡体材料、振动板以及扬声器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!