I have a vague and probably rather naive question on error correcting codes.
Suppose we want to encode binary vectors of length $k$ as binary vectors of length $n$ in such a way that differences of input vectors are amplified. If $E$ is the encoding function and $D$, let's suppose we would like to have a bound of the form $$ \| E(x)-E(y)\| \ge 100 \| x-y\|,$$ at least for small $\|x-y\|$? This is clearly a desirable feature as it increases the chance of decoding the correct signal, even after a noisy transmission.
I am curious how good a linear encoding with threshold would be at this. So let's say we have some generic matrix $A$ and we consider an encoding function $E$ of the form $$ E(x) := H(Ax-l),$$ where $Ax$ is the matrix-vector product, $l$ is some yet to determine scalar and $H$ is the Heaviside function applied entry wise. In other words, $$E(x)_i = \begin{cases} 1&\sum_j A_{ij}x_j\ge l,\\ 0&\sum_j A_{ij}x_j< l. \end{cases}$$
How good would such a function be at amplifying small differences?
My intuition would be that if $A$ is completely random, then $Ax$ should be roughly be uniformly distributed on some sphere in such a way that the correlation of $Ax$ and $Ay$ for $x\ne y$ is somewhat small.
I found nothing relevant so far, but most likely things like this have been studied. Any references highly appreciated. In particular, I would be interested in understanding how close such random linear encodings can come to the Shannon bound?