# Blind Estimation of Signal Parameter and Noise Variance

Let $$y[n]= h*x[n] + w[n]$$, where $$h$$ is an unknown but deterministic parameter, $$x[n]$$ is a BPSK random variable with equal probability of +1 and -1, $$w[n]$$ are i.i.d. Gaussian with zero mean and unknown variance . Given $$N$$ observations find the estimate of $$h$$, and variance of noise.

$$x[n]$$ and $$w[n]$$ are independent.

• If we take average values of $y$, it will eliminate the effect of $w$ but will not help us estimate $h$ because $x$ is not known to you. If we consider average of squared values of $y$, $P = \frac{1}{N}\sum_0^{N-1}y^2[n] = \frac{1}{N}\sum_0^{N-1}(h^2x_n^2 + w_n^2 + 2hx_nw_n)$ The expectation value of above estimator is $E(P) = \frac{1}{N}\sum_0^{N-1}(h^2 \times 1 + \sigma^2 + 0) = h^2 + \sigma^2$ Still you have 2 unknowns with only 1 estimator. – jithin Mar 30 '20 at 17:02
• Can we assume h is not time varying? – Dan Boschen Apr 29 '20 at 2:46

## Squaring Method

The input signal $$x[n]$$ can take two values: $$+1$$ or $$-1$$. After being multiplied by $$h$$, the signal becomes $$|h|e^{j\angle h}$$ (if $$x[n]=+1$$) or $$|h|e^{j(\pi + \angle h)}$$ (if $$x[n]=-1$$). By squaring this we get, $$|h|^2e^{j2\angle h}$$. Both points get mapped to this. Now we can pick out the magnitude and phase of $$h$$. In summary, the steps are:

1. Square $$y[n]$$ to get $$z[n]=y^2[n]$$.
2. Get the magnitude, $$\hat{|h|}=\sqrt{\bigg|\frac{1}{N}\sum_n z[n]\bigg|}$$. It was pointed out in the comments that this is a biased estimate with bias $$\sigma^2$$, so it is not favorable for a large $$\sigma$$. I describe another way to estimate $$\sigma^2$$ (without using $$\hat{h}$$) so that we can use this $$\hat{\sigma}^2$$ to remove the bias from $$\hat{|h|}$$.
3. Get the phase, $$\angle h=\frac{1}{2N} \sum_n \angle z[n]$$
4. Use $$\hat{h}$$ to get the noise variance, $$\hat{\sigma}^2=\bigg(\frac{1}{N}\sum_n z[n]\bigg)-\hat{h}^2$$. This comes from the fact that $$E\big[z[n]\big]=h^2+\sigma^2$$ (also see the clustering method is a better way to go about this as it does not depend on any other estimates).

Caveat: This method is valid only for phase offsets within $$\pm \frac{\pi}{2}$$. Anything beyond that, the received signal becomes indistinguishable and there are multiple phase shifts which could give the same signal.

## Clustering Method

If $$h$$, can be correctly determined, then you can take hard decisions and calculate the noise variance using the distance of the received symbols from the decision you made.

If $$h$$ can't be determined right away, then this clustering based estimate of $$|h|$$ and $$\sigma^2$$ can be used: We know there should be two clusters ($$\pm 1$$) so we can use a simple method like k-means (https://en.wikipedia.org/wiki/K-means_clustering) with $$k=2$$. The algorithm is:

1. Run k-means on the received samples and get a list of labels back labeling each sample to either cluster $$1$$ or $$2$$. Let $$S_1$$ be the set of sample indices in cluster $$1$$ and $$S_2$$ be the set of sample indices in cluster $$2$$.

2. Now we are going to take all the points in each cluster, shift them be zero mean and take the variance (this will give us a noise variance estimate for each cluster). Then we will average over all of the cluster noise variance estimates to form the final estimate. $$\hat{\sigma}^2=\frac{\bigg( \text{var}\big(y[n]-E[y[n]] \big)\big|_{n \in S_1} + \text{var}\big(y[n]-E[y[n]] \big)\big|_{n \in S_2} \bigg)}{2}$$

3. Now we can take the estimate from step $$2$$ and subtract off the bias term which we estimated here as $$\hat{\sigma}^2$$ to get the refined estimate $$\hat{|h|}_0=\hat{|h|}-\hat{\sigma}^2$$. You could also get $$|h|$$ using the magnitude of the cluster means, $$|\hat{h}|=\frac{\text{E}\big(y[n]\big|_{n \in S_1}\big)+\text{E}\big(y[n]\big|_{n \in S_2}\big)}{2}$$.

There is also a way get $$\angle h$$ from the clusters but it too has the criteria that $$\angle h$$ must be less than $$\pm \frac{\pi}{2}$$ so I will not detail it here.

Long story short: $$|h|$$ and $$\sigma^2$$ are doable, but $$\angle h$$ is only doable for some cases.

• And how would you determine the ML of x without knowing h, wouldn't the value of h appear in the ML of X – Dsp guy sam Mar 31 '20 at 13:41
• The above answer is being edited – Engineer Mar 31 '20 at 13:42
• But squaring the received samples will involve cross product terms between h*x(n) and w(n)... since there is no expectations taken in the answer then these do not disappear...I prefer to take modulus of y(n) , that works better I think – Dsp guy sam Mar 31 '20 at 14:11
• Also how do you get the variance of noise which is unknown – Dsp guy sam Mar 31 '20 at 14:18
• The cross terms average to zero since the noise is zero mean. I don't need the noise variance since it doesn't appear in my answer at all. All you need is the received samples (that includes the signal plus noise). – Engineer Mar 31 '20 at 14:48