What is wrong with this code, please help!

>> t = [0:.1:2*pi]; % Times at which to sample the sine function
sig = sin(t); % Original signal, a sine wave
partition = [-1:.2:1]; % Length 11, to represent 12 intervals
codebook = [-1.2:.2:1]; % Length 12, one entry for each interval
[index,quants] = quantiz(sig,partition,codebook); % Quantize.
plot(t,sig,'x',t,quants,'.')
legend('Original signal','Quantized signal');
axis([-.2 7 -1.2 1.2])
>>
>> M = 4;
>> y = dpskmod(quants,M,pi / 8 ) ;
but i still keep getting the error
??? Error using ==> dpskmod at 41
Elements of input X must be integers in the range [0, M-1].

 Respuesta aceptada

Walter Roberson
Walter Roberson el 13 de Mzo. de 2011

0 votos

Your codebook needs to be 0:3 (the integers) if you want to use M=4. However, you are quantizing into 12 bins that you presumably want to distinguish, and that implies 0:11 for the codebook and M=12.

4 comentarios

jessica david
jessica david el 14 de Mzo. de 2011
thx, can you explain what partition and codebook actually means
Walter Roberson
Walter Roberson el 14 de Mzo. de 2011
The first parameter to quantiz is the actual input value.
The second parameter are the boundaries at which the quantization is to take place.
The third parameter is the value to code each of the bins as.
You can achieve the same thing using histc, indexing the codebook by the bin numbers returned by the second output of histc.
jessica david
jessica david el 14 de Mzo. de 2011
thanks Walter, is there some way I can get my original signal from the quantized one?
Walter Roberson
Walter Roberson el 14 de Mzo. de 2011
No, just a quantized version.
You quantized at particular locations. Those are, I suspect (but have not looked), hard edges -- anything up to (and maybe equal to) the value gets put in to that bin (if not already in a previous bin.) So to reconstruct, you could take a representative value of each quantization bin (min, max, value at the half-way point, whatever) and put those in an array. Index the array by 1 plus the symbol number (which starts at 0) to get the representative values approximating the signal.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by