Signal adaptive noise filter

文档序号:1617402 发布日期:2020-01-10 浏览:34次 中文

阅读说明:本技术 信号自适应噪声过滤器 (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. A method of noise filtering for an incoming signal, comprising:

performing, by a processor coupled to a memory, a transformation 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; and

performing, by a processor, a filtering operation on the plurality of components to determine a real object and remove noise within the incoming signal, the filtering operation utilizing at least one noise detection matrix of a plurality of noise detection matrices based on time, frequency, or direction.

2. The noise filtering method according to claim 1, wherein the noise filtering method comprises:

receiving, by a coupled processor, input data from at least two microphones to produce an incoming signal comprising relative loudness; and

determining, by a processor, directions of a plurality of components of the incoming signal based on the relative loudness.

3. The noise filtering method of claim 1, wherein each value of the two-dimensional representation represents energy corresponding to each of a plurality of components of the incoming signal on an x-axis representing direction and a y-axis representing frequency.

4. The noise filtering method of claim 1, wherein the processor accesses a noise filtering algorithm to transform input data from the at least two microphones from a time domain to a frequency domain.

5. The noise filtering method of claim 1, wherein the noise detection matrix comprises a support matrix, a score matrix, and a threshold matrix.

6. The noise filtering method of claim 1, wherein a processor utilizes machine learning to optimize execution times of the transformation operations and filtering operations.

7. The noise filtering method of claim 1, wherein the processor utilizes feature learning from noise-free audio samples to remove noise during the filtering operation.

8. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions being executable by a computing device to cause the computing device to perform the steps of a method according to any of claims 1 to 7.

9. A system, comprising:

a processor; and

a memory having stored thereon program instructions for noise filtering an incoming signal, the program instructions being executable by the processor to cause the system to perform the steps of the method of any of claims 1-7.

10. An apparatus comprising means respectively configured to perform each step of the method according to any one of claims 1 to 7.

Technical Field

The present disclosure relates generally to signal adaptive noise filters.

Background

Typically, modern implementations of audio noise filters filter by a specified frequency band or by learning noise from sample audio that has only noise. Unfortunately, with these modern implementations, when each band contains both signal and noise, the potential signal quality is also removed along with the noise.

Disclosure of Invention

In accordance with one or more embodiments, a method of noise filtering for an incoming signal is provided. The noise filtering method includes performing, by a processor coupled to a memory, a transformation 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, by the processor, a filtering operation on the plurality of components to determine a real object and remove noise within the incoming signal, the filtering operation utilizing at least one noise detection matrix of a plurality of noise detection matrices based on time, frequency, or direction.

In accordance with one or more embodiments, the noise filtering method can also be implemented as a computer program product and/or system.

Additional features and advantages are realized through the techniques of the present disclosure. Other embodiments and aspects of the disclosure are described in detail herein. For a better understanding of the disclosure with advantages and features, refer to the description and to the drawings.

Drawings

The claimed subject matter is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features and advantages of the embodiments herein will be apparent from the following detailed description, taken in conjunction with the accompanying drawings, in which:

FIG. 1 depicts a system in accordance with one or more embodiments;

FIG. 2 depicts a process flow of a system in accordance with one or more embodiments;

FIG. 3 depicts a noise detection matrix used by a system in accordance with one or more embodiments; and

FIG. 4 depicts a schematic flow of a system in accordance with one or more embodiments.

Detailed Description

In view of the foregoing, embodiments disclosed herein may include systems, methods, and/or computer program products (here, systems) that remove fourier space audio components from an audio signal, the fourier space audio components relating to a multitude of audio signals at least in frequency and time. Further, to perform this removal, the system may implement machine learning to separate the signal and noise coefficient sets. Machine learning may be implemented by the system by supervised learning based on correlation-based results (e.g., using the same input) or by feature learning based on a noise-free signal (e.g., using a previous input).

Technical effects and benefits of the system include improving the audio signal, and thus the storage capacity of the system, improving the audio signal processing capabilities of the system, and the quality of the audio signal itself. Further, technical effects and benefits include providing a system with improved computing devices that can process audio files (including noisy audio signals) in an offline process to improve the audio files (i.e., noisy audio signals) themselves. Further, technical effects and benefits include providing a system with an improved computing device that executes an optimization solver for real-time implementation (e.g., recording device filters, device storage, and playback devices can incorporate and utilize system features to clean signals as they are received and played back to provide clearer audio signals). Thus, the embodiments described herein necessarily plant in the processor and memory of a system to perform proactive operations to overcome problems that arise particularly in the field of modern implementations of audio noise filters (e.g., these problems include removing potential signal quality along with noise, resulting in degraded audio signals).

Turning now to fig. 1, a system 100 according to an embodiment is generally shown. System 100 may be an electronic computer framework that includes and/or employs any number and combination of computing devices and networks utilizing various communication technologies, as described herein. The system 100 can be easily expanded, extended, and modular, with the ability to reconfigure some features with different service changes or independently of other features.

System 100 includes a plurality of microphones, such as a first microphone 111 and a second microphone 112, and a computing system 120. Each of the plurality of microphones may be a transducer for converting sound waves into electrical signals and for providing the electrical signals to the computing system 120. The plurality of microphones may form a microphone array, wherein each microphone operates in series. The plurality of microphones includes, but is not limited to, an omni-directional microphone, a directional microphone, or a mixture of omni-directional and directional microphones.

Computing system 120 includes one or more Central Processing Units (CPUs) (collectively or generically referred to as processor 121). Processor 121 is coupled to system memory 122 and various other components via a system bus. The system memory 122 may include Read Only Memory (ROM) and Random Access Memory (RAM). The ROM is coupled to the system bus and may include a basic input/output system (BIOS), which controls certain basic functions of the system 100. The RAM is read-write memory that is coupled to the system bus for use by the processor 121. Software for execution on the system 100, such as the noise filtering algorithms described herein, may be stored in the system memory 122. The system memory 122 is an example of a tangible storage medium readable by the processor 121 in which software is stored as instructions for execution by the processor 121 to cause the system 100 to operate, such as described herein with reference to fig. 2-4. Examples of computer program products and the execution of such instructions are discussed in more detail herein.

Computing system 120 includes an input/output (I/O) adapter 123 coupled to the system bus. I/O adapter 123 may be a Small Computer System Interface (SCSI) adapter that communicates with system memory 122 and/or any other similar components. I/O adapter 123 may interconnect the system bus with a network, which may be an external network, enabling system 100 to communicate with other such systems.

Turning now to fig. 2, a process flow 200 of system 100 is depicted in accordance with one or more embodiments. Process flow 200 is an example of the transformation and filtering operations of audio signal based proximity computing system 120 described herein.

For example, system 100 implements a noise filtering algorithm (stored on system memory 122) using the directional data to remove fourier space audio components from the audio signals produced by sources 191, 192, and 193 that are correlated, at least in frequency and time, with a large number of audio signals. In practice, a live concert may be conducted on a stage by a plurality of musicians, such as a drummer as source 191, a singer as source 192, and a guitar as source 193. Each musician provides a corresponding audio signal while the amplifier may provide high-pitched noise, and the audience under stage may contribute crowd noise as well as other noise detected by the first and second microphones 111 and 112.

Next, the computing system 120 receives input data (e.g., all sounds detected by the first and second microphones 111 and 112). The computing system 120 determines the direction of the audio signal according to the relative loudness of the different frequency distributions/contributions of each audio signal corresponding to each of the first and second microphones 111 and 112. The direction of the audio signal is processed and represented in a two-dimensional representation, where the x-axis is the direction, the y-axis is the frequency, and each value of the two-dimensional representation is the energy. As indicated at block 250 of process flow 200, computing system 120 performs a transformation operation by distributing the signal over a real value α (real alpha). Further, the computing system 120 formulates constraints and solves the system of equations with minimal error.

For example, the transformation operation may be calculated from the following code:

construction of a 3D Direction representation from 2-channel FFT inputs

Inputting:

8-time-slice × 2-channel × 512-entry FFT

36X 5 degree amplitude (derived from input 1)

The target is as follows:

direction consistency: minimizing column/direction errors

Frequency consistency: preferably simple row decomposition ═ maximize number of zero fields/minimize number of non-zero fields

Time consistency: it is preferred that the coefficient distribution changes slowly over time (deriving and minimizing the "change field"). The ` is based on the change in the coefficient distribution over time

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 is 0.3; // significant coefficient change over time

const epsilon _ f ═ 1.4; // significant coefficient value

const coarse _ weight _ direction:1; // relative weight of directional coherence

const good _ weight _ frequency:1; // relative weight of frequency identity

const coarse _ weight _ time:1; relative weight of/time consistency

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; // tracking direction consistency

var active _ field { f in 0..511, a in 0..35, t in 0..7}, real, default 0; // tracking frequency consistency

var change _ field { f in 0..511, a in 0..35, t in 1..7}, real, default 0; // tracking time consistency

V line condition-weighted sum of all coefficients-frequency amplitude ═

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];

/. The Condition column sum + error _ variable ═ alpha _ input (direction) based on the sum + error _ variable ═ alpha _ input-

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];

Frequency uniformity, one point for each non-zero coefficient

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);

/. time consistency ` time consistency

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);

