Adaptively combining waveforms

A circuit may be configured to adaptively combine two or more waveforms into a single waveform. The circuit can generate weighting factors based on received error signals, and can apply the weighting factors to the two or waveforms to be combined.

SUMMARY

In certain embodiments, an apparatus may comprise a circuit configured to receive two or more input signals where each signal is provided by a separate source. The circuit may receive two or more error signals, each error signal corresponding to a different input signal. Further, the circuit may be configured to determine noise statistics based on the two or more error signals, generate a weighting coefficient based on the noise statistics, and determine an output signal based on the weighting coefficient and the two or more input signals.

In certain embodiments, a system may comprise multiple inputs configured to receive two or more input signals, a noise statistics generator circuit configured to generate noise statistics based on two or more error signals, and a weighting coefficient circuit configured to generate a weighting coefficient based on the noise statistics. Further, the system may include a weighting filter circuit coupled to the weighting coefficient generator circuit, and may be configured to determine an output signal based on the weighting coefficient and the two or more input signals.

In certain embodiments, a method may comprise receiving two or more input signals, receiving two or more error signals, each error signal corresponding to a different input signal. The method may further comprise determining noise statistics based on the two or more error signals, generating a weighting coefficient based on the noise statistics, and determining an output signal based on the weighting coefficient and the two or more input signals.

DETAILED DESCRIPTION

In the following detailed description of the embodiments, reference is made to the accompanying drawings which form a part hereof, and in which are shown by way of illustrations. It is to be understood that features of the various described embodiments may be combined, other embodiments may be utilized, and structural changes may be made without departing from the scope of the present disclosure. It is also to be understood that features of the various embodiments and examples herein can be combined, exchanged, or removed without departing from the scope of the present disclosure.

In accordance with various embodiments, the methods and functions described herein may be implemented as one or more software programs running on a computer processor or controller. In accordance with another embodiment, the methods and functions described herein may be implemented as one or more software programs running on a computing device, such as a personal computer that is using a disc drive. Dedicated hardware implementations including, but not limited to, application specific integrated circuits, programmable logic arrays, and other hardware devices can likewise be constructed to implement the methods and functions described herein. Further, the methods described herein may be implemented as a computer readable storage medium or device including instructions that when executed cause a processor to perform the methods.

The present disclosure generally relates to adaptive filters, and more specifically, the present disclosure adaptively combining waveforms. Some systems, such as electrical, electronic, motor drive, processing, or other systems may receive input signals from more than one source. The received signals can be combined to produce a single signal that can be provided to a receiver, such as a circuit, a transducer, an electric motor, or other device. In some systems, each input signal may be given equal weight; the information in each signal may affect the combined signal equally. For example, each input signal in a system combing two input signals may have a 50 percent weighting.

In some circumstances, it may be desirable to assign a different weight to the input signals. For example, a system may assign different weights to signals (waveforms) because of noise considerations (e.g. some signals may be noisier than others), signal reliability, importance, or other considerations. In some embodiments, a system may assign weights to two or more signals via a weighting factor, a processor, firmware, circuits (e.g. analog, digital, mixed signal), software, or by other methods. The signals can have the same or different assigned weighting, and the weighting may be a set value, may change over time, or upon detection of a trigger (e.g. changes in amplitude, signal to noise ratio, reliability, system requirements, etc.).

An input signal may be assigned a weight of between zero and one hundred percent; a weight of zero percent means that none of the information in the input signal is included in the combined signal, and a weight of one hundred percent means that only the information in the first signal is included in the combined signal. In a system with two input signals, signal A and signal B, the weighting factor can be determined by a weighting coefficient, α, which can have a value between zero and one, inclusive. The weighting of signals A and B can be α and 1−α, respectively. For example, when α=0.8, the weighting of signal A can be 80 percent, and the weighting of signal B may be 20 percent. When systems have three or more input signals, the weighting can be changed accordingly. For example, in a system with three input signals, signal A, signal B, and signal C, the weighting of signal A can be αA, the weighting of signal B can be αB, and the weighting of signal C can be 1−αA−αB.

For illustrative purposes, the examples in this disclosure are directed to systems having two input signals and two error signals. However, the embodiments listed herein may apply to systems having three or more input and error signals, and to systems where the number of input signals and error signals are not the same.

