how to compress a 1D sampled signal

161 Views Asked by At

Assume you have a 1D function f(x) that you would like to sample and then reconstruct. What are some techniques of sampling that function with the fewest samples but to still get close to reconstructing the signal (exact reconstruction is not required, but some sort of tunable parameter on the quality of reconstruction would be nice)

Assume that the function is bounded in a domain $x \in (a,b)$ and that $f(x)$ goes to zero at the boundaries.

An obvious way of doing this would be to sample at some even interval $\Delta x$ and then reconstruct the signal through some interpolation scheme. The tunable parameter here would be the width of the sample interval. Another technique would be a Fourier Series where the tunable parameter would be how many terms you keep in the series.

I'm looking for other techniques that might work better than those described. Thanks!

1

There are 1 best solutions below

2
On

In mathematical terms, you're asking for a way to approximate a real-valued function $f(x)$ by some other function $g(x)$ that's defined by some (small) set of parameters that can be computed from values (samples) of $f$.

To do this optimally, it's important to know something about $f$; for example, is it bounded, continuous, smooth, etc.

If you don't know much about $f$, then one very good general-purpose approximation tool is a package called chebfun. It approximates using polynomials (or piecewise polynomials, sometimes). Some examples of 1D approximations are shown here.

The Weierstrass theorem tells us (roughly) that approximations of continuous functions by polynomials can be made as good as you like, and Bernstein's proof of this theorem actually tells us how to construct the approximations. However, in practice, the Bernstein technique doesn't work very well. Much better techniques are used in chebfun.

As your "tuning" parameter, you can either use the degree of the polynomial(s), or some measure of the error between $f$ and $g$.