Signal Processing Asked by Dsp guy sam on February 10, 2021
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.
The input signal $x[n]$ can take two values: $+1$ or $-1$. After being multiplied by $h$, the signal becomes $|h|e^{jangle h}$ (if $x[n]=+1$) or $|h|e^{j(pi + angle h)}$ (if $x[n]=-1$). By squaring this we get, $|h|^2e^{j2angle h}$. Both points get mapped to this. Now we can pick out the magnitude and phase of $h$. In summary, the steps are:
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.
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:
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$.
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}$
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.
Code: https://github.com/B-William/DSPSE/blob/master/blindEstimationOfSignalParameterAndNoiseVariance.m
Answered by Engineer on February 10, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP