Project

Signal reconstruction notes

· active · Python, NumPy, PyTorch

Abstract diagram of two overlapping waveforms sampled on a quiet grid.
Sample hero graphic. Replace this SVG when a project has real media.

This is a public featured fixture used to check project pages, optional hero media, and homepage placement. It is sample writing, not a claim about shipped work.

Problem

Start with a known sensing matrix ARm×nA \in \R^{m \times n} with mnm \ll n, and noisy observations

y=Ax+ε,εN(0,σ2I).(1)y = A x^\star + \varepsilon, \qquad \varepsilon \sim \mathcal{N}(0, \sigma^2 I). \tag{1}

The unknown xx^\star is assumed sparse. A first estimator is basis-pursuit denoise,

x^=arg minx12yAx2+λx1.(2)\hat x = \argmin_{x} \tfrac{1}{2}\norm{y - Ax}^2 + \lambda \norm{x}_1. \tag{2}

Each numbered display is its own $$ block with one \label{...}. In prose, \eqref{eq:obs} and \eqref{eq:lasso} become links to those tags: the recovery in (2) is written directly in terms of the measurements from (1). Use \ref{eq:lasso} if you want the bare number 2 without parentheses.

Approach

ISTA applies a gradient step on the least-squares term in (2), then a soft-threshold. The two updates are one numbered block (aligned inside $$), still a single \label:

zxtA(Axy)xproxtλ1(z).(3)\begin{aligned} z &\leftarrow x - t A^\top(Ax - y) \\ x &\leftarrow \operatorname{prox}_{t\lambda\lVert\cdot\rVert_1}(z). \end{aligned} \tag{3}

Relative reconstruction error against the xx^\star that generated (1) is

e(x)=xxx.(4)e(x) = \frac{\norm{x - x^\star}}{\norm{x^\star}}. \tag{4}

The implementation splits into three stages:

  1. Generate a sparse ground-truth vector and a Gaussian sensing matrix, i.e. a draw from (1).
  2. Recover with the ISTA map (3), then with a short unrolled network when the same operator is reused.
  3. Report (4) and support Hamming distance against xx^\star.
def ista_step(x, y, A, lam, t):
    grad = A.T @ (A @ x - y)
    z = x - t * grad
    return np.sign(z) * np.maximum(np.abs(z) - t * lam, 0.0)

The unrolled variant keeps AA fixed and learns step sizes. That is useful when the same operator is applied to many independent observations, and it stays honest about what is learned: a few scalars, not a new sensing model.

What to keep on the page

A project page in this site should read like the public record of the work: problem, method, result, and the limits of the result. Hero media is optional. Repository and demo links are optional. This fixture includes tech tags and a static SVG so the card and the long-form page can share one visual system without requiring a GIF.

If a later write-up needs a diagram that KaTeX cannot express (TikZ, pgfplots, a custom animation), pre-render it and give it useful alternative text. Do not put essential information only in motion.

Numbered references are documented in docs/authoring.md. KaTeX itself has no \label/\eqref; this site adds them at build time, one label per display equation, numbered in document order.