Quantization Error and Artifact Reduction (QEAR) algorithm (noise reduction)
White Paper
Digital signals often have discernible quantization error as well as other error artifacts which are together considered static, or pseudo-random noise. If we consider the DFT profile of an otherwise perfectly quarantined and artifact-free signal s(n) with only one bit of error, and located at (n=0), the discrete difference of this error bit (represented by a upward spike of magnitude unity followed immediately by a downward spike of magnitude unity), has a Gaussian frequency profile, with its peak located at half the sampling frequency (fs/2).
We can further view the discrete difference of the net error signal function de(n)=e(n+1)-e(n) as being comprised of superposition of such centered Gaussian functions, only with the elements having magnitude and phase corrections to account for the size and time shifting of each discrete difference error bit. By inspection, this net frequency domain function also has a pseudo-Gaussian DFT with its peak around half the sampling frequency.
If the discrete difference error signal, de(n), is processed by the restorative up-sampling (RUP) algorithm, the Gaussian shape is preserved, but, to our advantage, the center-point of the Gaussian distribution is shifted upwards to half the newly increased sampling frequency. This concentrates the spectral weight of this noise around higher frequencies. Therefore, once a noise-laden signal is up-sampled using restorative up-sampling to the desired higher sampling frequency (fd), an interesting possibility presents itself.
Again, in the newly up-sampled signal, the net spectral weight of the error signal (de(n)) is concentrated around higher and higher frequencies, whereas the frequency profile of a non-error signal is left "where it's at." This fact combined with a look at the shape of Gaussian curves, in general, suggests that the magnitude of the frequency components of our discrete difference error at lower frequencies, where our pure signal remains, is reduced as the signal is up-sampled using restorative up-sampling.
Taking these facts in hand, we see the possibility of using RUP to over-sample the discrete difference of a signal containing error, and then applying a low-pass digital filter with roll-off at (fd) to significantly reduce the quantization error and artifact noise, the bulk of whose spectral weight now lies well above the desired sampling frequency. Following this we can perform numerical integration to undo the discrete difference operation, and then down-sample the over-sampled signal to the desired sampling frequency (fd).
A high-pass filter is included to handle low-frequency noise from the numerical integration. We speculate that the RUP function treats pure signal differently than noise because noise seems to be built up piecemeal in the time-domain, whereas pure signal is composed of frequency-domain "tones," but this just qualifies as a guess. If our reasoning and logic for this and supporting pages proves correct, a bare-bones MATLAB rendering of this proposed algorithm is soon to appear on the last page of the website, along with demonstration audio clips on this page.
As parameters for the {qear.m} MATLAB file, we have the input data (x), the number of "passes" or times the algorithm is run (p), and the {rup.m} parameters: (v), for number of frequency doublings, and (f), for number of forecasting loops run inside {rup.m}.
For test files, please find two audio clips below, File "E" and File "F." File "E" is our input to the {qear.m} MATLAB file, and contains a sample from the beginning of "Pachelbel's Canon" with an equal RMS value of pseudo-random noise added. File "F" is the output of running this input through {qear.m} with one loop set (p=1) and internal {rup.m} parameters (v=2) and (f=4). If successful, the same clip will be heard, only with a substantially reduced noise level.