Referring toFIG. 1, a system of adaptively combining waveforms is shown and is generally designated100. The system100can be configured to produce an output waveform that contains information from two or more input signals. It can include a weighting coefficient generator circuit (WCGC)102coupled to a filter circuit104. The WCGC102may also be coupled to two or more error signal sources (not shown), and the filter circuit104may be coupled to two or more input signal generators (not shown).

The WCGC102, which may be a separate circuit, a system on chip (SOC), firmware, a processor(s), or other system not listed, or any combination thereof, can generate a weighting coefficient, α, based on error signals received from the error signal sources. The error signal sources, which may be programmable generators, oscillator circuits, amplifiers, thermal detectors, transducers, and so forth, can generate error signals (e.g. e1106and e2108).

On some embodiments, the error signals e1106and e2108may be a measure of artifacts in other signals (e.g. input signals Y1110and Y2112), and may be continuous signals or may be optionally updated by the error signal sources after a period of time. Artifacts in the input signals Y1110and Y2112may be noise due to as electrical noise, electromagnetic interference, temperature differentials, mechanical stress, vibrations, or other cause(s), or any combination thereof. When the profile of the artifacts (e.g. waveform, amplitude, frequency spectrum, etc.) changes, the corresponding error signals can too.

The filter circuit104, which may be coupled to input signal generators (sources), such as programmable generators, amplifiers, data converters, filters, transducers, or other signal sources, may apply the weighting coefficient α to input signals Y1110and 1−α to Y2112to produce weighted input signals. The weighted input signals can be combined into a single output waveform Y114.

The filter circuit104may be a separate circuit, a system on chip (SOC), firmware, a processor(s), or other system not listed, or any combination thereof. It may be part of an SOC, or be integrated with or otherwise coupled to the error signal generators and the input signal sources.

In an example embodiment, consider a situation in which the noise in the input signal Y1110changes. When the noise increases, the corresponding error signal e1106may change, which may cause the WCGC to generate a corresponding to the new value of noise in the input signal110. The new value of the weighting coefficient may be applied to the input signal Y1110(1−α can be applied to the input signal Y2112) by the filter104, where it may be combined via waveform combiner with input signal Y2112to generate the combined waveform114. In some embodiments, a may be updated after the WCGC receives a predetermined number of error signals. The method may apply in situations when the noise in the input signal Y1110decreases, when only the noise in the input signal Y2112changes, and when the noise in both input signals Y1110and Y2112change. Further, the method can apply to configurations with three or more input signals, three or more error signals, or any combination thereof.

Referring toFIG. 2, a system of adaptively combining waveforms is shown and is generally designated200. The system200can be an embodiment of system100. In the embodiment of system200, the weighting coefficient generator circuit (WCGC)102can generate a based on the error signals e1106and e2108, and may include summing circuits, multipliers, and other circuits (not shown). The weighting coefficient α can be a measure of the cross correlation between input signals. In a multiple input single output (MISO) system, error signals corresponding to the input signals can be compared in a WCGC102to produce a.

Error signals e1106and e2108, which may be continuous or updated by the error sources after a period of time (e.g. periodically, after receipt of a trigger, etc.), may be processed in real time by the WCGC102. In some examples, the WCGC102may store received error signals in memory (not shown), and may determine α by averaging the stored error signals over a predetermined period of time. The WCGC102can optionally retrieve the error from a memory, or determine α from periodically captured error signal values or from error signals captured as a result detecting a trigger.

The WCGC may contain an external variable, μ, which may be adjusted to control the rate of change of α. In some examples, a circuit (e.g. a controller circuit, processor, programmable logic device, etc.), firmware, or software, can determine the value of μ. In some embodiments, the circuit can determine the value of μ by comparing the values of the error signals e1106and e2108, the value of α, and the values of any input and output signals.

Referring toFIG. 3, a system of adaptively combining waveforms is shown and is generally designated300. System300can be another embodiment of the weighting coefficient generator circuit (WCGC)102and can include a noise statistics generator (NSG)301. The NSG301may include a multiplier302coupled to squaring multipliers304and306, and to a filter, such as a low pass filter (LPF)310. The squaring multipliers304and306may each be coupled to a filter (e.g. LPF308and312, respectively). The filters308,310, and312, may be infinite impulse response (IIR) filters, window based moving average filters, or other filters not listed, and can be coupled to the WCGC102. The WCGC102may subsequently be coupled to the filter circuit104(not shown).

