0
$\begingroup$

I have a vector such that $r \in \mathbb{C}^{N \times 1}$, $r = h*x$, where $*$ denotes the circular convolution between the channel $h$ whose length is $L$, in our case $L = 4$; $h = [h_{0}, h_{1}, h_{2}, h_{3}]$ and the vector $x \in \mathbb{C}^{N \times 1}$. Therefore, $r$ can be written as:

\begin{equation} \begin{bmatrix} r_1 \\ r_2 \\ r_3 \\ \vdots \\ r_{N-4} \\ r_{N-3} \\ r_{N-2} \\ r_{N-1} \\ r_N \\ \end{bmatrix} = \begin{bmatrix} h_0 & 0 & 0 & \cdots & h_3 & h_2 & h_1 \\ h_1 & h_0 & 0 & \cdots & 0 & h_3 & h_2 \\ h_2 & h_1 & h_0 & \cdots & 0 & 0 & h_3 \\ h_3 & h_2 & h_1 & h_0 & \cdots & 0 & 0 \\ 0 & h_3 & h_2 & h_1 & h_0 & \cdots & 0 \\ 0 & 0 & h_3 & h_2 & h_1 & h_0 & \cdots \\ \vdots & \ddots & \ddots & \ddots & \ddots & \ddots & \ddots \\ 0 & \cdots & 0 & h_3 & h_2 & h_1 & h_0 \\ \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \\ \vdots \\ x_{N-4} \\ x_{N-3} \\ x_{N-2} \\ x_{N-1} \\ x_N \\ \end{bmatrix} \tag{1} \end{equation}

Assuming the last $M$ elements of $x$ are well known $(M >> L)$, in our case the well-known elements of $x$ are, $x_{N-4}, x_{N-3}, x_{N-2}, x_{N-1}, x_{N}$, so by taking the $FFT$ for the vector $r$ we get:

\begin{equation} \mathbf{R} = \mathbf{F} \times \mathbf{r} \tag{2} \end{equation}

