Restorative Up-Sampling Discussion

Our Restorative Up-Sampling algorithm (RUP) is embodied in the MATLAB file {rup.m}, which also makes use of the sub-routines {forksub.m} and {spoon.m}.

This algorithm may be called 'alchemical' in that it aims to restore the 'gold' of lost high-frequency components in a severely under-sampled signal, while, at the same time, purifying the signal of the 'dross' of aliasing noise. Restorative Up-sampling may have further applications in fields like data compression and "unpacking," just to name one idea that occurs off-hand. It lays out the (N-point) time-domain data around the unit-circle as if it were a frequency-domain representation.

Then, the algorithm does proceed with taking an inverse DFT of this representation and uses {forksub.m} to forecast its half-length real and imaginary components out to a double-half length rendering. Following this, a full inverse-DFT is reconstructed and a DFT operation is done to "undo" the inverse DFT which preceded the forecasting. Then, [(2N-1)-points] are harvested, to yield our doubled sampling frequency signal with high-frequency components restored and previous aliasing undone.

We believe that our restorative up-sampling algorithm assumes a time repeating signal, which is a distortion. Other near non-limited variants of restorative up-sampling might be had by Fourier forecasting the signal well beyond the "area of concern" (both before and after), followed by restorative up-sampling and signal trimming back to the initial "area of concern." One interesting example could also be had by "zero-padding" the signal both before and after, and then restorative up-sampling this zero-padded version before trimming on both sides back to the initial "signal proper."