In some embodiments, the WCGC102may determine α using noise statistics produced by a noise statistics generator301. Noise statistics can be an average value of a squared error signal, or of a product of error signals. For example, when error signal e1106is received by the NSG301, it may be squared by the squaring multiplier304, and then filtered by the low pass filter308, which can produce a noise statistic, Na. When error signal e2108is received, it may be squared by the squaring multiplier306and then filtered by the low pass filter312, which can produce a noise statistics, Nb. The two error signals e1106and e2108may be multiplied together by a multiplier302to produce a product signal, e1e2. The product signal can be filtered by the low pass filter310to produce the noise statistic, Nc.

The WCGC may generate a using the provided statistics, Na, Nb, and Ncvia the equation:

∝=Nc-NbNa+Nc-2⁢Nb.
The weighting coefficient, α, may be updated on the fly (e.g. adaptively), periodically, upon detection of a trigger, after receiving a predetermined number of error signals, or by other means not listed, and may be provided to the filter104(not shown).

Referring toFIG. 4, a system of adaptively combining waveforms is shown and is generally designated400. The system400can be another embodiment of the system100, and can include a noise statistics generator circuit301, a weighting coefficient generator circuit (WCGC)102, and a filter circuit104.

In some examples, a system can be configured to produce an output waveform,114, which can contain information from the two input signals, Y1110and Y2112. The amount of information provided to the output waveform by an input signal may depend on how noisy the signal is, that is it may depend on an amount of noise of the signal. The input signals Y1110and Y2112may be assigned different weights depending on an amount, characteristic, or measurement of noise in the respective signals.

Error signals e1106and e2108, corresponding to the noise in the input signals Y1110and Y2112, respectively, can be provided to the noise statistics generator301by error sources. The noise statistics generator301can generate noise statistics that may be provided to the WCGC102, which can determine the weighting coefficient α. The weighting coefficient can be applied to the input signals Y1110and Y2112via the filter circuit104, which may combine the weighted input signals into an output signal114. The output signal may be subsequently provided to a receiving circuit or other device.

Referring toFIG. 5, a system of adaptively combining waveforms is shown and is generally designated500. The system500can be another embodiment of systems100and400. In some systems, such as the example embodiment100, the noise statistics generator may be included in the WCGC102. For instance, in an example embodiment500, the system can include a WCGC102, which may further include a multiplier302coupled to a filter (e.g. a low pass filter)310, and to the squaring multipliers304and306. The squaring multipliers304and306may be coupled to the low pass filters308and312, respectively. The filters308,310, and312, which may be infinite impulse response (IIR) filters, moving average filters, or other filters, may be coupled to a coefficient generator510. The coefficient generator510may be coupled to the multipliers504and508, which, in turn, are coupled to a waveform combiner (e.g. an adder, subtractor, etc.)506.

The WCGC102can generate a weighting coefficient based on received error signals e1106and e2108. The WCGC102can provide the weighting coefficient, α, to the filter circuit104. The filter circuit may apply α and 1−α to inputs signals Y1110and Y2112, respectively, to produce weighted input signals. The weighted input signals can be combined via the waveform combiner506, to produce an output signal114.

Referring toFIG. 6, a flowchart of a method of adaptively combining waveforms is shown and is generally designated600. The method600can be an embodiment of the systems100,200,300,400, and500. The system may receive error signals (e.g. e1106and e2108) from error sources and input signals (e.g. Y1110and Y2112) from input sources, at602. Noise statistics may be determined by the noise statistic generator301, at604, although in some embodiments, the noise statistics generator301may not be included. Step604may be skipped in configurations where the WCGC102generates the weighting coefficient without noise statistics.

The weighting coefficient, α, may be determined at606and provided to the filter circuit104where it can be applied to the input waveforms at608. The input waveforms may be combined by a waveform combiner506(e.g. an adder, subtractor, etc.), and the combined waveform, Y114, can be provided to a receiving circuit at612. The process may repeat at602.