/. all 3 targets are formulated and weighted accordingly

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; // reading input data from a file

end;

With this representation, the computing system 120 performs a filtering operation based on the proximity of the audio signal. In this regard, the proximity of the audio signals may be related to the support of the signals, where if more sounds occur in the same direction, then the particular signal is more likely to be sound from an actual object, such as one of source 191, source 192, and source 193. The more likely one of source 191, source 192, and source 193 is a real object, the more advantageous computing system 120 processes that particular signal. As shown in block 280, computing system 120 performs a filtering operation that includes filtering. The filtering operation uses a time/frequency/direction based noise detection matrix. That is, once the two-dimensional representation is generated at block 250, computing system 120 utilizes the noise detection matrix to determine support for each frequency component (e.g., to determine whether to retain components supported by adjacent values in time/frequency/direction).

Turning to fig. 3, an example noise detection matrix used by system 100 is depicted in accordance with one or more embodiments. These noise detection matrices answer whether there are other signals in the same frequency range, in the same direction, and near the same time as the signals from sources 191, 192, and 193. The noise detection matrix includes a support matrix 310, a score matrix 330, and a threshold matrix 350. Each of the support matrix 310, the score matrix 330, and the threshold matrix 350 includes an assignment of values for frequency "F" in the header row and the leftmost column; assigning a value for the angle "A"; a value is assigned to the time "T".

