Quantizing a complex signal with uniform quantizer

I have a signal that has complex normal distribution with mean 0 and variance of 1. I want to quantize it with a uniform quantizer to 512 levels. Does someone has any idea how to quantize such a complex signal in matlab? I would appreciate any input.

Answers (1)

Normal distribution has an infinite tail. If you quantize it with a fixed number of uniform levels then you cannot cover the entire range. Unless you want to quantize by CDF?
Does the signal have a constant magnitude? Could you show us the generating function?

4 Comments

rihab
rihab on 25 Sep 2015
Edited: rihab on 25 Sep 2015
I am generating the signal in the following way-
s = sqrt(0.5).*(randn(1,numBits) + 1i*randn(1,numBits));
Since it is infinite i thought to quantize it in the range(-1,1) with 512 levels.
Is this the correct way of doing so:
min = -1;
max = 1;
q = (max-min)/2^9;
quantSignal = round(s/q)*q;
If you clip it to [-1,1] you will be clipping about 15% of the signal, everything beyond sqrt(2) standard deviations. Is that acceptable? It doesn't seem to make much sense considering that for the rest of the range you would be dividing into 0.2% increments.
My estimate is that to have such a fine division make sense, not discarding more than one division's worth, that you should be clipping at about +/- 3
Thank you for the suggestion.
So will it make sense if I change the interval to (-sqrt(2),sqrt(2)) and quantize the signal using steps mentioned in the second comment? I would appreciate any other suggestions too.
+/- 3.097269078198785 would leave 1/512'th of the data outside the range.
round(s / 3.097269078198785 * 256)/256

Sign in to comment.

Asked:

on 25 Sep 2015

Commented:

on 25 Sep 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!