All steps listed for the method may600be applied to systems that receive three or more input signals, three or more error signals, or any combination thereof. Components and circuits used to perform the operations in the method may be discrete, integrated into a system on chip (SOC), or other circuits. Further the steps can be carried out in a processor (e.g. a digital signal processor), implemented in software, implemented via firmware, or by other means.

Referring toFIG. 7, a system of adaptively combining waveforms is shown and is generally designated700. The system700provides a functional block diagram of a data storage device (DSD). The DSD101can optionally connect to be removable from a host device102, which can be a device or system having stored data, such as a desktop computer, a laptop computer, a server, a digital video recorder, a photocopier, a telephone, a music player, other electronic devices or systems not listed, or any combination thereof. The data storage device701can communicate with the host device702via the hardware/firmware based host interface circuit704that may include a connector (not shown) that allows the DSD701to be physically connected and disconnected from the host702.

The DSD701can include an adaptive filter (AF)750, which, in certain embodiments, may include the AF100as described with respect toFIG. 1. The DSD701can also include a programmable controller706with associated memory708, and processor710. The programmable controller706may be part of a system on chip (SOC). A buffer714may temporarily store user data during read and write operations and can include a command queue (CQ)715. The command queue (CQ)715may be volatile or non-volatile memory, and can temporarily store multiple access operations pending execution. The (R/W) channel716can encode data during write operations and reconstruct user data during read operations. The preamplifier/driver circuits,718and717, can apply write currents to the head(s)719. A servo control circuit720may use servo data from a servo sector to provide the appropriate current to the voice coil motor724to position the head(s)719over disc(s)709. The controller706can communicate with a processor722to move the head(s)719to the desired locations (e.g. tracks) on the disc(s)709during execution of various pending commands in the command queue715or during other operations. The channel configurations and systems described herein may be implemented in the R/W channel716as hardware circuits, software, memory, or any combination thereof. The AF750may be a separate circuit, separate chip, included in a system on chip (SOC), or may be integrated into a channel circuit such as the R/W channel716. The AF750can provide an output signal to circuits such as the R/W channel716.

Data storage devices can be configured to read data from a track on the disc709with multiple read sensors. Two or more read sensors (not shown) may be located at different locations in the head719, allowing the DSD701to make several readings (e.g. one for each sensor) of the same data location during one revolution of the disc709. The sensors may each be coupled to a separate preamp, although in some embodiments, two or more sensors may be coupled to a single preamp. The example system700can have two sensors (not shown), each of which may be coupled to one of two included preamps, preamp one718and preamp two717. When the sensors are over a servo field, the controller706may prevent the signals from all but one of the sensors from reaching the R/W channel716via adjusting the settings in the AF750, or disabling functions in one or more circuits or sensors upstream of the AF750. For example, the controller706may set the weighting coefficient to zero (or one), turn off a preamp output, disable the sensor, etc.

The R/W channel716may only receive one read signal; the read signals from the sensors can be combined into one signal via the adaptive filter (AF)750. The sensors can provide the preamps717and718with read signal. The preamps may, in turn, condition the read signals and provide them to the AF750via other circuits, such as front end circuits (not shown), filters (not shown), or other circuits. The sensors may couple noise caused by media noise, vibrations, mechanical stress, sensor offsets, and so forth, into the read signals provided to the preamps717and718. To minimize the effects of the noise on the output signal114provided to the R/W channel716by the AF750, the AF750may apply a weighting factor to the signals provided by the preamps718and717(e.g. input signals Y1110and Y2112, respectively). Error signals, which may be generated by loop detectors (not shown) and error signal generators (not shown), are discussed later in this document.

The AF750can be used in different data storage systems, such as shingled magnetic recording (SMR) systems, heat-assisted magnetic recording (HAMR) systems, bit patterned media systems, and so forth. The AF750can be configured to receive and combine signals from three or more sensors. In some embodiments, a DSD701may use a two dimension magnetic recording (TDMR) system whereby two or more tracks may be read concurrently. TDMR systems may position a first sensor over a first track, a second sensor over a second track, and so forth. When multiple read sensor systems are integrated with or otherwise combined with TDMR systems, the AF750may be used; one AF750may be coupled to the multiple sensors of each track, although in other examples, there may be one AF750circuit performing separate combining operations for each track.