The support matrix 310 may determine whether to support the audio signal as a weak signal, a strong signal, weak noise, or strong noise based on time/frequency/direction. It is noted that the support of audio signals may also be defined as accurate, clear and/or unclear. The scoring matrix 330 may score the audio signals in terms of time, frequency, and direction support. The threshold matrix 350 removes all components having a score less than or equal to the threshold. For example, using "-2" as the threshold, the threshold matrix 350 is used for "1" to identify audio signals to be retained and "0" to identify audio signals to be discarded. In this regard, weak noise and strong noise in the last column are discarded.

Finally, the computing system 120 folds (collapse) the filtered audio signal into a stereo signal (the system 100 removes treble noise, crowd noise, and other noise from the audio signals produced by all musicians to produce a clear and clear stereo signal, including the sound of each musician). The operation of the system 100 will now be described with reference to fig. 2-4.

FIG. 4 depicts an illustrative flow 400 of system 100 in accordance with one or more embodiments. As shown in schematic flow 400, at least two channels (from first microphone 111 and second microphone 112) provide input data to computing system 120. The processor 121 of the computing system 120 accesses a noise filtering algorithm stored in the system memory 122 to transform the input data from the time domain 410 (via Fast Fourier Transforms (FFTs) 411 and 412, respectively) to the frequency domain 420. In addition, the processor 121 of the computing system 120 may utilize floating windows (floating windows) during the time-domain to frequency-domain conversion for higher accuracy. Furthermore, to improve quality or parallelism: the processor 121 of the computing system 120 may use overlapping FFTs. One full FFT per sample in the extreme case (e.g., trade off computational effort against coefficient resolution); a larger FFT window may be used for lower frequencies (e.g., balancing the same coefficient resolution over the entire frequency range); audio channels may be used independently to increase parallelism and audio channel cross-correlation may be used to improve quality.

Next, the processor 121 of the computing system 120 may execute the clustering 430. The clustering 430 computes which directions are dominant in the time slice and uses the L/R ratio and finds the maximum, e.g., (cluster), with the dominant direction (e.g., α).

Thus, the processor 121 of the computing system 120 receives input data in the frequency domain from the FFTs 411 and 412 as well as input data from the clusters 430. The input data is transformed 440 by the processor 121 to construct a two-dimensional representation.

The processor 121 then performs filtering using the noise filtering matrix. In this regard, the processor 121 calculates a correlation matrix between the coefficients of the input data, and detects and removes those coefficients that represent noise. Processor 121 performs a clean-up 460 that normalizes the residual coefficients and computes the stereo output 499 from the normalized coefficients by an inverse fft (ifft) 480.

According to one or more embodiments, the system 100 herein may utilize machine learning to optimize computation time. For example, the system 100 may use supervised machine learning that processes the input (i.e., the noise audio input plus the correlation matrix and learned/supervised) to produce an output (i.e., the residual coefficients in the noise filtered audio). Further, the system 100 may utilize pulse code modulation rather than fast fourier transform.

According to one or more embodiments, the system 100 herein may utilize feature learning from noise-free audio samples. When a noisy audio signal is presented to the trained system, the trained system may allow the learned features to pass through, thereby filtering out the noise. Any input to the trained system may be represented by these learned features. Furthermore, since the features that model noise have not been learned, noise cannot be represented in the output of the trained system.

The present invention may be a system, method and/or computer program product in any combination of possible technical details. The computer program product may include a computer-readable storage medium having computer-readable program instructions embodied therewith for causing a processor to implement various aspects of the present invention.

The computer readable storage medium may be a tangible device that can hold and store the instructions for use by the instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic memory device, a magnetic memory device, an optical memory device, an electromagnetic memory device, a semiconductor memory device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical coding device, such as punch cards or in-groove projection structures having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein is not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through a fiber optic cable), or electrical signals transmitted through electrical wires.

The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to a respective computing/processing device, or to an external computer or external storage device via a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. The network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing/processing device.

Computer program instructions for carrying out operations of the present invention may be assembly instructions, Instruction Set Architecture (ISA) instructions, machine related instructions, microcode, firmware instructions, state setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C + + or the like and procedural programming languages, such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, aspects of the present invention are implemented by personalizing an electronic circuit, such as a programmable logic circuit, a Field Programmable Gate Array (FPGA), or a Programmable Logic Array (PLA), with state information of computer-readable program instructions, which can execute the computer-readable program instructions.

Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.

These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable medium storing the instructions comprises an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and/or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

Having described embodiments of the present invention, the foregoing description is intended to be exemplary, not exhaustive, and not limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein were chosen in order to best explain the principles of the embodiments, the practical application, or technical improvements to the techniques in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

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

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!