Estimation of X in Gaussian noise

Given $\textbf{x}=[x_1 x_2 ... x_n]^T$ where $\textbf{x} \in \{ 0, a_1, a_2, a_3\}^n, a_i \in \mathbb{C}$ and $\textbf{z} = \{z_1 z_2,...,z_n \}$ where $z_i \textbf{~} N(0,\sigma^2)$ is a Complex Gaussian RV with mean $0$ and variance $\sigma^2$. Suppose we observe $\textbf{y}$

$\textbf{y} = H\textbf{x}+\textbf{z}$

where $H$ is known and its elements are independent complex Gaussian with mean 0 and variance 1 in $\mathbb{C}$ i.e. complex numbers. How can I estimate $\textbf{x}$ observing $\textbf{y}$ when I only want to know whether $x_i$ is zero or non-zero? i.e. I don't want to distinguish between $a_1, a_2, a_3$ and only want to estimate whether $x_i$ was zero or non_zero? Is there any iterative way of finding this out?

Thanks

-