Referring toFIG. 8, a system of adaptively combining waveforms is shown and is generally designated800. The system800may be an embodiment of the systems100and700. An adaptive filter100may be incorporated into data storage devices to combine signals from two or more sensors. In the example embodiment800, a data storage device may include a multiple read system including two sensors, sensor one814and sensor two816, which can be coupled to preamp one718and preamp two717, respectively. The preamps717and718may be coupled to front end circuits804and808, respectively. The front end circuits804and808, which may include phase locked loops (PLLs), automatic gain control (AGC) circuits, data converters, filters, or other circuits or any combination thereof, may be coupled to finite impulse response (FIR) filters808and810, respectively. The FIR filters806and810may be coupled to the AF100, and to loop detectors802and812, which may, in turn, be coupled to the front end circuits804and808.

Sensors, which can include transducers,814and816may collect information from data storage media by detecting magnetic fields and producing corresponding electrical signals. The sensor signals can be provided to one or more preamp circuits718and717, where they can be buffered, amplified, or otherwise conditions before arriving at the front end circuits804and808.

The front end circuits804and808can condition the read signals. In some systems, the sensors may be located several bit cell widths apart, which may result in read data from the sensors being out of sync. PLLs in the front end circuits804and808may realign, or sync, the read signals from the different sensors. The front end circuits804and808can provide the read signals to FIR filters806and810, respectively.

The FIR filters806and810can shape the read signal to be compatible with the AF100. The FIR filters806and810provide input signals Y1110and Y2112, respectively, to the AF100and to the loop detectors802and812. The loop detectors802and812may provide estimates of the input signals Y1110and Y2112to error generators (not shown). In some embodiments, the input signals Y1110and Y2112may contain binary data. The error generators, which can be integrated into the loop detectors802and812, may generate error signals e1106and e2108based on an FIR filter output, and may update the error signals at a slower rate than the input signal frequency. For example, loop detectors802and812may update the error signals e1106and e2108once for every N bits of input signal data. The loop detectors802and812can provide the error signals e1106and e2108to the front end circuits804and808, and to the FIR filter circuits806and810. The front end circuits804and808, and the FIR filter circuits806and810, may use the error signals e1106and e2108to update settings in response to sensor and other data. The loop detectors802and812can provide the error signals e1106and e2108to the WCGC102.

Referring toFIG. 9, a system of adaptively combining waveforms is shown and is generally designated900. The system900may be an embodiment of the systems100,700, and800, and may include a single loop detector802. A single loop detector may be chosen as a configuration because it would use less area of a silicon chip than two loop detectors, thereby potentially saving cost. Furthermore, the system900can include sensors one and two (814and816), preamps one and two (718and717), front end circuits one and two (804and808), and FIR filters one and two (806and810). The system900may also include error generation circuits one and two (902and904) and an adaptive filter AF100having a WCGC102and a filter circuit104.

The AF100can provide an output signal Y114to a receiving circuit, such as an R/W channel716, and to the loop detector (detector)802. The loop detector802can provide estimates of the input signals, Y1110and Y2112, to error signal generators902and904. The error signal generators902and904can generate error signals e1106and e2108, based on the loop detector802signals and FIR filter806and810signals. For example, an error signal generator can produce an error signal by subtracting a loop detector output signal from the output signal of an FIR filter. Error signals e1106and e2108can update front ends804and808, and FIR filters806and810. The signals may also be inputted to the WCGC102.

The illustrations, examples, and embodiments described herein are intended to provide a general understanding of the structure of various embodiments. The illustrations are not intended to serve as a complete description of all of the elements and features of apparatus and systems that utilize the structures or methods described herein. Many other embodiments may be apparent to those of skill in the art upon reviewing the disclosure. Other embodiments may be utilized and derived from the disclosure, such that structural and logical substitutions and changes may be made without departing from the scope of the disclosure. For example, the figures and above description provide examples of architecture and voltages that may be varied, such as for design requirements of a system. Moreover, although specific embodiments have been illustrated and described herein, it should be appreciated that any subsequent arrangement designed to achieve the same or similar purpose may be substituted for the specific embodiments shown.