Methods and apparatus for acoustic noise mitigation of electronic noise using adaptive sensing and control
Patent Information
- Authority / Receiving Office
- TW · TW
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2021-09-17
- Publication Date
- 2022-07-01
Smart Images

Figure TWG2TA000864830_001 
Figure TWG2TA000864830_002 
Figure TWG2TA000864830_003
Abstract
Description
[Technical Field]
[0001] This disclosure relates generally to noise reduction, and more specifically to a method and apparatus for noise reduction using adaptive sensing and control of electronic noise. [Previous Technology]
[0002] Computing devices facilitate a variety of user activities, such as communication via a network (e.g., the Internet), searching for information on the network, preparing and / or viewing documents, and other examples. In some cases, computing devices may generate audible noise due to vibrations and / or other physical movements of the various electronic components within the device. [Summary of the Invention]
[0003] and
Implementation Method
[0012] The drawings are not drawn to scale. Typically, the same element symbols will be used throughout the drawings and the accompanying description to refer to the same or similar parts. As used herein, unless otherwise indicated, connection references (e.g., attachment, coupling, connection, and link) may include intermediate components between elements referenced by the connection reference and / or relative movement between those elements. Therefore, a connection reference does not necessarily imply that two elements are directly connected and / or have a fixed relationship with each other. As used herein, the definition of any part "in contact" with another part means that there is no intermediate component between the two parts.
[0013] Unless otherwise stated, the use of descriptive terms such as "first," "second," and "third" herein does not imply or otherwise indicate any priority, physical order, arrangement in a list, and / or any sorting, but is merely as labels and / or arbitrary names to distinguish elements in order to facilitate understanding of the disclosed examples. In some examples, the descriptive term "first" may be used to refer to an element in the detailed description, while the same element may be referred to in the claim using different descriptive terms such as "second" or "third." In such cases, it should be understood that such descriptive terms are merely used to identify elements that may otherwise share the same name.
[0014] In some examples, microprocessors and other logic circuits can employ rapid and frequent state transitions to provide greater battery life and computing performance. In these examples, some electronic components, such as decoupling capacitors in such circuits (e.g., multilayer ceramic capacitors), can receive electrical signals that produce audible noise.
[0015] Some of the examples disclosed herein may relate to computing devices that automatically adjust system configuration parameters (e.g., state transition frequencies, etc.) to control acoustic system noise emitted from the electronic components of the computing device. For example, the computing device may be configured to operate with a higher system performance configuration (associated with higher system noise) in an environment with a relatively high background noise level. Similarly, for example, in an environment with a relatively low background noise level, the computing device may operate with a lower system performance level (associated with lower system noise from the electronic components).
[0016] Figure 1 is a chart 100 illustrating the background noise levels detected at different times of day. Chart 100 includes a vertical axis 105, which represents the sound pressure level detected by the device. The horizontal axis 110 represents different times of day. In the example shown in Figure 1, four devices are represented, D1 111, D2 112, D3 113, and D4 114, at different times of day, T1 121, T2 122, T3 123, T4 124, T5 125, T6 126, and T7 127.
[0017] For example, these devices can correspond to personal computing devices (or any other type of computing device) that operate throughout the day in different environments (e.g., home, coffee shop, office, etc.). In this example, the sound pressure level represented by the vertical axis 105 corresponds to the average background noise level measured when these devices are operated at the corresponding time of day (e.g., using a microphone).
[0018] Therefore, the exemplary system here automatically adjusts the system configuration settings associated with system noise (e.g., state transition frequency, voltage regulator slew rate, dynamic periodicity change (DPA) parameters, etc.) based on the current operating environment of the system. For example, compared to when device D1 111 operates in environment / time of day T2 122, when the device detects that it is operating in environment (or time of day) T3 123, device D1 111 can operate at a higher performance level. In this example, the relatively higher system noise associated with operating at a higher performance level can still be lower than the expected background noise level at T3 123. For example, the higher background noise level at T3 123 can be "masked" to the higher system noise expected when operating at a higher performance level. In this example, a lower system noise level configuration can be better suited to operating at the lower expected background noise level associated with T2 122.
[0019] Figure 2 is an example chart illustration 200 of background and system noise levels in several different frequency bands. The vertical axis 205 of chart 200 represents the sound level. The horizontal axis 210 of chart 200 represents the frequency band. In the example shown in Figure 2, frequency components are represented in octave band intervals. The expected system noise at those various frequency intervals is represented by vertical bars, while the frequency components of background noise are represented by lines 212. In the example chart of Figure 2, the system noise at frequency bands 1000Hz (bar 220) and 1250Hz (bar 225) is higher than the corresponding background noise level at these frequency bands (see line 212), even though the background noise level at other frequency bands (e.g., 400Hz and 500Hz) is higher than the corresponding system noise level at those frequency bands.
[0020] Therefore, in some cases, even if the overall system noise level is lower than the overall background noise level, system noise can still be heard in one or more frequency bands.
[0021] For this reason, some examples here involve adjusting system configuration parameters based on background noise levels at one or more frequency bands, instead of adjusting system configuration parameters based on the entire background noise level.
[0022] Figure 3 is a schematic diagram of an exemplary computing system 300 constructed in accordance with the teachings of this disclosure, which reduces noise in the electronic components of the system.
[0023] In the example shown in Figure 3, the computing system 300 is implemented in a computing device, such as a server computer, desktop computer, laptop computer, mobile device, Internet of Things (IoT) computing device, and other possibilities. However, in other examples, one or more components of the computing system 300 may be implemented using multiple computing devices that communicate with each other.
[0024] In the example shown in Figure 3, the computing system 300 includes a sound sensor 302, a position sensor 304, one or more electronic components 306, a network interface 308, and a noise reduction device 310.
[0025] The sound sensor 302 includes any sensor device (e.g., a microphone, etc.) configured to detect sound (e.g., changes in air pressure of sound waves) in the environment of the computing system 300 and to convert the detected sound into an electrical signal. Non-exhaustive examples of sound sensor devices include microphones, dynamic microphones (e.g., coils suspended in a magnetic field), capacitive microphones (e.g., vibrating diaphragms), contact microphones (e.g., piezoelectric sensors), and the like. In one example, the sound sensor 302 includes a microphone (e.g., a built-in system microphone of a computer) physically coupled to the computing system 300. In another example, the sound sensor 302 includes an external device electrically coupled to the computing system 300 via a wired or wireless connection.
[0026] The location sensor 304 includes any device configured to provide a representation of the geographic location of the computing system 300, such as a satellite navigation sensor (e.g., a Global Positioning System (GPS) sensor) or any other type of location sensor.
[0027] Electronic component 306 may include any means configured to transmit, receive and / or otherwise manipulate electrical signals within computing system 300.
[0028] In some implementations, electronic component 306 includes one or more voltage regulators, capacitors (e.g., power output decoupling capacitors, multilayer ceramic capacitors (MLCCs), etc.), and / or any other type of analog or digital circuitry. In one example, electronic component 306 includes circuitry mounted on a system-on-a-chip (SOC) substrate and / or another type of circuit board. For example, electronic component 306 may include interconnect circuitry configured to perform the functions of a microprocessor device.
[0029] In some examples, electronic component 306 generates audible noise during operation that is associated with electrical signals received by the electronic component. In one example, electronic component 306 includes a voltage regulator that oscillates at a specific frequency and / or amplitude based on a voltage signal received by the voltage regulator. In another example, electronic component 306 includes a power output decoupling capacitor that oscillates based on voltage changes at the input terminals of the capacitor.
[0030] The network interface 310 includes any wired and / or wireless communication devices configured to communicate data between the computing system 300 and a network (e.g., the Internet). For this purpose, an example interface 310 includes one or more wired communication devices (e.g., Ethernet communication interfaces, etc.) and / or wireless communication devices (e.g., antennas, WiFi interfaces, etc.) configured to establish a network connection with an external computing device and / or scan the surrounding environment for the presence of an external computing device (e.g., access point, etc.).
[0031] The noise reduction device 310 includes one or more hardware and / or software components configured to obtain information from any one of the sound sensor 302, position sensor 304, and / or network interface 308. Furthermore, the noise reduction device 310 is configured to adjust and / or regulate the signal flowing through the electronic component 306. In some examples, the noise reduction device 310 may use data from the sensors 302, 304, and / or interface 308 as the basis for controlling the characteristics of the signal flowing through the electronic component 306 to adjust the system noise generated by the component 306.
[0032] As shown in the example in Figure 3, the noise reduction device 310 includes a background noise analyzer 312, a system noise analyzer 314, a system noise controller 316, a noise mask verifier 318, a background noise profile store 322, and a system noise profile store 324.
[0033] The example background noise analyzer 312 shown in Figure 3 obtains sensor data from the sound sensor 302 and analyzes the sensor data to determine or evaluate the background noise level of the environment of the computing system 300.
[0034] In some examples, the background noise analyzer 312 causes the sound sensor 302 to collect one or more sound samples (e.g., audio recordings from a microphone). In some examples, the sound samples are configured to have a specific duration (e.g., one second, two seconds, three seconds, etc.). For example, a specific duration may correspond to the same duration used when collecting system noise measurements in another environment (e.g., in an anechoic chamber, etc.) by a system noise analyzer. Alternatively, in other cases, the duration of each sound sample may vary.
[0035] In some examples, the background noise analyzer 312 causes the sound sensor 302 to collect sound samples periodically and / or irregularly. For example, the background noise analyzer 312 may collect sound samples periodically (e.g., every 10 minutes, every 15 minutes, etc.) and / or irregularly (e.g., in response to a triggering event) using the sound sensor 302. For example, sound sampling may be performed at a relatively low sampling rate to reduce associated power consumption (e.g., once every ten minutes). In some examples, the background noise analyzer 312 is configured to trigger the collection of sound samples by the sensor 302 in response to system events (e.g., system startup, operating system initialization, application startup, etc.). In some examples, the background noise analyzer 312 is configured to trigger the collection of sound samples by the sensor 302 in response to a representation of the environment of the receiving computing system 300.
[0036] For example, the background noise analyzer 312 can detect the presence of a specific network device based on data from the network interface 308. The specific network device can be associated with a specific environment (e.g., a wireless access point in a restaurant). In this example, the analyzer 312 associates the detection of the specific network device with the presence of the computing system 300 in the specific environment, and accordingly triggers the collection of sound sampling data by the sensor 302 (e.g., in response to moving from a previous environment to a specific environment, or in response to the first detection of the specific network device).
[0037] In some examples, the background noise analyzer 312 detects the environment of the computing system 300 alternatively or additionally based on data from the location sensor 304 (e.g., by associating a given environment with a given geographic location represented by the location sensor 304).
[0038] In some examples, the background noise analyzer 312 is configured to evaluate the background noise level in a particular environment based on one or more sound samples collected using the sensor 302. In one particular implementation, the background noise analyzer 312 calculates level statistics (e.g., L90, etc.) to evaluate the background noise level of a particular environment using multiple sound samples collected at different times. Referring, for example, to Figure 1, based on the fact that the noise level exceeds 50 dBA for 90% of the duration of the sound samples collected by the device at time T3, the background noise level of the device operating at time T3 on that day is evaluated to be 50 dBA. Other exemplary statistical measurements of the background noise level based on sensor data from the sound sensor 302 are also possible. For example, the evaluated background noise level calculated by the analyzer 312 for a particular environment can be updated using time-weighted and / or statistical filters (e.g., extracting metrics that change slowly over time).
[0039] In some examples, the background noise analyzer 312 is configured to determine the background noise levels of a plurality of frequency bands based on sensor data from the sound sensor 302. Referring, for example, to Figure 2, the analyzer 312 may determine the sound pressure levels of various third-octave bands (e.g., 800Hz, 1000Hz, 1250Hz, etc.) based on a single sound sample and / or multiple sound samples collected at different times in a particular environment, consistent with the above discussion. Additionally or alternatively, in some implementations, the background noise analyzer 312 uses statistical calculations (e.g., L90, time-weighted, statistical filtering, etc.) to update and / or evaluate the background noise levels of each of the multiple frequency bands in a particular environment, consistent with the above discussion.
[0040] In some applications, collecting sound samples for short durations (e.g., 2 seconds) and converting the collected sound samples to a spectral sound level component can help protect the privacy of user information in the collected sound samples.
[0041] In some examples, the analyzer 312 is configured to store acoustic data associated with background noise measurements collected for a plurality of environments in a background noise profile store 322. In some examples, this acoustic data may be obtained from a crowd and / or retrieved from a storage location in the cloud. This acquisition from a crowd and / or retrieval from cloud storage allows for a larger sample size of background noise measurements and / or the ability to understand baseline noise measurements when entering a new environment. Referring, for example, to Figure 1, the acoustic data stored in the background noise profile store 322 may include full background noise level measurements and / or calculations, similar to the data for each environment associated with time of day T1, T2, T3, T4, T5, T6, T7 as shown in Figure 1. Alternatively or additionally, referring, for example, to Figure 2, the stored acoustic data may include evaluated background noise levels for a plurality of frequency bands (e.g., 1 / 3 octave bands shown in Figure 2) calculated by the analyzer 312.
[0042] In some examples, the background noise analyzer 312 is configured to select a background noise profile for the current environment of the computing system 300 from several background noise profiles (e.g., stored in the storage library 322). For example, after initially compiling the background noise level characteristics of several frequently visited environments, when the computing system 300 returns to that particular environment, the noise reduction unit 310 retrieves a specific background noise profile for that particular environment at a later time, instead of or in addition to obtaining a new sound sample of that particular environment from the sound sensor 302.
[0043] In the examples disclosed herein, the system noise analyzer 314 selects a system noise profile for operating one or more electronic components 306 based on background noise (and / or a background noise profile selected by the analyzer 312) represented by sensor data from the sound sensor 302. In some implementations, the system noise analyzer 314 selects a system noise profile from a plurality of system noise profiles stored in a system noise profile store 324. In some examples, the system noise profile can be retrieved from a remote storage location. Such a remote storage location may be provided and / or hosted by an original equipment manufacturer (OEM) and / or other component manufacturers.
[0044] In the first implementation, each system noise profile is generated based on acoustic data previously collected from the sensor 302, while the computing system 300 operates in a relatively quiet test environment (e.g., an anechoic chamber, etc.) using a specific system configuration.
[0045] For example, the voltage regulator of component 306 can operate using a first voltage slew rate associated with the first system noise profile, and the noise measured by sensor 306 can be analyzed in a manner similar to the background noise sampling analysis described above (e.g., the system noise level can be evaluated for multiple frequency bands). Then, the voltage regulator can operate using a second voltage slew rate to generate acoustic data for the second system noise profile, and so on.
[0046] As another example, the system noise analyzer 314 can associate each system noise profile with an individual combination of dynamically changing periodicity (DPA) parameters used to modulate the electrical signal flowing through component 306. Similar to the example above, acoustic data for each combination of DPA parameters can be obtained from the sound sensor 302 to determine the individual system noise profile.
[0047] In the second implementation, the acoustic data represented in each system noise profile is generated based on various system configuration parameter input values (e.g., DPA parameters, voltage regulator input voltage slope, etc.) inferred from the noise output by the system using a simulated system model and / or by training a neural network algorithm. In this way, the use of a neural network algorithm allows the system to be used with potentially more data collected from the manufacturer to identify noise.
[0048] The exemplary system noise controller 316 in Figure 3 operates the electronic component 306 according to a specific system configuration associated with a system noise profile selected by the system noise analyzer 314. For example, the system noise controller 316 can control DPA parameters, voltage slew rate, and / or any other signal characteristics used to operate the electronic component 306 based on the signal characteristics associated with the selected system noise profile. In some examples, the exemplary system noise controller 316 operates the electronic component 306 according to the selected system noise profile by updating the Basic Input / Output System (BIOS) instructions used to operate the computing system 300 during startup or system initialization events.
[0049] The example noise masking verifier 318 in Figure 3 is configured to obtain verification sensor data (e.g., one or more additional sound samples) from the sound sensor 302 after the system noise controller 316 adjusts the system configuration of the electronic component 306 according to the selected system noise profile represented by the system noise analyzer 314.
[0050] In one example, the noise masking verifier 318 obtains one or more sound samples collected by the sensor 306 after adjusting the system configuration parameters (e.g., DPA setting, voltage slope, etc.) for operating the component 306. The noise masking verifier 318 may also obtain measurements of one or more electrical signals associated with the system configuration of the controller 316 operating the electronic component 306. For example, the electrical signals may correspond to voltage rail signals flowing through the electronic component 306 based on the system configuration of the selected system noise profile.
[0051] In this example, the noise masking verifier 318 then compares the characteristics of the electrical signal with the corresponding acoustic signal characteristics represented by the verification sensor data. In one implementation, the noise masking verifier 318 determines the consistency between the electrical signal and the measured noise. Furthermore, in some implementations, the noise masking verifier 318 determines the consistency of the acoustic signal with each of the plurality of frequency bands. In some cases, if the determined consistency exceeds 90% in any particular frequency band, the noise masking verifier 318 determines that the noise measured in that particular frequency band is due to system noise from the electronics 306. The noise reduction unit 310 then selects different system noise profiles (and associated system configuration parameters) to operate the electronics 306. In some examples, using and / or including the noise masking verifier 318 in the noise reduction unit 310 is optional. In this way, the verification operation performed by the noise reduction unit 310 can also be omitted.
[0052] The exemplary background noise profile storage 322 shown in Figure 3 is implemented using any memory, storage device, and / or storage disk used for storing data, such as, for example, flash memory, magnetic media, optical media, solid-state memory, hard disk, USB flash drive, etc. Furthermore, the data stored in the exemplary background noise profile storage 322 can be in any data format, such as, for example, binary data, comma-separated data, tab-delimited data, Structured Query Language (SQL) structure, etc. Although the background noise profile storage 322 is illustrated as a single device in the illustrated example, the exemplary background noise profile storage 322 and / or any other data storage device described herein can be implemented using any amount and / or type of memory located locally and / or remotely (e.g., in a cloud storage location) of the computing system. In the example shown in Figure 3, the exemplary background noise profile storage 322 stores a background noise profile.
[0053] The system background noise profile storage 324 of the example shown in Figure 3 is implemented by any memory, storage device, and / or storage disk used for storing data, such as, for example, flash memory, magnetic media, optical media, solid-state memory, hard disk, USB flash drive, etc. Furthermore, the data stored in the example system noise profile storage 324 can be in any data format, such as, for example, binary data, comma-separated data, tab-separated data, Structured Query Language (SQL) structure, etc. Although the system noise profile storage 324 is illustrated as a single device in the example shown, the system background noise profile storage 324 and / or any other data storage device described herein can be implemented by any number and / or type of memory. In the example shown in Figure 3, the example system noise profile storage 324 stores a system noise profile.
[0054] Although an exemplary implementation of the noise reducer 310 is illustrated in Figure 3, the components, processes, and / or devices illustrated in Figure 3 may be combined, divided, rearranged, omitted, eliminated, and / or implemented in any other manner. Furthermore, the exemplary background noise analyzer 312, exemplary system noise analyzer 314, exemplary system noise controller 316, exemplary noise masking verifier 318, and / or, more generally, the exemplary noise reducer 310 may be implemented by hardware, software, firmware, and / or any combination of hardware, software, and / or firmware. Therefore, for example, the exemplary background noise analyzer 312, the exemplary system noise analyzer 314, the exemplary system noise controller 316, the exemplary noise masking verifier 318 and / or, more generally, the exemplary noise reducer 310 can be implemented by one or more analog or digital circuits, logic circuits, programmable processors, programmable controllers, graphics processing units (GPUs), digital signal processors (DSPs), application-specific integrated circuits (ASICs), programmable logic devices (PLDs) and / or field-programmable logic devices (FPLDs). When reading any device or system claim of this patent to cover purely software and / or firmware implementations, at least one example, background noise analyzer 312, example system noise analyzer 314, example system noise controller 316, and example noise masking verifier 318, are hereby expressly defined as including non-transitory computer-readable storage devices or disks, such as memory, digital multifunction discs (DVDs), optical discs (CDs), Blu-ray discs, etc., including software and / or firmware. Furthermore, the example noise reduction device 310 of Figure 3 may include one or more elements, processes, and / or devices, in addition to or replacing those illustrated in Figure 4, and / or may include more than one of any or all of the illustrated elements, processes, and devices. For users of such a location, the phrase "communication" includes variations thereof, including direct communication and / or indirect communication through one or more intermediate components, and does not require direct physical (e.g., wired) communication and / or continuous communication, but further includes selective communication at regular intervals, scheduled intervals, unscheduled intervals, and / or one-off events.
[0055] Figures 4, 5, and / or 6 show flowcharts representing exemplary hardware logic, machine-readable instructions, a hardware-implemented state machine, and / or any combination thereof for implementing the noise reducer 310 of Figure 3. The machine-readable instructions may be one or more executable programs or parts thereof, for execution by a computer processor and / or processor circuitry, such as the processor 712 shown in the exemplary processor platform 700 discussed below in conjunction with Figure 7. The program may be embodied in software stored on non-transitory computer-readable storage media, such as CD-ROMs, floppy disks, hard disks, DVDs, Blu-ray discs, or memory associated with the processor 712, but the entire program and / or parts thereof may alternatively be executed by a device other than the processor 712 and / or embodied in firmware or dedicated hardware. Furthermore, although the exemplary program is described with reference to the flowcharts shown in Figures 4, 5, and / or 6, many other methods for implementing the exemplary noise reducer 310 may also be used alternatively. For example, the execution order of the blocks can be changed, and / or some of the described blocks can be altered, eliminated, or combined. Additionally or alternatively, any or all blocks can be implemented by one or more hardware circuits (e.g., discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, comparators, operational amplifiers, logic circuits, etc.) configured to perform the corresponding operations without executing software or firmware. Processor circuitry can be distributed across different network locations and / or local to one or more devices (e.g., a multi-core processor in a single machine, multiple processors distributed across a server rack, etc.).
[0056] The machine-readable instructions described herein can be stored in one or more formats such as compressed format, encrypted format, fragmented format, compiled format, executable format, and packaged format. The machine-readable instructions described herein can be stored as data or data structures (e.g., portions of instructions, codes, code representations, etc.) and can be used to create, manufacture, and / or generate machine-executable instructions. For example, machine-readable instructions can be segmented and stored on one or more storage devices and / or computing devices (e.g., servers) located in the same or different locations within a network or network set (e.g., in the cloud, on edge devices, etc.). Machine-readable instructions may require one or more of the following to be installed, modified, adapted, updated, combined, supplemented, assembled, decrypted, decompressed, unpacked, distributed, redistributed, compiled, etc., so that they can be directly read, interpreted, and / or executed by computing devices and / or other machines. For example, machine-readable instructions can be stored in multiple parts, which are individually compressed, encrypted, and stored on separate computing devices. These parts are then decrypted, decompressed, and combined to form a set of executable instructions that implement one or more functions and can together form a program such as that described herein.
[0057] In other examples, machine-readable instructions may be stored in a state that can be read by processor circuitry, but require the addition of libraries (e.g., dynamic link libraries (DLLs)), software development kits (SDKs), application programming interfaces (APIs), etc., to execute the instructions on a specific computing device or other device. In another example, the machine-readable instructions may need to be configured (e.g., storing settings, inputting data, recording network addresses, etc.) before they can be fully or partially executed. Therefore, for users in such locations, machine-readable media may include machine-readable instructions and / or programs, regardless of the specific format or state of the machine-readable instructions and / or programs when stored or otherwise stationary or transported.
[0058] The machine-readable instructions described herein can be represented by any past, present, or future instruction language, scripting language, programming language, etc. For example, machine-readable instructions can be represented using any of the following languages: C, C++, Java, C#, Perl, Python, JavaScript, HTML, Structured Query Language (SQL), Swift, etc.
[0059] As described above, the exemplary processing of Figures 4, 5, and / or 6 can be implemented using executable instructions (e.g., computer- and / or machine-readable instructions) stored on non-transitory computer- and / or machine-readable media, such as hard disk drives, flash memory, read-only memory, optical discs, digital versatile discs, caches, random access memory, and / or any other storage devices or storage disks, wherein information is stored for any duration (e.g., extended-time, permanent, transient, temporary buffered, and / or cached information). For users of such premises, the term "non-transitory computer-readable media" is explicitly defined to include any type of computer-readable storage device and / or storage disk, excluding transmission signals and transmission media.
[0060] “Including” and “comprising” (and all forms and tenses thereof) are used herein as open-ended terms. Therefore, whenever a claim takes any form of “including” or “comprising” (e.g., including, including, having, etc.) as a preamble or in any kind of claim statement, it should be understood that additional elements, terms, etc., may exist without falling outside the scope of the corresponding claim or statement. When the phrase “at least” is used as a transitional term in, for example, the preamble of a claim, it is open-ended in the same way as the terms “including” and “comprising” are open-ended. When the term “and / or” is used in forms such as A, B, and / or C, it refers to any combination or subset of A, B, C, such as (1) A alone, (2) B alone, (3) C alone, (4) A and B, (5) A and C, (6) B and C, and (7) A and B and C. As used herein in the context of describing structures, components, items, objects and / or things, the phrase "at least one of A and B" means an implementation including any of the following: (1) at least one A, (2) at least one B, and (3) at least one A and at least one B. Similarly, as used herein in the context of describing structures, components, items, objects and / or things, the phrase "at least one of A or B" means an implementation including any of the following: (1) at least one A, (2) at least one B, and (3) at least one A and at least one B. As used herein in the context of describing the performance or execution of processes, instructions, activities and / or steps, the phrase "at least one of A and B" means an implementation including any of the following: (1) at least one A, (2) at least one B, and (3) at least one A and at least one B. Similarly, as used herein in describing the performance or execution of processes, instructions, activities and / or steps, the phrase "at least one of A or B" means an implementation including any of the following: (1) at least one A, (2) at least one B, and (3) at least one A and at least one B.
[0061] For such users, singular references (e.g., "a (a), an)," "first," "second," etc.) do not exclude plurals. The term "a (a)" or "an" used by such users refers to one or more of that entity. The terms "a (a)" (or "an"), "one or more," and "at least one" are used interchangeably herein. Furthermore, although listed separately, multiple means, elements, or method actions can be implemented by, for example, a single unit or processor. Moreover, although individual features may be included in different categories or claims, these features can be combined, and being included in different categories or claims does not mean that the combination of features is infeasible and / or advantageous.
[0062] Figure 4 is a flowchart representing machine-readable instructions 400 that can be executed to implement the example noise reducer 310 of Figure 3. Specifically, the instructions in Figure 4 enable the noise reducer 310 to learn and initialize a plurality of background noise profiles of the acoustic environment.
[0063] In block 402, the example background noise analyzer 312 determines that the background noise profile time period has expired. The background noise profile time period can be a predetermined time period (e.g., a specific number of days, weeks, etc.) during which the example noise reducer is configured to learn various background noise characteristics in typical frequently visited environments (e.g., home, office, coffee shop, etc.). If the background noise profile time period has expired (e.g., block 402 returns a "yes" result), the background noise profile initialization process 400 terminates. If the background noise profile time period has not expired (e.g., block 402 returns a "no" result), the process 400 continues to block 404.
[0064] In block 404, the exemplary background noise analyzer 312 determines whether the sampling period since the previous sound sample was collected has elapsed (in block 404). For example, the exemplary background noise analyzer 312 may collect sound samples periodically over multiple days (e.g., every 10 minutes or other sampling periods). Therefore, if the sampling period has elapsed, a "yes" result is returned in block 404, and processing 400 continues to block 408.
[0065] If the sampling period has not yet passed (for example, block 404 returns a "No" result), then the example background noise analyzer 312 continues to block 406. In block 406, the example background noise analyzer 312 waits until the sampling period has passed, and then continues to block 408.
[0066] In block 408, machine-readable instructions 400 relate to the exemplary background noise analyzer 312 collecting sound samples representing background noise in the acoustic environment where sound samples are collected. For example, the exemplary background noise analyzer 312 may, in each iteration of processing 400 (e.g., each time block 404 returns a "yes" result), obtain short sound samples (e.g., 2 seconds) from a microphone (e.g., sound sensor 302) in block 408 to compile multiple sound samples for different times of day for multiple acoustic environments in which the computing system 300 is located.
[0067] In block 410, background noise analyzer 312 determines the spectral components of the sound sample in a plurality of frequency bands. Returning to Figure 2, for example, background noise analyzer 312 may determine the sound pressure level in the sound sample (e.g., represented by line 204) for each of the third octave bands shown on the horizontal axis of the graph illustration in Figure 2.
[0068] In block 412, the background noise analyzer 312 generates a background noise profile of the acoustic environment based on individual spectral components of one or more sound samples collected in the acoustic environment. For example, the background noise analyzer 312 can identify multiple sound samples collected in the same acoustic environment (e.g., an office, a coffee shop, etc.). In this example, the analyzer 312 then calculates a statistical evaluation (e.g., L90 statistics, etc.) of the background noise levels in multiple frequency bands in this particular environment. For example, the exemplary background noise levels assigned to a particular environment in the background noise profile may correspond to the sound pressure levels exceeded during 90% of the duration of the sound samples collected in that particular environment. Other exemplary statistical calculations are also possible.
[0069] Process 400 then returns to block 402, where blocks 402-412 are repeated until the background noise profile time period expires (e.g., block 402 returns a "yes" result). For example, the exemplar noise reducer 312 may indicate that it has collected a sufficient number of samples to generate a background noise profile for some frequently visited environments of the computing system 300 (e.g., top five environments, etc.).
[0070] Figure 5 is a flowchart representing example machine-readable instructions 500 that can be executed to implement the example noise reducer of Figure 3. Specifically, the instructions in Figure 5 enable the noise reducer to learn and initialize system noise profiles of multiple different system noise configurations.
[0071] The example process 500 in Figure 5 begins at block 502, where the system noise analyzer 314 identifies an untested system configuration. In the initial iteration, the example system noise analyzer 314 identifies a first untested system configuration. In one example, the first system configuration includes a specific combination of dynamic periodicity change (DPA) parameter values, voltage regulator slew rate values, and / or other system parameters for operating one or more electronic components 306. If all possible system configurations have been tested (e.g., block 502 returns a "no" result), then process 500 terminates. If one or more system configurations have not yet been tested (e.g., block 502 returns a "yes" result), then process 500 continues to block 504.
[0072] In block 504, the system noise analyzer 314 adjusts the current system configuration to correspond to the untested system configuration. For example, the specific values of the system configuration parameters discussed above can be applied to the computing system 300 (e.g., by updating BIOS settings, updating SoC configuration, updating driver circuit configuration, etc.).
[0073] In block 506, the example system noise analyzer 314 performs test workload operations. For example, the example noise analyzer 314 can enable the computing system 300 to play media files or perform other specific test calculation operations when operating according to the adjusted system configuration.
[0074] In block 508, the exemplary system noise analyzer 314 collects sound samples while performing test workload operations. For example, processing 500 can be performed in a quiet test environment (e.g., an anechoic chamber). Furthermore, in block 508, the exemplary system noise analyzer 314 obtains sound samples from the sound sensor 302. In this example, the collected sound samples may represent noise (e.g., vibration, etc.) caused by the operation of one or more electronic components 306 according to a selected system noise profile in the system configuration.
[0075] In block 510, the system noise analyzer 314 determines the spectral components of the sound samples in a plurality of frequency bands, similar to the spectral components determined in the description of block 410 of the process 400 shown in Figure 4.
[0076] In block 512, system noise analyzer 314 generates a system noise profile for the system configuration based on the spectral components of the determined sound sample. In some examples, system noise analyzer 314 generates the system noise profile in a manner similar to the background noise profile generated by background noise analyzer 312 in the description of process 400 shown in Figure 4.
[0077] Figure 6 is a flowchart representing exemplary machine-readable instructions 600 that can be executed to implement the exemplary noise reducer 310 of Figure 3. Specifically, the instructions in Figure 6 enable the noise reducer to adaptively control system noise in various acoustic environments.
[0078] In block 602, the example background noise analyzer 312 determines whether a potential change in the acoustic environment of the computing system 300 is detected. If no event indicating a potential change in the acoustic environment of the computing system 300 is detected, process 600 terminates. Otherwise, process 600 continues to block 604. Various examples may trigger the detection of a potential change in the acoustic environment in block 602.
[0079] In the examples disclosed herein, the background noise analyzer 312 detects a system startup event occurring within a time threshold at block 602 and responsively detects that the acoustic environment of the computing system 300 has potentially changed (e.g., block 602 returns a "yes" result). In some examples, the background noise analyzer 312 detects the occurrence of a specific background noise profile stored in the background noise profile store 322 at a specific time of day (e.g., the time of day when the system frequently occurs in the home environment, etc.), and the analyzer 312 responsively detects that the acoustic environment has potentially changed (e.g., block 602 returns a "yes" result).
[0080] In some examples, the background noise analyzer 312 detects specific network connections associated with the network interface 308 used in a specific environment (e.g., Wi-Fi connection in a previously visited coffee shop, etc.) and detects changes in response in block 602.
[0081] In some examples, the background noise analyzer 312 detects the geographic location associated with the location sensor 304 for a particular environment and detects in response that the acoustic environment has changed (e.g., the box 602 returns a "yes" result).
[0082] In block 604, background noise analyzer 312 collects sound samples representing background noise in the acoustic environment. For example, background noise analyzer 312 can obtain sensor data (from sound sensor 302) representing background noise in the current environment.
[0083] In some examples, the background noise analyzer 312 determines a background noise profile representing the background noise in the current environment based on at least sensor data. For example, the background noise analyzer 312 evaluates the sound pressure level of each of a plurality of 1 / 3 octaves, such as the frequency bands shown in Figure 2. Therefore, in these examples, determining the background noise profile may involve the background noise analyzer 312 determining, in block 604, a plurality of sound pressure levels in a plurality of frequency bands of sound detected by the sound sensor and represented by the sensor data.
[0084] In some examples, the background noise analyzer 312 determines a plurality of background noise profiles representing background noise in a plurality of environments. For example, the background noise analyzer 312 generates each background noise profile by collecting individual sensor data from the sound sensor 302 in a plurality of environments over time, and generates individual background noise profiles for each environment according to the discussion in the description of the background noise analyzer 312.
[0085] In the example disclosed herein, the background noise analyzer 312 associates each of a plurality of background noise profiles with an individual geographic location represented by the position sensor 304. The background noise analyzer 312 identifies the current environment in block 604 at least in part based on the current location represented by the position sensor 304.
[0086] In some examples, the background noise analyzer 312 associates the current environment with a specific time of day, determines the current time of day, and identifies the current environment based on the current time of day and the specific time of day. Referring, for example, to Figure 1, the background noise analyzer 312 can associate each of the times of day T1, T2, T3, T4, etc., with the corresponding environment (e.g., coffee shop, home, office, etc.) in which the computing system 300 is operating.
[0087] In some examples, when the computing system 300 is operating in the current environment, the background noise analyzer 312 detects (via network interface 308) a specific wireless network and then associates the current environment with the detection of the specific wireless network, which is consistent with the discussion of the background noise analyzer 312 described in Figure 3.
[0088] In block 606, background noise analyzer 312 identifies a background noise profile of the acoustic environment. For example, background noise analyzer 312 compares the spectral characteristics (e.g., sound pressure levels in different frequency bands) of the collected sound samples with the corresponding spectral characteristics of other sound samples in background noise profile 322 that are associated with the same or similar time of day as the sound samples collected in block 604.
[0089] In block 608, the system noise analyzer 314 selects a system noise profile for operating the computing system 300 in an acoustic environment. In some examples, the system noise analyzer 314 selects a first system noise profile that represents the noise associated with operating one or more electronic components 306 according to a first system configuration. In some examples, the system noise analyzer 314 selects a first system noise profile in block 608 from a plurality of system noise profiles stored in a system noise profile store 324, consistent with the discussion in the description of the system noise analyzer 314.
[0090] In block 610, the system noise controller 316 adjusts system settings (which may include DPA parameter values and / or voltage slew rate values) based on a selected system noise profile. Generally, for example, the system noise controller 316 operates one or more electronic components 306 according to a first system configuration of the first system noise profile. In this example, the system noise controller 316 may adjust the DPA parameter, voltage slope, and / or other drive signal characteristics of the electrical signal flowing through the electronic component 306 to correspond to specific values represented by the first system configuration of the first system noise profile.
[0091] In some examples, one or more electronic components 306 include a voltage regulator. In these examples, the system noise controller 316 operating one or more electrical components 306 in block 610 may involve adjusting the conversion rate of the voltage regulator.
[0092] In some examples, the system noise controller 316 operating one or more electrical components 306 involves adjusting the dynamic periodic change (DPA) configuration of one or more electronic components, consistent with the discussion in the description of the system noise controller 316 in Figure 3 above.
[0093] In block 612, the noise masking verifier 318 collects verification sound samples while operating according to the adjusted system settings. Then, in block 614, the noise masking verifier 318 compares the spectral characteristics of the verification sound samples with the electrical signal characteristics associated with the adjusted system settings.
[0094] In block 618, if the consistency and / or similarity of the threshold values between the verified audio sample and the electrical signal are detected (e.g., block 618 returns a "yes" result), the noise masking verifier 318 selects another system noise profile by returning to block 608. For example, the consistency of the verified audio sample and the electrical signal can be calculated on a scale of zero to one, where zero represents no consistency (e.g., no similarity) and one represents perfect consistency (e.g., a matching signal). In such an example, the threshold consistency can be set to half (e.g., 0.5). However, any other threshold consistency value can be used additionally or alternatively. In some examples, a different system noise profile (with lower consistency to background noise) can be selected based on the comparison in block 614. If no threshold consistency is detected (e.g., block 618 returns a "no" result), process 600 returns to block 602.
[0095] Therefore, in some examples, the noise masking verifier 318 can obtain second sensor data from the sound sensor 302 at block 612, representing the sound detected by the sound sensor 302 when operating one or more electronic components 306 according to a first system configuration based on a selected system noise profile. The second sensor data can represent sound including background noise and system noise caused by one or more electronic components 306.
[0096] In these examples, the machine-readable instructions 600 may also involve a system noise analyzer 314 that selects a second system noise profile from a plurality of system profiles (e.g., stored in a system noise profile store 324) based on at least second sensor data.
[0097] To facilitate the selection of a second system noise profile in these examples, in some examples, the noise masking verifier 318 compares the acoustic signal characteristics of the second sound represented by the second sensor data with the electrical signal characteristics associated with the first system configuration (selected by the system noise analyzer 314) of the first system noise profile. To facilitate this, for example, the noise masking verifier 318 can determine the consistency between the sound represented by the second sensor data and the electrical signals (e.g., voltage rails, etc.) driving the electronic components 306. In this example, if the determined consistency exceeds a threshold (e.g., 90%, etc.), the system noise analyzer 314 can select the second system noise profile as discussed above.
[0098] Figure 7 is a block diagram of an example processor platform 700, which is structured to execute the instructions in Figures 4, 5, and / or 6 to implement the noise reduction device 310 in Figure 3. The processor platform 700 may be, for example, a server, a personal computer, a workstation, a self-learning machine (e.g., a neural network), a mobile device (e.g., a mobile phone, a smartphone, a tablet such as iPad™), a personal digital assistant (PDA), an internet device, a DVD player, a CD player, a digital video recorder, a Blu-ray player, a game console, a personal video recorder, a set-top box, headphones or other wearable devices, or any other type of computing device.
[0099] The processor platform 700 shown in the example includes a processor 712. The processor 712 shown in the example is hardware. For example, the processor 712 may be implemented by one or more integrated circuits, logic circuits, microprocessors, GPUs, DSPs, or controllers from any desired family or manufacturer. The hardware processor may be a semiconductor-based (e.g., silicon-based) device. In this example, the processor implements an example background noise analyzer 312, an example system noise analyzer 314, an example system noise controller 316, and an example noise mask verifier 318. The processor 712 of the example shown in
[0100] includes region memory 713 (e.g., cache). The processor 712 of the example shown communicates with main memory, including volatile memory 714 and non-volatile memory 716, via bus 718. Volatile memory 714 may be implemented using synchronous dynamic random access memory (SDRAM), dynamic random access memory (DRAM), RAMBUS® dynamic random access memory (RDRAM®), and / or any other type of random access memory device. Non-volatile memory 716 may be implemented using flash memory and / or any other desired type of memory device. Access to main memory 714, 716 is controlled by a memory controller. The processor platform 700 shown in
[0101] also includes interface circuitry 720. Interface circuitry 720 can be implemented using any type of interface standard, such as Ethernet interface, Universal Serial Bus (USB), Bluetooth® interface, Near Field Communication (NFC) interface, and / or Fast PCI interface.
[0102] In the example shown, one or more input devices 722 are connected to the interface circuitry 720. The input devices 722 allow users to input data and / or commands into the processor 712. The input devices may be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, buttons, a mouse, a touch screen, a trackpad, a trackball, an isopoint, and / or a voice recognition system.
[0103] One or more output devices 724 are also connected to the interface circuit 724 of the illustrated example. The output devices 724 may be implemented by, for example, display devices (e.g., light-emitting diodes (LEDs), organic light-emitting diodes (OLEDs), liquid crystal displays (LCDs), cathode ray tube displays (CRTs), in-plane switching (IPS) displays, touch screens, etc.), haptic output devices, printers, and / or speakers). Therefore, the interface circuit 720 of the illustrated example typically includes a graphics driver card, a graphics driver chip, and / or a graphics driver processor. The interface circuit 720 of the example shown in
[0104] also includes communication devices, such as transmitters, receivers, transceivers, modems, residential gateways, wireless access points, and / or network interfaces, to facilitate the exchange of data with external machines (e.g., any type of computing device) via network 726. For example, communication may be via Ethernet connections, digital subscriber line (DSL) connections, telephone line connections, coaxial cable systems, satellite systems, line-of-site wireless systems, cellular telephone systems, etc. The processor platform 700 of the example shown in
[0105] also includes one or more mass storage devices 728 for storing software and / or data. Examples of such mass storage devices 728 include floppy disk drives, hard disk drives, optical disk drives, Blu-ray drives, redundant array of disks (RAID) systems, and digital multifunction disc (DVD) drives. In this example, the example background noise profile library 322 and the example system noise profile library 324 can be stored in one or more storage devices 728.
[0106] The machine-executable instructions 732 of Figures 4, 5, and / or 6 may be stored in a mass storage device 728, in volatile memory 714, in non-volatile memory 716, and / or on a removable, non-transitory computer-readable storage medium (such as a CD or DVD).
[0107] Figure 8 illustrates a block diagram of an example software distribution platform 805 for distributing software such as the example computer-readable instructions 732 in Figure 7 to third parties. The example software distribution platform 805 can be implemented using any computer server, data facility, cloud service, etc., and is capable of storing and sending the software to other computing devices. Third parties can be customers of the entity that owns and / or operates the software distribution platform. For example, the entity owning and / or operating the software distribution platform can be the software developer, seller, and / or licensor, such as the example computer-readable instructions 732 in Figure 7. Third parties can be consumers, users, retailers, OEMs, etc., who purchase and / or license the software for use and / or resell and / or sublicense.
[0108] In the illustrated example, the software distribution platform 805 includes one or more servers and one or more storage devices. The storage device stores computer-readable instructions 732, which, as described above, can correspond to the exemplary computer-readable instructions in Figures 4, 5, 6, and / or 7. One or more servers of the exemplary software distribution platform 805 communicate with a network 810, which can correspond to the Internet and / or any one or more of the aforementioned exemplary networks 726. In some examples, one or more servers respond to a request to send software to a requester as part of a commercial transaction. Payments for the delivery, sale, and / or licensing of the software can be processed via one or more servers of the software distribution platform and / or through a third-party payment entity. The servers enable purchasers and / or licensors to download the computer-readable instructions 732 from the software distribution platform 805. For example, software corresponding to the example computer-readable instructions in Figures 4, 5, and / or 6 can be downloaded to the example processor platform 700, which executes the computer-readable instructions 732 to implement the noise reduction device 310 in Figure 3. In some examples, one or more servers of the software distribution platform 805 periodically provide, send, and / or force software updates (e.g., the example computer-readable instructions 732 in Figure 7) to ensure that improvements, patches, updates, etc., are distributed on end-user devices and applied to the software.
[0109] As can be seen from the above, exemplary methods, apparatus, and manufactured objects have been disclosed that can adaptively reduce noise generated by the electronic components of a computing device. This adaptive noise reduction allows for increased device performance when the background noise level is greater than the system noise level associated with increased device performance. The disclosed methods, apparatus, and manufactured objects improve the efficiency of the computing device by automatically adjusting system configuration parameters that affect system noise generation based on the current background noise in the environment. Therefore, the disclosed methods, apparatus, and manufactured objects represent one or more improvements to the functionality of a computer.
[0110] This document discloses exemplary methods, apparatus, systems, and manufactured objects for noise reduction of electronic noise using adaptive sensing and control. Further examples and combinations thereof include the following:
[0111] Example 1 includes an apparatus for mitigating noise in an electronic device, the apparatus comprising: a sound sensor; a background noise analyzer for obtaining sensor data from the sound sensor representing background noise in the environment of the electronic device; a system noise analyzer for selecting a first system noise profile based on at least the sensor data, the first system noise profile representing noise associated with operating one or more electronic components according to a first system configuration; and a system noise controller for operating the one or more electronic components according to the first system configuration of the first system noise profile.
[0112] Example 2 includes a device as in Example 1, wherein the one or more electronic components include a voltage regulator, and wherein a system noise controller is used to adjust the slew rate of the voltage regulator to operate the one or more electronic components according to the first system configuration.
[0113] Example 3 includes a device as in Example 1, wherein the system noise controller is used to adjust the dynamic periodic change (DPA) configuration of one or more electronic components to operate the one or more electronic components according to the first system configuration.
[0114] Example 4 includes the device as in Example 1, and further includes: a noise masking verifier for obtaining second sensor data from the sound sensor, the second sensor data representing sound detected by the sound sensor when the one or more electronic components are operated according to the first system configuration, wherein a system noise analyzer selects a second system noise profile based on at least the second sensor data, the second system noise profile representing second noise associated with operating the one or more electronic components according to the second system configuration; and wherein, in response to the selection of the second system noise profile by the system noise analyzer, a system noise controller operates the one or more electronic components according to the second system configuration of the second system noise profile.
[0115] Example 5 includes the device as in Example 1, and further includes a background noise profile storage library for storing a plurality of background noise profiles representing background noise in a plurality of environments, wherein the background noise analyzer further determines the characteristics of background noise in the environment based on the stored plurality of background noise profiles.
[0116] Example 6 includes the device as in Example 1, and further includes a system noise profile library for storing a plurality of system noise profiles, the plurality of system noise profiles representing noise associated with operating one or more electronic components in a plurality of environments, wherein the system noise analyzer selects the first system noise profile from the plurality of system noise profiles stored in the system noise profile library.
[0117] Example 7 includes a device as in Example 1, and further includes a location sensor for representing the geographical location of the device, wherein the background noise analyzer determines the background noise in the environment based at least in part on the geographical location represented by the location sensor.
[0118] Example 8 includes a device as in Example 1, and further includes a network interface for detecting a specific network in the environment of the device, wherein the background noise analyzer determines the background noise in the environment based at least in part on the detection of the specific network in the environment.
[0119] Example 9 includes at least one non-transitory computer-readable medium containing instructions that, when executed by at least one processor, cause the at least one processor to at least: obtain sensor data from a sound sensor of a computing system, the sensor data representing background noise in the environment of the computing system; select a first system noise profile based on at least the sensor data, the first system noise profile representing noise associated with one or more electronic components of the computing system operating according to a first system configuration; and operate the one or more electronic components of the computing system according to the first system configuration of the first system noise profile.
[0120] Example 10 includes at least one non-transitory computer-readable storage medium as in Example 9, wherein the one or more electronic components include a voltage regulator, and the instruction, when executed, causes the at least one processor to adjust the slew rate of the voltage regulator in order to operate the one or more electronic components according to the first system configuration.
[0121] Example 11 includes at least one non-transitory computer-readable storage medium as in Example 9, wherein the instruction, when executed, causes the at least one processor to adjust the dynamic periodicity change (DPA) configuration of the one or more electronic components in order to operate the one or more electronic components according to the first system configuration.
[0122] Example 12 includes at least one non-transitory computer-readable storage medium as in Example 9, wherein the instructions, when executed, cause the at least one processor to: obtain second sensor data from the sound sensor, the second sensor data representing sound detected by the sound sensor when the one or more electronic components are operated according to the first system configuration; select a second system noise profile based on at least the second sensor data, the second system noise profile representing second noise associated with the operation of the one or more electronic components according to the second system configuration; and operate the one or more electronic components of the computing system according to the second system configuration of the second system noise profile in response to the selection of the second system noise profile.
[0123] Example 13 includes at least one non-transitory computer-readable storage medium as in Example 12, wherein the instruction, when executed, causes the at least one processor to compare the acoustic signal characteristics of a second sound represented by the second sensor data with the electrical signal characteristics associated with the first system configuration of the first system noise profile, wherein the selection of the second system noise profile is further based on the comparison.
[0124] Example 14 includes at least one non-transitory computer-readable storage medium as in Example 13, wherein the selection of the second system noise profile is further based on a comparison indicating that the consistency between the acoustic signal characteristics and the electrical signal characteristics exceeds a critical value consistency.
[0125] Example 15 includes at least one non-transitory computer-readable storage medium as in Example 12, wherein the instruction, when executed, causes the at least one processor to determine a background noise profile based on at least the sensor data, the background noise profile representing the background noise in the environment, wherein the selection of the first system noise profile is further based on the determined background noise profile.
[0126] Example 16 includes at least one non-transitory computer-readable storage medium as in Example 15, wherein, when executed, in order to determine the background noise profile, the at least one processor: determines a plurality of sound pressure levels in a plurality of frequency bands detected by the sound sensor and represented by the sensor data, wherein the first system noise profile represents a plurality of sound pressure levels in the plurality of frequency bands corresponding to noise associated with operating one or more electronic components according to the first system configuration; and selecting the first system noise profile includes comparing the plurality of sound pressure levels of the background noise profile with the corresponding plurality of sound pressure levels of the first system noise profile.
[0127] Example 17 includes at least one non-transitory computer-readable storage medium as in Example 12, wherein the instructions, when executed, cause the at least one processor to: determine a plurality of background noise profiles, the plurality of background noise profiles representing background noise in a plurality of environments, based at least on sensor data obtained using the sound sensor in this environment and other sensor data obtained using the sound sensor in other environments; identify the environment of the computing system; and select a specific background noise profile from the plurality of background noise profiles based on the identification of the environment, wherein the selection of the first system noise profile is further based on the selection of the specific background noise profile.
[0128] Example 18 includes at least one non-transitory computer-readable storage medium as in Example 17, wherein the instructions, when executed, cause the at least one processor to: associate each of the plurality of background noise profiles with an individual location represented by a location sensor of the computing system; and receive from the location sensor a representation of the current location of the computing system, wherein the environment is identified at least in part based on the current location represented by the location sensor, wherein the selection of the particular background noise profile is at least in part based on the identification of the environment.
[0129] Example 19 includes at least one non-transitory computer-readable storage medium as in Example 17, wherein the instructions, when executed, cause the at least one processor to: associate the environment with a specific day time; determine the current day time; and identify the environment based on the current day time and the specific day time associated with the environment.
[0130] Example 20 includes at least one non-transitory computer-readable storage medium as in Example 17, wherein the instructions, when executed, cause the at least one processor to perform the following operations to identify the environment of the computing system: when the computing system is operating in the environment, detect a specific wireless network via the network interface of the computing system; and associate the environment with the detection of the specific wireless network.
[0131] Example 21 includes a method for mitigating noise in an electronic device, the method comprising: obtaining sensor data from a sound sensor of the electronic device, the sensor data representing background noise in the environment of the electronic device; selecting a first system noise profile based on at least the sensor data and by executing instructions with at least one processor, the first system noise profile representing noise associated with one or more electronic components of the electronic device operating according to a first system configuration; and operating the one or more electronic components of the electronic device according to the first system configuration of the first system noise profile.
[0132] Example 22 includes the method as in Example 21, wherein the one or more electronic components include a voltage regulator, and wherein operating the one or more electronic components according to the first system configuration includes adjusting the slew rate of the voltage regulator.
[0133] Example 23 includes the method as in Example 21, wherein operating one or more electronic components according to the first system configuration includes adjusting the dynamic periodicity change (DPA) configuration of the one or more electronic components.
[0134] Example 24 includes the method of Example 21, and further includes obtaining second sensor data from the sound sensor, the second sensor data representing sound detected by the sound sensor when the one or more electronic components are operated according to the first system configuration; selecting a second system noise profile based on at least the second sensor data, the second system noise profile representing second noise associated with operating the one or more electronic components according to the second system configuration; and operating the one or more electronic components of the computing system according to the second system configuration of the second system noise profile in response to the selection of the second system noise profile.
[0135] Example 25 includes the method of Example 24, and further includes comparing the acoustic signal characteristics of the second sound represented by the second sensor data with the electrical signal characteristics associated with the first system configuration of the first system noise profile, wherein the selection of the second system noise profile is further based on the comparison.
[0136] Example 26 includes the method of Example 25, wherein the selection of the second system noise profile is based on a comparison indicating that the consistency between the acoustic signal characteristics and the electrical signal characteristics exceeds a critical value consistency.
[0137] Example 27 includes the method of Example 21, and further includes determining a background noise profile based on at least the sensor data, the background noise profile representing the background noise in the environment, wherein the selection of the first system noise profile is further based on the determined background noise profile.
[0138] Example 28 includes the method of Example 27, wherein determining the background noise profile includes determining a plurality of sound pressure levels of sound detected by the sound sensor and represented by the sensor data in a plurality of frequency bands, wherein the first system noise profile represents a plurality of sound pressure levels corresponding to noise associated with operating one or more electronic components according to the first system configuration in the plurality of frequency bands; and wherein selecting the first system noise profile includes comparing the plurality of sound pressure levels of the background noise profile with the corresponding plurality of sound pressure levels of the first system noise profile.
[0139] Example 29 includes the method of Example 21, further including determining a plurality of background noise profiles based at least on sensor data obtained using the sound sensor in the environment and other sensor data obtained using the sound sensor in other environments, the plurality of background noise profiles representing background noise in the plurality of environments; identifying the environment of the electronic device; and selecting a specific background noise profile from the plurality of background noise profiles based on the identification of the environment, wherein the selection of the first system noise profile is further based on the selection of the specific background noise profile.
[0140] Example 30 includes the method of Example 29, further including associating each of the plurality of background noise profiles with an individual position represented by a position sensor of the computing system; and receiving a representation of the current position of the electronic device from the position sensor, wherein the environment is identified at least in part based on the current position represented by the position sensor, and wherein the particular background noise profile is selected at least in part based on the identification of the environment.
[0141] Example 31 includes the method of Example 29, and further includes associating the environment with a specific day time, determining the current day time, and identifying the environment based on the current day time and the specific day time associated with the environment.
[0142] Example 32 includes the method of Example 29, wherein identifying the environment of the electronic device includes detecting a specific wireless network via the network interface of the electronic device when the electronic device is operating in the environment, and associating the environment with the detection of the specific wireless network.
[0143] Example 33 includes a device comprising a sound sensor, at least one storage device, and at least one processor for executing instructions such that the processor obtains at least sensor data from the sound sensor, the sensor data representing background noise in the environment of the device; selects a first system noise profile based on at least the sensor data, the first system noise profile representing noise associated with operating one or more electronic components according to a first system configuration; and operates the one or more electronic components according to the first system configuration of the first system noise profile.
[0144] Example 34 includes a device as in Example 33, wherein the one or more electronic components include a voltage regulator, and wherein operating the one or more electronic components according to the first system configuration includes adjusting the slew rate of the voltage regulator.
[0145] Example 35 includes a device as in Example 33, wherein operating one or more electronic components according to the first system configuration includes adjusting the dynamic periodicity change (DPA) configuration of the one or more electronic components.
[0146] Example 36 includes a device as in Example 33, wherein the at least one processor further obtains second sensor data from the sound sensor, the second sensor data representing sound detected by the sound sensor when the one or more electronic components are operated according to the first system configuration; selects a second system noise profile based on at least the second sensor data, the second system noise profile representing second noise associated with the operation of the one or more electronic components according to the second system configuration; and operates the one or more electronic components according to the second system configuration of the second system noise profile in response to the selection of the second system noise profile.
[0147] Example 37 includes a device as in Example 36, wherein the at least one processor further compares the acoustic signal characteristics of a second sound represented by the second sensor data with the electrical signal characteristics associated with the first system configuration of the first system noise profile, wherein the selection of the second system noise profile is based on the comparison.
[0148] Example 38 includes a device as in Example 37, wherein the at least one processor further selects the second system noise profile based on a comparison indicating that the consistency between the acoustic signal characteristics and the electrical signal characteristics exceeds a critical value consistency.
[0149] Example 39 includes a device as in Example 37, wherein the at least one processor further determines a background noise profile based on at least the sensor data, the background noise profile representing the background noise in the environment, wherein the selection of the first system noise profile is based on the determined background noise profile.
[0150] Example 40 includes a device as in Example 39, wherein the at least one processor further determines the background noise profile by determining a plurality of sound pressure levels of sound detected by the sound sensor and represented by the sensor data in a plurality of frequency bands, wherein the first system noise profile represents a plurality of sound pressure levels corresponding to noise associated with operating one or more electronic components according to the first system configuration in the plurality of frequency bands; and wherein selecting the first system noise profile includes comparing the plurality of sound pressure levels of the background noise profile with the corresponding plurality of sound pressure levels of the first system noise profile.
[0151] Example 41 includes a device as in Example 37, wherein the at least one processor determines a plurality of background noise profiles, representing background noise in a plurality of environments, based at least on sensor data obtained using the sound sensor in the environment and other sensor data obtained using the sound sensor in other environments; identifies the environment of the computing system; and selects a specific background noise profile from the plurality of background noise profiles based on the identification of the environment, wherein the selection of the first system noise profile is further based on the selection of the specific background noise profile.
[0152] Example 42 includes the apparatus of Example 41, wherein the at least one processor associates each of the plurality of background noise profiles with an individual location represented by a location sensor of the computing system; and receives from the location sensor a representation of the current location of the computing system, wherein the environment is identified at least in part based on the current location represented by the location sensor, and wherein the selection of the particular background noise profile is at least in part based on the identification of the environment.
[0153] Example 43 includes a device as in Example 41, wherein the at least one processor associates the environment with a specific day time; determines the current day time; and identifies the environment based on the current day time and the specific day time associated with the environment.
[0154] Example 44 includes a device as in Example 37, wherein the at least one processor performs the following operations to identify the environment: when the computing system is operating in the environment, detects a specific wireless network via the network interface of the computing system; and associates the environment with the detection of the specific wireless network.
[0155] Example 45 includes an apparatus comprising: means for obtaining sensor data from a sound sensor of a computing system, the sensor data representing background noise in the environment of the computing system; means for selecting a first system noise profile based on at least the sensor data, the first system noise profile representing noise associated with one or more electronic components of the computing system operating according to a first system configuration; and means for operating the one or more electronic components of the computing system according to the first system configuration of the first system noise profile.
[0156] Although certain exemplary methods, apparatuses and manufactured articles have been disclosed herein, the scope of this patent is not limited thereto. Rather, this patent covers all methods, apparatuses and manufactured articles that fall within the scope of the claims of this patent.
[0157] The following claims are incorporated herein by reference, and each claim exists independently as a separate embodiment of this disclosure. [Simplified Explanation of the Diagram]
[0004] [Figure 1] is a chart illustrating the background noise levels detected at different times of the day.
[0005] [Figure 2] is an example diagram illustrating background and system noise levels in several different frequency bands.
[0006] [Figure 3] is a schematic diagram of an exemplary system constructed in accordance with the teachings of this disclosure, which reduces noise in electronic components of the system.
[0007] [Figure 4] is a flowchart representing machine-readable instructions that can be executed to implement the example noise reducer of Figure 3 to initialize and learn the background noise characteristics in one or more acoustic environments.
[0008] [Figure 5] is a flowchart representing machine-readable instructions that can be executed to implement the example noise reducer in Figure 3 to initialize and learn system noise characteristics associated with a plurality of different system configurations.
[0009] [Figure 6] is a flowchart representing machine-readable instructions that can be executed to implement the example noise reducer of Figure 3 to adaptively control system noise in various acoustic environments.
[0010] [Figure 7] is a block diagram of an example processor platform, which is structured to execute the instructions in Figure 4 to implement the example noise reducer in Figure 3.
[0011] [Figure 8] is a block diagram of an example software distribution platform for distributing software (e.g., example computer-readable instruction software corresponding to Figures 4, 5 and / or 6) to user devices, such as consumers (e.g. for licensing, selling and / or using), retailers (e.g. for selling, reselling, licensing and / or re-licensing), and / or original equipment manufacturers (OEMs) (e.g., for inclusion in products to be distributed to, for example, retailers and / or direct-purchase customers).
Claims
1. An apparatus for mitigating noise in an electronic device, the apparatus comprising: a sound sensor; a background noise analyzer for obtaining sensor data from the sound sensor representing background noise in the environment of the electronic device; a system noise analyzer for selecting a first system noise profile based on at least the sensor data, the first system noise profile representing noise associated with operating one or more electronic components according to a first system configuration; and a system noise controller for operating the one or more electronic components according to the first system configuration of the first system noise profile.
2. The device of claim 1, wherein the one or more electronic components include a voltage regulator, and wherein the system noise controller is used to adjust the slew rate of the voltage regulator to operate the one or more electronic components according to the first system configuration.
3. The device of claim 1, wherein the system noise controller is used to adjust the dynamic periodic change (DPA) configuration of one or more electronic components to operate the one or more electronic components according to the first system configuration.
4. The equipment as described in claim 1 further includes: A noise masking verifier is used to obtain second sensor data from the sound sensor, the second sensor data representing sound detected by the sound sensor when one or more electronic components are operated according to the first system configuration, wherein a system noise analyzer selects a second system noise profile based on at least the second sensor data, the second system noise profile representing a second noise associated with operating one or more electronic components according to the second system configuration; and wherein, in response to the selection of the second system noise profile by the system noise analyzer, a system noise controller operates one or more electronic components according to the second system configuration of the second system noise profile.
5. The apparatus of claim 1 further includes a background noise profile library for storing a plurality of background noise profiles representing background noise in a plurality of environments, wherein the background noise analyzer further determines the characteristics of background noise in the environment based on the stored plurality of background noise profiles.
6. The device of claim 1 further includes a system noise profile library for storing a plurality of system noise profiles, the plurality of system noise profiles representing noise associated with operating the one or more electronic components in a plurality of environments, wherein the system noise analyzer selects the first system noise profile from the plurality of system noise profiles stored in the system noise profile library.
7. The device of claim 1 further includes a location sensor for representing the geographic location of the device, wherein the background noise analyzer determines the background noise in the environment based at least in part on the geographic location represented by the location sensor.
8. The device of claim 1 further includes a network interface for detecting a specific network in the environment of the device, wherein the background noise analyzer determines the background noise in the environment based at least in part on the detection of the specific network in the environment.
9. At least one computer-readable medium comprising instructions that, when executed by at least one processor, cause the at least one processor to at least: obtain sensor data from a sound sensor of a computing system, the sensor data representing background noise in the environment of the computing system; select a first system noise profile based on at least the sensor data, the first system noise profile representing noise associated with one or more electronic components of the computing system operating according to a first system configuration; and operate the one or more electronic components of the computing system according to the first system configuration of the first system noise profile.
10. As in claim 9, at least one computer-readable storage medium, wherein the one or more electronic components include a voltage regulator, and the instruction, when executed, causes the at least one processor to adjust the conversion rate of the voltage regulator in order to operate the one or more electronic components according to the first system configuration.
11. At least one computer-readable storage medium as claimed in claim 9, wherein the instruction, when executed, causes the at least one processor to adjust the dynamic periodicity change (DPA) configuration of the one or more electronic components in order to operate the one or more electronic components according to the first system configuration.
12. At least one computer-readable storage medium as claimed in claim 9, wherein the instruction, when executed, causes the at least one processor to: obtain second sensor data from the sound sensor, the second sensor data representing sound detected by the sound sensor when the one or more electronic components are operated according to the first system configuration; select a second system noise profile based on at least the second sensor data, the second system noise profile representing second noise associated with the operation of the one or more electronic components according to the second system configuration; and operate the one or more electronic components of the computing system according to the second system configuration of the second system noise profile in response to the selection of the second system noise profile.
13. At least one computer-readable storage medium as claimed in claim 12, wherein the instruction, when executed, causes the at least one processor to compare the acoustic signal characteristics of a second sound represented by the second sensor data with the electrical signal characteristics associated with the first system configuration of the first system noise profile, wherein the selection of the second system noise profile is further based on the comparison.
14. If at least one of claims 12 or 13 is computer-readable storage media, wherein the selection of the second system noise profile is further based on a comparison indicating that the consistency between the acoustic signal characteristics and the electrical signal characteristics exceeds a critical value consistency.
15. At least one computer-readable storage medium as claimed in claim 12, wherein the instruction, when executed, causes the at least one processor to determine a background noise profile based on at least the sensor data, the background noise profile representing the background noise in the environment, wherein the selection of the first system noise profile is further based on the determined background noise profile.
16. At least one computer-readable storage medium as claimed in any of claims 12 to 15, wherein, when executed, the instruction, in order to determine the background noise profile, causes the at least one processor to: determine a plurality of sound pressure levels in a plurality of frequency bands detected by the sound sensor and represented by the sensor data, wherein the first system noise profile represents a plurality of sound pressure levels in the plurality of frequency bands corresponding to noise associated with operating one or more electronic components according to the first system configuration; and selecting the first system noise profile includes comparing the plurality of sound pressure levels of the background noise profile with the corresponding plurality of sound pressure levels of the first system noise profile.
17. At least one computer-readable storage medium as claimed in claim 12, wherein the instructions, when executed, cause the at least one processor to: determine a plurality of background noise profiles, the plurality of background noise profiles representing background noise in the plurality of environments, based at least on sensor data obtained using the sound sensor in the environment and other sensor data obtained using the sound sensor in other environments; identify the environment of the computing system; and, based on the identification of the environment, select a specific background noise profile from the plurality of background noise profiles, wherein the selection of the first system noise profile is further based on the selection of the specific background noise profile.
18. A computer-readable storage medium as claimed in any one of claims 12 to 17, wherein the instruction, when executed, causes the at least one processor to: associate each of the plurality of background noise profiles with an individual location represented by a location sensor of the computing system; and receive from the location sensor a representation of the current location of the computing system, wherein the identification of the environment is based at least in part on the current location represented by the location sensor, wherein the selection of the particular background noise profile is based at least in part on the identification of the environment.
19. If at least one of claims 12 and 17 is a computer-readable storage medium, wherein the instruction, when executed, causes the at least one processor to: associate the environment with a specific day time; determine the current day time; and identify the environment based on the current day time and the specific day time associated with the environment.
20. A computer-readable storage medium, if any one of claims 12 to 17, wherein the instruction, when executed, causes the at least one processor to perform the following operations to identify the environment of the computing system: when the computing system is operating in the environment, to detect a particular wireless network via the network interface of the computing system; and to associate the environment with the detection of the particular wireless network.
21. A method for mitigating noise in an electronic device, the method comprising: obtaining sensor data from a sound sensor of the electronic device, the sensor data representing background noise in an environment of the electronic device; selecting a first system noise profile based on at least the sensor data and by executing instructions using at least one processor, the first system noise profile representing noise associated with one or more electronic components of the electronic device operating according to a first system configuration; and operating the one or more electronic components of the electronic device according to the first system configuration of the first system noise profile.
22. The method of claim 21, wherein the one or more electronic components include a voltage regulator, and wherein operating the one or more electronic components according to the first system configuration includes adjusting the slew rate of the voltage regulator.
23. The method of claim 21, wherein operating the one or more electronic components according to the first system configuration includes adjusting the dynamic periodicity change (DPA) configuration of the one or more electronic components.
24. An apparatus comprising: means for obtaining sensor data from a sound sensor of a computing system, the sensor data representing background noise in an environment of the computing system; means for selecting a first system noise profile based on at least the sensor data, the first system noise profile representing noise associated with one or more electronic components of the computing system operating according to a first system configuration; and means for operating the one or more electronic components of the computing system according to the first system configuration of the first system noise profile.
25. The device of claim 24, wherein the one or more electronic components include a voltage regulator, and wherein means for operating the one or more electronic components according to the first system configuration includes adjusting the slew rate of the voltage regulator.