Also some values of the vector $\mathbf{R}$ are well known, only few values that are fewer than the length of the channel $h$. I mean few values of $\mathbf{R}$ are well known when the convolution matrix is $I$ (let's call them $\mathbf{R_{know}}$). My concern, is it possible to find the vector $h$ using the well known vector in $x$ : $x_{N-4}, x_{N-3}, x_{N-2}, x_{N-1}, x_{N}$, and the values known from the vector $\mathbf{R_{know}}$ ?

For example, one of the ways I think of is that, the last $M$ well-known values from the vector $\mathbf{r}$ in $(1)$ are the results of multiplication between the well-known values in $x$ with the last $M$ rows of the convolution matrix with size $M \times N$. However, resulted values of that multiplication includes such interference coming from the previous unknown values of the vector $x$. So, what I can estimate is a vector $\mathbf{q} \in \mathbb{C}^{L \times 1}$ using the last $M$ elements of $\mathbf{r}$ such that $\mathbf{Q_p} \mathbf{R_p} = \mathbf{R_{know}}$, where $\mathbf{Q^{-1}}$ is a diagonal matrix with its diagonal elements are the FFT of the $\mathbf{q}$ and $\mathbf{Q_p}$ and $ \mathbf{R_p}$ are the $p^\text{th}$ locations of $\mathbf{Q}$ and well-known elements of $\mathbf{R}$ (we called them $\mathbf{R_{know}}$).

NP

The values of $ \mathbf{R_{know}}$ mentioned above means some values out of the vector $\mathbf{R}$ that are located at the $\text{p}^{\text{th}}$ locations, i.e., the values located at locations 1, 5, 8, 18, 23 from the vector $\mathbf{R}$. Normally, if the length of the known values in $\mathbf{R}$ are longer than $L$, one can recover $h$ using the frequency domain, but in our case we assume that $ \mathbf{R_{know} < L}$

$\endgroup$
4
  • $\begingroup$ You're switching between $\mathbf R$ and $\mathbf {R_{know}}$ without clear definition. Do you mean that $\mathbf {R_{know}}$ is the signal that results when $h = \begin{bmatrix} 1 & 0 & 0 & \cdots \end{bmatrix}$? If you're using $\mathbf {R_{know}}$, which is derived from a different $\vec h$, how would you know the $h$ you're trying to find? $\endgroup$ Commented Dec 25, 2024 at 18:09
  • $\begingroup$ If you know the last $2N-1$ values of $\mathbf x$ and the last $N$ values of $\mathbf r$ then this is just straightforward linear algebra: you have $2N - 1$ unknowns (the last $N$ values in $\mathbf r$ and the $N-1$ values in $\mathbf x$ that precede the ones you know). Then you either know the answer, or you have a clearly singular matrix and you know you don't know the answer. $\endgroup$ Commented Dec 25, 2024 at 18:13
  • $\begingroup$ @TimWescott I will add more details about the $\mathbf{R_{known}}$ to the question. $\mathbf{R_{known}}$ are some values out of the vector $\mathbf{R}$ that are previously known, for example the values at $p^{\text{th}}$ locations, i.e., $1, 5, 8, 18, 24$ in the vector $\mathbf{R}$. I have that assumption because if $h$ is correctly recovered, the point-wise multiplication in frequency domain must hold which means $\mathbf{Q_{p}} \times \mathbf{R_{p}}$ must be hold. Therefore, in case of $\mathbf{R_{known}}$ is longer than the length of $h$, we can recover it in frequency domain. $\endgroup$ Commented Dec 26, 2024 at 2:57
  • $\begingroup$ For example, we can recover it using least square algorithm, but in our case we need to optimize the length of $\mathbf{R_{known}}$ and estimated the $h$ using the known values in $\mathbf{x}$ with that restriction in the frequency domain that is $ \mathbf{Q_p} \times \mathbf{R_p} = \mathbf{R_{known}}$. (2) You mean if we know the last $2L - 1$ values of the vector $\mathbf{x}$, right ? Yes I got it, but what's about if the known values in $\mathbf{x}$ are not of length $2L - 1$, and they are longer than $L$ but shorter than $2L - 1$ ? $\endgroup$ Commented Dec 26, 2024 at 3:14

1 Answer 1

1
$\begingroup$

Consider the ring of polynomials over the complex field modulo $z^N - 1$. Define the polynomials

$$ X(z) = \sum_{k=0}^{N-1} x_k , z^k \quad \text{and} \quad H(z) = \sum_{j=0}^{3} h_j , z^j. $$

Because the circular convolution $r = h * x$ of length $N$ corresponds exactly to the product

$$ R(z) \equiv H(z),X(z) ; (\mathrm{mod} ; z^N - 1), $$

we have

$$ R\left(e^{\tfrac{2\pi i , n}{N}}\right) = H\left(e^{\tfrac{2\pi i , n}{N}}\right),X\left(e^{\tfrac{2\pi i , n}{N}}\right). $$

Now, split $X(z)$ into two parts: the “known tail” of length $M \gg 4$ and the “unknown head.” Write

$$ X(z) = X_{\mathrm{head}}(z) + X_{\mathrm{tail}}(z), \quad X_{\mathrm{tail}}(z) = \sum_{k=N-M}^{N-1} x_k , z^k, $$

where $x_{N-4}, \dots, x_{N}$ are given. Define similarly

$$ R_{\mathrm{tail}}(z) = H(z),X_{\mathrm{tail}}(z) \quad (\mathrm{mod} ; z^N - 1). $$

In the time domain, $X_{\mathrm{tail}}(z)$ accounts for the last $M$ values of $x$, so the corresponding part of the circular convolution

$$ r_{\mathrm{tail}} = h * x_{\mathrm{tail}} $$

is completely determined by $h$ and those known entries. However, these known samples also “wrap around” index $k = 0$ because of the circular nature, causing interference with the unknown head. To decouple this rigorously, consider

$$ \Delta(z) = R(z) - R_{\mathrm{tail}}(z). $$

By construction,

$$ \Delta(z) \equiv H(z),X_{\mathrm{head}}(z) ; (\mathrm{mod} ; z^N - 1). $$

We do not know $X_{\mathrm{head}}(z)$ in full, but we do have partial frequency information of $R$. Specifically, if a small subset ${p_1, p_2, \dots} \subset {0, 1, \dots, N-1}$ is such that we know

$$ R\left(e^{\tfrac{2\pi i, p_\ell}{N}}\right), $$

then at each $z = e^{\tfrac{2\pi i, p_\ell}{N}}$,

$$ \Delta\left(e^{\tfrac{2\pi i, p_\ell}{N}}\right) = R\left(e^{\tfrac{2\pi i, p_\ell}{N}}\right) - H\left(e^{\tfrac{2\pi i, p_\ell}{N}}\right) , X_{\mathrm{tail}}\left(e^{\tfrac{2\pi i, p_\ell}{N}}\right). $$

Hence,

$$ \Delta\left(e^{\tfrac{2\pi i, p_\ell}{N}}\right) = H\left(e^{\tfrac{2\pi i, p_\ell}{N}}\right), X_{\mathrm{head}}\left(e^{\tfrac{2\pi i, p_\ell}{N}}\right). $$

Let us introduce an auxiliary polynomial

$$ Q(z) = \sum_{m=0}^{3} q_m , z^m $$

so that its discrete Fourier transform helps decouple the unknown head from the known tail. In particular, choose $q_m$ so that

$$ Q\left(e^{\tfrac{2\pi i , n}{N}}\right) = \begin{cases} \frac{1}{X_{\mathrm{tail}}\left(e^{\tfrac{2\pi i , n}{N}}\right)}, & \text{if } n \text{ is in the known set}, \ 0, & \text{otherwise}, \end{cases} $$

assuming $X_{\mathrm{tail}}\left(e^{\tfrac{2\pi i, n}{N}}\right) \neq 0$ in those frequencies. (Such a polynomial can be constructed via an interpolation argument in the ring $\mathbb{C}[z]/(z^N - 1)$, though higher-degree forms or partial approximations might be required in practice.) Then at each known frequency $\omega_{p_\ell}$,

$$ Q\left(\omega_{p_\ell}\right) , \Delta\left(\omega_{p_\ell}\right) = H\left(\omega_{p_\ell}\right) , \frac{X_{\mathrm{head}}\left(\omega_{p_\ell}\right)}{X_{\mathrm{tail}}\left(\omega_{p_\ell}\right)} , X_{\mathrm{tail}}\left(\omega_{p_\ell}\right) = H\left(\omega_{p_\ell}\right), X_{\mathrm{head}}\left(\omega_{p_\ell}\right). $$

But if $Q(\omega_{p_\ell})$ is chosen to zero out the unknown portion of $X_{\mathrm{head}}$ at other frequencies, we effectively isolate a small system of equations for $H(\omega_{p_\ell})$. Rewriting

$$ H(z) = h_0 + h_1, z + h_2, z^2 + h_3, z^3 $$

gives

$$ H\left(\omega_{p_\ell}\right) = h_0 + h_1, \omega_{p_\ell} + h_2, \omega_{p_\ell}^2 + h_3, \omega_{p_\ell}^3, \quad \omega_{p_\ell} = e^{\tfrac{2\pi i, p_\ell}{N}}. $$

So each known frequency $p_\ell$ supplies one polynomial relation in the four unknowns ${h_0, h_1, h_2, h_3}$. Even when the number of known frequency values is smaller than $4$, one can invoke additional constraints from the known tail in the time domain: for large enough $M$, the last $M$ samples of $r$ (each of which is a linear functional of $h_0, h_1, h_2, h_3$ via the known $x_k$) yield extra equations. For each $n = N - M, \dots, N - 1$, we have

$$ r_n = \sum_{j=0}^3 h_j , x_{(n - j) \bmod N}. $$

Since $x_{(n - j) \bmod N}$ is known in that index range, each of these is a linear constraint on ${h_0, h_1, h_2, h_3}$. Collecting all these linear equations, along with the transformed-domain relations involving $H(\omega_{p_\ell})$, forms a potentially overdetermined system. Solving that system in $\mathbb{C}$ determines a unique ${h_0, h_1, h_2, h_3}$ unless the system is degenerate.

Note that each known time-domain sample $r_n$ becomes an affine equation in ${h_0, \dots, h_3}$ once the corresponding $x_{(n - j) \bmod N}$ is given. Meanwhile, each known frequency-domain value $R(\omega_{p_\ell})$ factors as $H(\omega_{p_\ell}), X(\omega_{p_\ell})$ and hence gives a polynomial condition on $h_0, h_1, h_2, h_3$. By suitably combining those constraints—via an interpolating polynomial $Q(z)$ that zeroes out unwanted spectral components of the unknown portion of $X(z)$—we can form a closed-form system on the small set ${h_0, h_1, h_2, h_3}$.

$\endgroup$
1
  • $\begingroup$ Thank you for the detailed answer, but in the following $\Delta(z) = H(z) \cdot X_{\text{head}}(z) \pmod{z^N - 1}$, are you considering $H(z) $ to be known? I couldn't fully understand and process you described, could you please clarify that using a matlab or python code? $\endgroup$ Commented Dec 28, 2024 at 11:45

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.