I'm working on processing, in MATLAB, some data that I've taken with a
communication device we've built. Previously we've done communication
with an on-off-keying signal (OOK with a laser). We wanted to estimate the SNR
of the signal, so we use a data-aided approach. Now I'm changing the system
to use complex signaling and I'm struggling with how to do the SNR
estimation with complex signals. Previously, we did this:
Y=2*(RxSymbols-mean(RxSymbols));
% First statistic, E(Yi^2)
Stat1=var(Y);
% Second statistic, E(Yi*Xi)
Stat2=mean(Y.*X);
% SNR = 2*E(Yi*Xi)^2/( E(Yi^2)-E(Yi*Xi)^2 )
SNRlin=2*Stat2^2/(Stat1-Stat2^2);
SNR_dB*log10(SNRlin);
Now I need to modify this for complex signals.
Should I:
a) compute the SNR for the real and imaginary components separately and then
somehow combine them?
b) compute the SNR on the complex signals directly.
If a), then how should I combine them? It's AWGN noise, btw.
If b), then I need to take the covariance of Y, but I don't know how to
take the two variances and use them.
I've never been all that good at this stuff and I'm learning
slowly.
Thanks for your help.
data-aided SNR estimate of a complex signal in MATLAB
Started by ●August 18, 2010