The present disclosure generally relates to noise detection and mitigation.
Noise refers to any unwanted aspects of a signal. For example, when a signal is transmitted and then recovered at a receiver, the originally transmitted signal may include unwanted signals, such as interference, thermal noise, impulse noise, as well as other types of interference, which may be considered noise as well. Impulse noise is a type of noise characterized by a transient, a spike, or a burst. Impulse noise may be caused by electrical sources, such as lightning, electric motors, power switches, domestic lights, thermostats, gas lighters, car ignition systems, and anything that creates an abrupt change of current in a conductor.
An antenna of a high definition television receiver may receive a high definition signal broadcast over-the-air. The received signal may include impulse noise caused by lightning, motors (e.g., a vacuum cleaner), and the like. The impulse noise corrupts the received signal introducing errors—resulting thus in errors in the decoded signal. From the perspective of a user of a high definition television receiver, these errors caused by impulse noise may result in degraded picture and sound quality. More worrisome, the user may, because of the degraded picture quality, regret purchasing the high definition television receiver. Therefore, there is a continuing need to improve the quality of the received signal by mitigating impulse noise.
The subject matter disclosed herein provides methods and apparatus, including computer program products, for detecting and mitigating noise including impulse noise.
Methods and apparatus, including computer program products, are provided for detecting noise, such as impulse noise. In one aspect, there is provided a noise suppressor to determine a predicted value for a sample in a bit stream, the predicted value determined without regard to an average of the bit stream. The noise suppressor may also detect whether impulse noise is present based on a difference between the predicted value and the sample. The noise suppressor may also identify the sample as impulse noise to enable the sample to be replaced with another value.
Variations may include one or more of the following features. The predicted value may be determined using a spline interpolation. The spline interpolation may use a first path for one or more even samples in the bit stream and a second path for one or more odd samples in the bit stream. The first and second paths may be recombined after a determination is made regarding whether impulse noise is present in the bit stream. The first path may process the one or more even samples in the bit steam by down sampling and interpolating the bit steam and determine the difference using the predicted sample obtained from the first path and the sample obtained from the second path. The detection of whether impulse noise is present may be based on whether the difference between the predicted sample and the sample exceeds a threshold. A threshold of 0.1 of the difference may be used. The other value may be determined as the predicted value, so that the sample may be replaced (e.g., inserted) with the determined value.
The subject matter described herein may be implemented to realize the advantages of reducing and mitigating impulse noise associated with receivers, such as televisions, radios, and the like.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive. Further features and/or variations may be provided in addition to those set forth herein. For example, the implementations described herein may be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several further features disclosed below in the detailed description.
In the drawings,
a-b depict plots of predicted sample values and actual sample values; and
Like labels are used to refer to same or similar items in the drawings.
Analog-to-digital converter/automatic gain control module 110 may receive a signal, such as a radio frequency (RF) signal from an antenna or an intermediate frequency (IF) signal down converted (or tuned) from an antenna. An analog-to-digital converter included within module 110 may convert the received signal to a bit stream (also referred to as a “digital data stream,” “digital data,” or, simply, a “signal”).
Analog-to-digital converter/automatic gain control module 110 may also include an automatic gain control feature for controlling the magnitude of the bit stream by providing gain. Automatic gain control controls the gain of an amplifier, so that the magnitude (e.g., voltage level) of the bit stream output by analog-to-digital converter/automatic gain control module 110 signal remains relatively stable for varying levels of input receive signal. The output of analog-to-digital converter/automatic gain control module 110 is a bit stream, such as a sequence of ones and zeroes (e.g., 10110), a time varying data signal having varying voltage levels, and the like.
The output of analog-to-digital converter/automatic gain control module 110 may include impulse noise. For example, if the electric motor of a vacuum cleaner is near a high definition digital television receiver, the output of analog-to-digital converter/automatic gain control module 110 may include impulse noise. Impulse noise degrades the quality of the bit stream. Therefore, when the bit stream including impulse noise is decoded into audio and video, the decoded audio and video information includes noise—affecting the quality of the decoded audio and video information.
Impulse noise suppressor 120 receives the bit stream and processes the bit stream to detect impulse noise and then suppress (i.e., mitigate), in whole or in part, the impulse noise when that noise is present in the bit stream.
In one implementation, impulse noise suppressor 120 performs the process 200 depicted at
At 210, impulse noise suppressor 120 receives a bit stream and predicts a sample value from the received bit stream (referred to as the “actual sample values”). To predict a sample value (referred to as a “predicted sample value”) from the actual sample value, impulse noise suppressor 120 may use one or more of the following approaches: a bandpass filter may be used in the case of intermediate frequency (IF) signals (e.g., usually input to analog-to-digital converter); a lowpass filter may be used for baseband input (e.g., from silicon tuners); and analog characteristics of the signal may be use as well.
To use a low pass filter to determine the predicted sample value, the low pass filter averages one or more of values from actual sample values to provide a predicted sample value. Although a low pass filter may be used as a predictor, another approach, an interpolator, such as a spline interpolator, may offer enhanced results when compared to using a low pass filter alone.
Interpolation generally refers to constructing predicted sample values from one or more actual sample values. There are a variety of ways of performing an interpolation, such as a linear interpolation (e.g., using linear functions), a spline interpolation, a rational interpolation (e.g., using interpolation by rational functions), a trigonometric interpolation (e.g., using interpolation by trigonometric polynomials, such as a discrete Fourier transform or a wavelet), a Whittaker-Shannon interpolation, and a multivariate interpolation (e.g., bilinear, bicubic, and trilinear) amongst others.
Spline interpolation uses low-degree polynomials as the interpolant rather than the linear function used with linear interpolation. In one implementation, a spline interpolation is used as described further below with respect to
Regardless of which interpolation approach is used, impulse noise suppressor 120 uses one or more actual sample values to determine a predicted sample value.
At 220, impulse noise suppressor 120 detects whether impulse noise is present in the bit stream based on the predicted sample value and the actual sample value. To detect whether impulse noise is present, impulse noise suppressor 120 may determine a difference between the predicted sample value and the actual sample value. When the difference exceeds a threshold, the actual sample value is likely to be impulse noise. The threshold may be implemented in a variety of ways including as a predetermined threshold value determined heuristically, a threshold value set as 1/10 the value of the overall range of actual sample values, and a threshold value set at 1 standard deviation from the mean power.
At 230, if the difference does not exceed a threshold, the actual sample value is not likely to be impulse noise, so impulse noise suppressor 120 may resume processing at 210 of
At 230-240, if the difference does exceed a threshold, the actual sample value is likely to be impulse noise. When this is the case, impulse noise suppressor 120 determines an adjusted sample value. The adjusted sample value is another value used to replace (e.g., adjust, insert, etc.) the actual sample value in the bit stream considered likely to be impulse noise. For example, impulse noise suppressor 120 may determine that an actual sample value is likely to be impulse noise. Impulse noise suppressor 120 may then determine an adjusted sample value. The adjusted sample value may be determined using one or more of the following: a predicted sample value determined at 210, an average of one or more actual sample values, and a predetermined value.
At 250, the determined adjusted sample value is then used instead of the actual sample value. For example, at 250, impulse noise suppressor 120 may replace the actual sample value with the adjusted sample value.
Impulse noise suppressor 120 may repeat process 200 for one or more values in the bit stream received by impulse noise suppressor 120. The output bit stream of impulse noise suppressor 120 may, as a consequence of process 200, have fewer values corrupted by impulse noise, when compared to other approaches.
Referring to
At 220, impulse noise suppressor 120 detects whether actual sample value 312i is impulse noise by comparing the difference between actual sample value 312i and predicted sample value 310b determined based on spline interpolation. If the difference exceeds a threshold, impulse noise suppressor 120 determines that actual sample value 312i is impulse noise.
At 230-240, if impulse noise suppressor 120 determines that the difference exceeds a threshold, impulse noise suppressor 120 determines an adjusted value for actual sample 312i. In the case of the example of
At 250, impulse noise suppressor 120 may use the predicted sample value 310b as the adjusted value and replace 312i with the predicted sample value of 310b.
Returning to
The first path is down sampled (e.g., every other sample value is discarded or ignored) by down sample module 410a. Interpolator module 412a uses splines to interpolate the down sampled bit stream provided by down sample module 410a. The difference and threshold module 414a then determines the difference between the output of interpolator 412a and output of down sample module 410b. The output of interpolator 412a represents a predicted sample value, while the output 440a of down sample module 410b represents an actual sample value, although delayed by delay module 408. If difference and threshold module 414a determines that the difference exceeds a threshold, difference and threshold module 414a replaces the actual sample value in the bit stream with an adjusted value (e.g., a predetermined value, the predicted sample value, and the like).
Meanwhile, the second path is down sampled (e.g., every other sample value is discarded or ignored) by down sample module 410b. Interpolator module 412b uses splines to interpolate the down sampled bit stream provided by down sample module 410b. The difference and threshold module 414b then determines the difference between the output of interpolator 412b and output of down sample module 410a. The output of interpolator 412b represents a predicted sample value, while the output 440b of down sample module 410a represents an actual sample value. If difference and threshold module 414b determines that the difference exceeds a threshold, difference and threshold module 414b replaces the actual sample value in the bit stream with an adjusted value (e.g., a predetermined value, the predicted sample value, and the like).
The interpolators 412a and 412b may be implemented using a simple filter-based spline interpolation technique with very low filter orders that can be realized in hardware, although software and firmware implementations may be used as well. Simple algorithms for filter-based spline interpolations are described in “B-Spline Signal Processing: Part I—Theory,” M. Unser et al., IEEE Trans. Signal Processing, vol. 41, pp. 821-833, February 1993, and “B-Spline Signal Processing: Part 2—Design and Applications,” M. Unser et al., IEEE Trans. Signal Processing, vol. 41, pp. 834-848, February 1993, the contents of both of which are hereby incorporate herein by reference. Moreover, the spline interpolation filter coefficients may be programmable, so that signals with different characteristics (such as VSB, QAM, and OFDM) may be processed with the same hardware.
In some implementations, impulse noise suppressor 120 is associated with (e.g., includes) an application programming interface (API), which can be called by a device, such as a user interface, computer, and the like. For example, the device may call (by sending a message or other form of indication) the API of impulse noise suppressor 120 to initiate detection and mitigation of impulse noise by impulse noise suppressor 120 and to disable detection and mitigation of impulse noise by impulse noise suppressor 120.
As noted, the subject matter disclosed herein may be implemented to detect and mitigate noise including impulse noise. The subject matter disclosed herein may also be with a data stream that has been over sampled, with respect to the Nyquist rate, although the subject matter described herein may also be used in non-over sampled bit streams as well. When a signal is over sampled with an analog-to-digital converter at a rate higher than the Nyquist rate, there may be correlation between neighboring samples in the bit steam. This correlation may be used to detect the presence of impulse noise by, as described above, predicting a sample value from adjacent sample values by applying a smoothness constraint (e.g., spline interpolation); detecting impulse noise by comparing the difference between the actual sample value and the predicted sample value; and then applying a threshold.
Moreover, although the above describes using impulse noise suppressor 120 in the context of a receiver (and, more particularly, in the context of a high definition television receiver), the implementations described above may be used in any environment including, for example, a radio, a digital satellite radio, a mobile wireless device (e.g., a mobile phone), wireless-enabled personal digital assistants (e.g., Blackberries), home media players (e.g., Slingbox), GPS receivers, digital ship-to-shore communication links, and the like. Furthermore, although the above implementations are described within the context of impulse noise, the implementations described herein may also be used to detect and/or mitigate, in whole or in part, other forms of noise as well. In addition, to simplify the explanation of the features of the subject matter described herein,
The systems and methods disclosed herein may be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
The foregoing description is intended to illustrate but not to limit the scope of the invention, which is defined by the scope of the appended claims. Other embodiments are within the scope of the following claims.